backslash escaping in /etc/fstab. (i.e., so that \040
will work.)
+2003-01-22 Theodore Ts'o <tytso@mit.edu>
+
+ * fsck.c (parse_fstab_line, parse_escape): Add support for
+ backslash escaping in /etc/fstab. (i.e., so that \040
+ will work.)
+
2002-11-12 Theodore Ts'o <tytso@mit.edu>
* mke2fs.c (PRS): Don't enable the dir_index feature by default;
return word;
}
+static void parse_escape(char *word)
+{
+ char *p, *q;
+ int ac, i;
+
+ for (p = word, q = word; *p; p++, q++) {
+ *q = *p;
+ if (*p != '\\')
+ continue;
+ if (*++p == 0)
+ break;
+ if (*p == 't') {
+ *q = '\t';
+ continue;
+ }
+ if (*p == 'n') {
+ *q = '\n';
+ continue;
+ }
+ if (!isdigit(*p)) {
+ *q = *p;
+ continue;
+ }
+ ac = 0;
+ for (i = 0; i < 3; i++, p++) {
+ if (!isdigit(*p))
+ break;
+ ac = (ac * 8) + (*p - '0');
+ }
+ *q = ac;
+ p--;
+ }
+ *q = 0;
+}
+
static void free_instance(struct fsck_instance *i)
{
if (i->prog)
freq = parse_word(&cp);
passno = parse_word(&cp);
+ parse_escape(device);
+ parse_escape(mntpnt);
+ parse_escape(type);
+ parse_escape(opts);
+ parse_escape(freq);
+ parse_escape(passno);
+
if (!device)
return 0; /* Allow blank lines */