-/* filteringaction_update_mark() - updates a mark for a message. note that
- * the message should not have been moved or copied. remember that the
- * procmsg_open_mark_file(PATH, TRUE) actually _appends_ a new record.
- */
-static gboolean filteringaction_update_mark(MsgInfo * info)
-{
- gchar * dest_path;
- FILE * fp;
-
- if (info->folder->folder->type == F_MH) {
- dest_path = folder_item_get_path(info->folder);
- if (!is_dir_exist(dest_path))
- make_dir_hier(dest_path);
-
- if (dest_path == NULL) {
- g_warning(_("Can't open mark file.\n"));
- return FALSE;
- }
-
- if ((fp = procmsg_open_mark_file(dest_path, TRUE))
- == NULL) {
- g_warning(_("Can't open mark file.\n"));
- return FALSE;
- }
-
- procmsg_write_flags(info, fp);
- fclose(fp);
- return TRUE;
- }
- return FALSE;
-}
-
-#if 0
-static gchar * filteringaction_execute_command(gchar * cmd, MsgInfo * info)
-{
- gchar * s = cmd;
- gchar * filename = NULL;
- gchar * processed_cmd;
- gchar * p;
- gint size;
-
- matcher_unescape_str(cmd);
-
- size = strlen(cmd) + 1;
- while (*s != '\0') {
- if (*s == '%') {
- s++;
- switch (*s) {
- case '%':
- size -= 1;
- break;
- case 's': /* subject */
- size += STRLEN_WITH_CHECK(info->subject) - 2;
- break;
- case 'f': /* from */
- size += STRLEN_WITH_CHECK(info->from) - 2;
- break;
- case 't': /* to */
- size += STRLEN_WITH_CHECK(info->to) - 2;
- break;
- case 'c': /* cc */
- size += STRLEN_WITH_CHECK(info->cc) - 2;
- break;
- case 'd': /* date */
- size += STRLEN_WITH_CHECK(info->date) - 2;
- break;
- case 'i': /* message-id */
- size += STRLEN_WITH_CHECK(info->msgid) - 2;
- break;
- case 'n': /* newsgroups */
- size += STRLEN_WITH_CHECK(info->newsgroups) - 2;
- break;
- case 'r': /* references */
- size += STRLEN_WITH_CHECK(info->references) - 2;
- break;
- case 'F': /* file */
- filename = folder_item_fetch_msg(info->folder, info->msgnum);
- if (filename == NULL) {
- g_warning(_("filename is not set"));
- return NULL;
- }
- else
- size += strlen(filename) - 2;
- break;
- }
- s++;
- }
- else s++;
- }
-
-
- processed_cmd = g_new0(gchar, size);
- s = cmd;
- p = processed_cmd;
-
- while (*s != '\0') {
- if (*s == '%') {
- s++;
- switch (*s) {
- case '%':
- *p = '%';
- p++;
- break;
- case 's': /* subject */
- if (info->subject != NULL)
- strcpy(p, info->subject);
- else
- strcpy(p, "(none)");
- p += strlen(p);
- break;
- case 'f': /* from */
- if (info->from != NULL)
- strcpy(p, info->from);
- else
- strcpy(p, "(none)");
- p += strlen(p);
- break;
- case 't': /* to */
- if (info->to != NULL)
- strcpy(p, info->to);
- else
- strcpy(p, "(none)");
- p += strlen(p);
- break;
- case 'c': /* cc */
- if (info->cc != NULL)
- strcpy(p, info->cc);
- else
- strcpy(p, "(none)");
- p += strlen(p);
- break;
- case 'd': /* date */
- if (info->date != NULL)
- strcpy(p, info->date);
- else
- strcpy(p, "(none)");
- p += strlen(p);
- break;
- case 'i': /* message-id */
- if (info->msgid != NULL)
- strcpy(p, info->msgid);
- else
- strcpy(p, "(none)");
- p += strlen(p);
- break;
- case 'n': /* newsgroups */
- if (info->newsgroups != NULL)
- strcpy(p, info->newsgroups);
- else
- strcpy(p, "(none)");
- p += strlen(p);
- break;
- case 'r': /* references */
- if (info->references != NULL)
- strcpy(p, info->references);
- else
- strcpy(p, "(none)");
- p += strlen(p);
- break;
- case 'F': /* file */
- strcpy(p, filename);
- p += strlen(p);
- break;
- default:
- *p = '%';
- p++;
- *p = *s;
- p++;
- break;
- }
- s++;
- }
- else {
- *p = *s;
- p++;
- s++;
- }
- }
- return processed_cmd;
-}
-#endif
-