diff --git a/autofs-5.0.3-map-type-in-map-name.patch b/autofs-5.0.3-map-type-in-map-name.patch index ceb17b1..994ddd6 100644 --- a/autofs-5.0.3-map-type-in-map-name.patch +++ b/autofs-5.0.3-map-type-in-map-name.patch @@ -11,65 +11,50 @@ index af5a1b0..76f2477 100644 14/01/2008 autofs-5.0.3 ----------------------- diff --git a/lib/master_tok.l b/lib/master_tok.l -index b379940..eab6bb1 100644 +index b379940..4bbe033 100644 --- a/lib/master_tok.l +++ b/lib/master_tok.l @@ -77,6 +77,7 @@ int my_yyinput(char *, int); char buff[1024]; char *bptr; char *optr = buff; -+char *tptr; ++unsigned int tlen; %} -@@ -161,6 +162,15 @@ OPTNTOUT (-n{OPTWS}|-n{OPTWS}={OPTWS}|--negative-timeout{OPTWS}|--negative-timeo - return QUOTE; - } - -+ {WS}/({MULTI}|{MTYPE}) { -+ BEGIN(MAPSTR); -+ *bptr = '\0'; -+ strcpy(master_lval.strtype, buff); -+ bptr = buff; -+ yyless(0); -+ return(PATH); -+ } -+ - {WS} { - BEGIN(MAPSTR); - *bptr = '\0'; -@@ -189,17 +199,25 @@ OPTNTOUT (-n{OPTWS}|-n{OPTWS}={OPTWS}|--negative-timeout{OPTWS}|--negative-timeo - { +@@ -190,13 +191,27 @@ OPTNTOUT (-n{OPTWS}|-n{OPTWS}={OPTWS}|--negative-timeout{OPTWS}|--negative-timeo {OPTWS}\\\n{OPTWS} {} -- {MULTI} { + {MULTI} { - strcpy(master_lval.strtype, master_text); -+ {WS}{MULTI} { -+ tptr = master_text; -+ while (*tptr && isblank(*tptr)) { -+ tptr++; +- return(MULTITYPE); ++ tlen = master_leng - 1; ++ if (bptr != buff && isblank(master_text[tlen])) { ++ strncat(buff, master_text, tlen); ++ bptr += tlen; ++ yyless(tlen); ++ } else { ++ strcpy(master_lval.strtype, master_text); ++ return(MULTITYPE); + } -+ strcpy(master_lval.strtype, tptr); - return(MULTITYPE); } -- {MTYPE} { + {MTYPE} { - strcpy(master_lval.strtype, master_text); -+ {WS}{MTYPE} { -+ tptr = master_text; -+ while (*tptr && isblank(*tptr)) { -+ tptr++; +- return(MAPTYPE); ++ tlen = master_leng - 1; ++ if (bptr != buff && isblank(master_text[tlen])) { ++ strncat(buff, master_text, tlen); ++ bptr += tlen; ++ yyless(tlen); ++ } else { ++ strcpy(master_lval.strtype, master_text); ++ return(MAPTYPE); + } -+ strcpy(master_lval.strtype, tptr); - return(MAPTYPE); } -- {MULTISEP} { return(DDASH); } -+ {WS}{MULTISEP} { return(DDASH); } - - ":" { return(COLON); } - -@@ -226,7 +244,7 @@ OPTNTOUT (-n{OPTWS}|-n{OPTWS}={OPTWS}|--negative-timeout{OPTWS}|--negative-timeo + {MULTISEP} { return(DDASH); } +@@ -226,7 +241,7 @@ OPTNTOUT (-n{OPTWS}|-n{OPTWS}={OPTWS}|--negative-timeout{OPTWS}|--negative-timeo yyless(0); } diff --git a/autofs.spec b/autofs.spec index ce995e4..00030da 100644 --- a/autofs.spec +++ b/autofs.spec @@ -4,7 +4,7 @@ Summary: A tool for automatically mounting and unmounting filesystems Name: autofs Version: 5.0.3 -Release: 9 +Release: 10 Epoch: 1 License: GPL Group: System Environment/Daemons @@ -125,6 +125,9 @@ fi %{_libdir}/autofs/ %changelog +* Sun Mar 30 2008 Ian Kent - 5.0.3-10 +- another try a fixing lexer matching map type in map name. + * Wed Mar 26 2008 Ian Kent - 5.0.3-9 - fix lexer ambiguity in match when map type name is included in map name.