X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=bindings%2Fruby%2Ffilenames.c;h=656c58e6f40dfdc87bcbc86b6dd7b2eb2680ecab;hp=44a16522feb7567b6ab1b8baa515396cb9f6ebcb;hb=d877240f4e097eb3dd477409a24155c10e0b3c17;hpb=06bf04500ba282052d38adf428219968ae62bb54 diff --git a/bindings/ruby/filenames.c b/bindings/ruby/filenames.c index 44a16522..656c58e6 100644 --- a/bindings/ruby/filenames.c +++ b/bindings/ruby/filenames.c @@ -13,13 +13,31 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/ . + * along with this program. If not, see https://www.gnu.org/licenses/ . * * Author: Ali Polatel */ #include "defs.h" +/* + * call-seq: FILENAMES.destroy! => nil + * + * Destroys the filenames, freeing all resources allocated for it. + */ +VALUE +notmuch_rb_filenames_destroy (VALUE self) +{ + notmuch_filenames_t *fnames; + + Data_Get_Notmuch_FileNames (self, fnames); + + notmuch_filenames_destroy (fnames); + DATA_PTR (self) = NULL; + + return Qnil; +} + /* * call-seq: FILENAMES.each {|item| block } => FILENAMES * @@ -27,17 +45,14 @@ * parameter. */ VALUE -notmuch_rb_filenames_each(VALUE self) +notmuch_rb_filenames_each (VALUE self) { - notmuch_rb_filenames_t *flist; + notmuch_filenames_t *fnames; - Data_Get_Struct(self, notmuch_rb_filenames_t, flist); - if (!flist->nm_flist) - return self; + Data_Get_Notmuch_FileNames (self, fnames); - for (; notmuch_filenames_valid(flist->nm_flist); - notmuch_filenames_move_to_next(flist->nm_flist)) - rb_yield(rb_str_new2(notmuch_filenames_get(flist->nm_flist))); + for (; notmuch_filenames_valid (fnames); notmuch_filenames_move_to_next (fnames)) + rb_yield (rb_str_new2 (notmuch_filenames_get (fnames))); return self; }