-static void user_to_string (char* dst, size_t dstlen,
- struct option_t* option) {
- snprintf (dst, dstlen, "%s=\"%s\"", option->option,
- NONULL (((char*) option->data)));
-}
-
-static void sys_to_string (char* dst, size_t dstlen,
- struct option_t* option) {
- char *val = NULL, *t = NULL;
- int clean = 0;
-
- /* get some $muttng_ values dynamically */
- if (ascii_strcmp ("muttng_pwd", option->option) == 0) {
- val = mem_malloc (_POSIX_PATH_MAX);
- val = getcwd (val, _POSIX_PATH_MAX-1);
- clean = 1;
- } else if (ascii_strcmp ("muttng_folder_path", option->option) == 0 &&
- CurrentFolder && *CurrentFolder) {
- val = CurrentFolder;
- } else if (ascii_strcmp ("muttng_folder_name", option->option) == 0 &&
- CurrentFolder && *CurrentFolder) {
-
- size_t Maildirlength = str_len (Maildir);
-
- /*
- * if name starts with $folder, just strip it to keep hierarchy
- * $folder=imap://host, path=imap://host/inbox/b -> inbox/b
- */
- if (Maildirlength > 0 && str_ncmp (CurrentFolder, Maildir,
- Maildirlength) == 0 &&
- str_len (CurrentFolder) > Maildirlength) {
- val = CurrentFolder + Maildirlength;
- if (Maildir[strlen(Maildir)-1]!='/')
- val += 1;
- /* if not $folder, just use everything after last / */
- } else if ((t = strrchr (CurrentFolder, '/')) != NULL)
- val = t+1;
- /* default: use as-is */
- else
- val = CurrentFolder;
-
- } else
- val = option->init;
-
- snprintf (dst, dstlen, "%s=\"%s\"", option->option, NONULL (val));
- if (clean)
- mem_free (&val);
-}
-