Mercurial > cpython-lru_cache-weakref
diff Python/compile.c @ 4131:6b589334e0e9 legacy-trunk
Afterthough: leave both leading underscores in,
so __spam becomes _ClassName__spam.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Sat, 24 Aug 1996 07:54:27 +0000 |
| parents | 7b84dae97ee8 |
| children | 46d736fb9da3 |
line wrap: on
line diff
--- a/Python/compile.c Sat Aug 24 07:29:04 1996 +0000 +++ b/Python/compile.c Sat Aug 24 07:54:27 1996 +0000 @@ -506,12 +506,12 @@ char *buffer; int maxlen; { - /* Name mangling: __private becomes _classname_private. + /* Name mangling: __private becomes _classname__private. This is independent from how the name is used. */ char *p; int nlen, plen; nlen = strlen(name); - if (nlen+1 >= maxlen) + if (nlen+2 >= maxlen) return 0; /* Don't mangle __extremely_long_names */ if (name[nlen-1] == '_' && name[nlen-2] == '_') return 0; /* Don't mangle __whatever__ */ @@ -523,11 +523,11 @@ return 0; /* Don't mangle if class is just underscores */ plen = strlen(p); if (plen + nlen >= maxlen) - plen = maxlen-nlen-1; /* Truncate class name if too long */ - /* buffer = "_" + p[:plen] + name[1:] # i.e. plen+nlen bytes */ + plen = maxlen-nlen-2; /* Truncate class name if too long */ + /* buffer = "_" + p[:plen] + name # i.e. 1+plen+nlen bytes */ buffer[0] = '_'; strncpy(buffer+1, p, plen); - strcpy(buffer+plen+1, name+1); + strcpy(buffer+1+plen, name); /* fprintf(stderr, "mangle %s -> %s\n", name, buffer); */ return 1; }
