summaryrefslogtreecommitdiff
path: root/src/cmd/cc
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2010-01-19 21:34:44 -0800
committerRuss Cox <rsc@golang.org>2010-01-19 21:34:44 -0800
commit8430d7d3f124eefc7358aa421a7d9bf654d0eea9 (patch)
tree4de4fe19755ca59ece2dea1b42508adef768a321 /src/cmd/cc
parentb87e2dc2f56155501b9ac46e136c8015d4f36877 (diff)
downloadgolang-8430d7d3f124eefc7358aa421a7d9bf654d0eea9.tar.gz
cleanup toward eliminating package global name space
* switch to real dot (.) instead of center dot (·) everywhere in object files. before it was half and half depending on where in the name it appeared. * in 6c/6a/etc identifiers, · can still be used but turns into . immediately. * in export metadata, replace package identifiers with quoted strings (still package names, not paths). R=ken2, r CC=golang-dev http://codereview.appspot.com/190076
Diffstat (limited to 'src/cmd/cc')
-rw-r--r--src/cmd/cc/lex.c11
-rw-r--r--src/cmd/cc/lexbody11
2 files changed, 22 insertions, 0 deletions
diff --git a/src/cmd/cc/lex.c b/src/cmd/cc/lex.c
index e357d07c4..5a5651852 100644
--- a/src/cmd/cc/lex.c
+++ b/src/cmd/cc/lex.c
@@ -403,6 +403,17 @@ lookup(void)
uint32 h;
char *p;
int c, n;
+ char *r, *w;
+
+ // turn · into .
+ for(r=w=symb; *r; r++) {
+ if((uchar)*r == 0xc2 && (uchar)*(r+1) == 0xb7) {
+ *w++ = '.';
+ r++;
+ }else
+ *w++ = *r;
+ }
+ *w = '\0';
h = 0;
for(p=symb; *p;) {
diff --git a/src/cmd/cc/lexbody b/src/cmd/cc/lexbody
index ba5eda824..c3b2d4529 100644
--- a/src/cmd/cc/lexbody
+++ b/src/cmd/cc/lexbody
@@ -221,6 +221,17 @@ lookup(void)
int32 h;
char *p;
int c, l;
+ char *r, *w;
+
+ // turn · into .
+ for(r=w=symb; *r; r++) {
+ if((uchar)*r == 0xc2 && (uchar)*(r+1) == 0xb7) {
+ *w++ = '.';
+ r++;
+ }else
+ *w++ = *r;
+ }
+ *w = '\0';
h = 0;
for(p=symb; c = *p; p++)