aboutsummaryrefslogtreecommitdiffstats
path: root/etc.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--etc.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/etc.c b/etc.c
index 93e411a..d300268 100644
--- a/etc.c
+++ b/etc.c
@@ -1,4 +1,4 @@
-/* $Id: etc.c,v 1.56 2003/01/23 16:02:15 ukai Exp $ */
+/* $Id: etc.c,v 1.57 2003/01/23 18:01:05 ukai Exp $ */
#include "fm.h"
#include <pwd.h>
#include "myctype.h"
@@ -636,7 +636,7 @@ next_status(char c, int *status)
else if (c == '>')
*status = R_ST_NORMAL;
else
- *status = R_ST_TAG;
+ *status = R_ST_VALUE;
return 0;
case R_ST_QUOTE:
if (c == '\'')
@@ -646,6 +646,12 @@ next_status(char c, int *status)
if (c == '"')
*status = R_ST_TAG;
return 0;
+ case R_ST_VALUE:
+ if (c == '>')
+ *status = R_ST_NORMAL;
+ else if (IS_SPACE(c))
+ *status = R_ST_TAG;
+ return 0;
case R_ST_AMP:
if (c == ';') {
*status = R_ST_NORMAL;
@@ -792,6 +798,7 @@ read_token(Str buf, char **instr, int *status, int pre, int append)
case R_ST_EQL:
case R_ST_QUOTE:
case R_ST_DQUOTE:
+ case R_ST_VALUE:
case R_ST_AMP:
Strcat_char(buf, *p);
break;
@@ -838,6 +845,7 @@ correct_irrtag(int status)
case R_ST_TAG:
case R_ST_TAG0:
case R_ST_EQL: /* required ">" */
+ case R_ST_VALUE:
c = '>';
break;
case R_ST_QUOTE: