X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fparse_msgs.c;fp=sbr%2Fparse_msgs.c;h=00d9fb81049bfbd5c0d0a831ca144ae1cc34034a;hp=0000000000000000000000000000000000000000;hb=5b483b0b8517541a8359d7049b4497c6efcb117e;hpb=eb6938d742d51b5f6637da8e706cc6dd080be058 diff --git a/sbr/parse_msgs.c b/sbr/parse_msgs.c new file mode 100644 index 0000000..00d9fb8 --- /dev/null +++ b/sbr/parse_msgs.c @@ -0,0 +1,50 @@ +#include +#include + +int +parse_msgs(const struct msgs_array *msgs, char *folder, struct msgs_array *files) +{ + int ret = 0; + char *msgnam; + struct msgs *f; + char *path; + + if (folder) { + path = toabsdir(folder); + } else { + path = toabsdir(getcurfol()); + } + + path = mh_xstrdup(path); + path = add("/", path); + + f = folder_read(path); + + if (f == NULL) { + return -1; + } + + for (size_t i = 0; i < msgs->size; i++) { + + if (*(msgs->msgs[i]) == '.' || *(msgs->msgs[i]) == '/') { + app_msgarg(files, msgs->msgs[i]); + continue; + } + + if (!m_convert(f, msgs->msgs[i])) { + ret++; + } + } + + for (size_t i = f->lowsel; i <= f->hghsel; i++) { + if (is_selected(f, i)) { + msgnam = mh_xstrdup(path); + msgnam = add(m_name(i), msgnam); + app_msgarg(files, msgnam); + } + } + + folder_free(f); + + return ret; +}