-static void user_to_string (char* dst, ssize_t dstlen,
- struct option_t* option) {
- snprintf (dst, dstlen, "%s=\"%s\"", option->option,
- NONULL (((char*) option->data)));
-}
-
-static void sys_to_string (char* dst, ssize_t dstlen,
- struct option_t* option) {
- char *val = NULL, *t = NULL;
- int clean = 0;
-
- /* get some $madmutt_ values dynamically */
- if (m_strcmp("madmutt_pwd", option->option) == 0) {
- val = p_new(char, _POSIX_PATH_MAX);
- val = getcwd (val, _POSIX_PATH_MAX-1);
- clean = 1;
- } else if (m_strcmp("madmutt_folder_path", option->option) == 0 &&
- CurrentFolder && *CurrentFolder) {
- val = CurrentFolder;
- } else if (m_strcmp("madmutt_folder_name", option->option) == 0 &&
- CurrentFolder && *CurrentFolder) {
-
- ssize_t Maildirlength = m_strlen(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 && m_strncmp(CurrentFolder, Maildir,
- Maildirlength) == 0 &&
- m_strlen(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 = (char *) CurrentFolder;
-
- } else
- val = (char *) option->init;
-
- snprintf (dst, dstlen, "%s=\"%s\"", option->option, NONULL (val));
- if (clean)
- p_delete(&val);
-}
-