From 122f3980c73532484eac40cc2b21118df08dcb68 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Fri, 10 Sep 2010 13:59:20 -0400 Subject: [PATCH] ld: handle quoted spaces in package path Fixes #1087. R=rsc CC=golang-dev https://golang.org/cl/2172041 --- src/cmd/ld/go.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/cmd/ld/go.c b/src/cmd/ld/go.c index 46ae5ff74d..e0ea6091f0 100644 --- a/src/cmd/ld/go.c +++ b/src/cmd/ld/go.c @@ -282,7 +282,7 @@ static int parsepkgdata(char *file, char *pkg, char **pp, char *ep, char **prefixp, char **namep, char **defp) { char *p, *prefix, *name, *def, *edef, *meth; - int n; + int n, inquote; // skip white space p = *pp; @@ -319,8 +319,19 @@ loop: // name: a.b followed by space name = p; - while(p < ep && *p != ' ') + inquote = 0; + while(p < ep) { + if (*p == ' ' && !inquote) + break; + + if(*p == '\\') + p++; + else if(*p == '"') + inquote = !inquote; + p++; + } + if(p >= ep) return -1; *p++ = '\0'; -- 2.50.0