X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;ds=sidebyside;f=parser.c;h=0d1054ff29ae454f92474e6711e711549a4ab0e6;hb=c7ad3b51358d0b7704e5670d973ad1a376caf4e1;hp=5f6ebadc7da07b2f2efe6d09bbd7a1b1039b6c23;hpb=78032a78185e751a0bf0b77863f23d005359205f;p=userv.git diff --git a/parser.c b/parser.c index 5f6ebad..0d1054f 100644 --- a/parser.c +++ b/parser.c @@ -370,6 +370,7 @@ static int paa_message(const char **message_r) { /* Returned value is invalidated by repeated calls. */ static char *buildbuf; static int buildbuflen; + const char *usetext; int r, tl; @@ -384,9 +385,10 @@ static int paa_message(const char **message_r) { return tokv_error; } if (r == tokv_newline) break; - tl+= strlen(yytext); + usetext= r == tokv_lwsp ? " " : yytext; + tl+= strlen(usetext); if (makeroom(&buildbuf,&buildbuflen,tl)) return stringoverflow("message"); - strcat(buildbuf,yytext); + strcat(buildbuf,usetext); } *message_r= buildbuf; return 0; @@ -1089,8 +1091,14 @@ int df_includelookup(int dtoken) { } else { if (*p=='.') *q++= ':'; while ((c= *p++)) { - if (c=='/') { *q++= ':'; c='-'; } - else if (c==':') { *q++= ':'; } + if (c=='/') { + *q++= ':'; + c= '-'; + } else if (!((c >= '0' && c <= '9') || + (c >= 'a' && c <= 'z') || + c == '-' || c == '_')) { + *q++= ':'; + } *q++= c; } *q++= 0;