FREE(&m->compress_info);
}
-/**
- * escape_path - Escapes single quotes in a path for a command string
- * @param src the path to escape
- * @retval ptr The escaped string
- */
-static char *escape_path(char *src)
-{
- static char dest[HUGE_STRING];
- char *destp = dest;
- int destsize = 0;
-
- if (!src)
- return NULL;
-
- while (*src && (destsize < sizeof(dest) - 1))
- {
- if (*src != '\'')
- {
- *destp++ = *src++;
- destsize++;
- }
- else
- {
- /* convert ' into '\'' */
- if (destsize + 4 < sizeof(dest))
- {
- *destp++ = *src++;
- *destp++ = '\\';
- *destp++ = '\'';
- *destp++ = '\'';
- destsize += 4;
- }
- else
- break;
- }
- }
- *destp = '\0';
-
- return dest;
-}
-
/**
* compress_format_str - Expand the filenames in a command string - Implements ::format_t
*
{
case 'f':
/* Compressed file */
- snprintf(buf, buflen, "%s", NONULL(escape_path(m->realpath)));
+ snprintf(buf, buflen, "%s", NONULL(mutt_path_escape(m->realpath)));
break;
case 't':
/* Plaintext, temporary file */
- snprintf(buf, buflen, "%s", NONULL(escape_path(m->path)));
+ snprintf(buf, buflen, "%s", NONULL(mutt_path_escape(m->path)));
break;
}
return src;
memmove(buf + 1, buf + flen + 1, rlen + 1);
return true;
}
+
+/**
+ * mutt_escape_path - Escapes single quotes in a path for a command string
+ * @param src the path to escape
+ * @retval ptr The escaped string
+ */
+char *mutt_path_escape(const char *src)
+{
+ static char dest[HUGE_STRING];
+ char *destp = dest;
+ int destsize = 0;
+
+ if (!src)
+ return NULL;
+
+ while (*src && (destsize < sizeof(dest) - 1))
+ {
+ if (*src != '\'')
+ {
+ *destp++ = *src++;
+ destsize++;
+ }
+ else
+ {
+ /* convert ' into '\'' */
+ if (destsize + 4 < sizeof(dest))
+ {
+ *destp++ = *src++;
+ *destp++ = '\\';
+ *destp++ = '\'';
+ *destp++ = '\'';
+ destsize += 4;
+ }
+ else
+ break;
+ }
+ }
+ *destp = '\0';
+
+ return dest;
+}
char * mutt_path_concat(char *d, const char *dir, const char *fname, size_t l);
char * mutt_path_concatn(char *dst, size_t dstlen, const char *dir, size_t dirlen, const char *fname, size_t fnamelen);
char * mutt_path_dirname(const char *path);
+char * mutt_path_escape(const char *src);
bool mutt_path_parent(char *buf, size_t buflen);
bool mutt_path_pretty(char *buf, size_t buflen, const char *homedir);
size_t mutt_path_realpath(char *buf);