change gensym convension: don't rename renamed symbols with '@', use '.' instead
This commit is contained in:
parent
d3026446db
commit
6966cdfa31
12
src/symbol.c
12
src/symbol.c
|
@ -41,12 +41,18 @@ pic_sym
|
||||||
pic_gensym(pic_state *pic, pic_sym base)
|
pic_gensym(pic_state *pic, pic_sym base)
|
||||||
{
|
{
|
||||||
int uid = pic->uniq_sym_cnt++, len;
|
int uid = pic->uniq_sym_cnt++, len;
|
||||||
char *str;
|
char *str, mark;
|
||||||
pic_sym uniq;
|
pic_sym uniq;
|
||||||
|
|
||||||
len = snprintf(NULL, 0, "%s@%d", pic_symbol_name(pic, base), uid);
|
if (pic_interned_p(pic, base)) {
|
||||||
|
mark = '@';
|
||||||
|
} else {
|
||||||
|
mark = '.';
|
||||||
|
}
|
||||||
|
|
||||||
|
len = snprintf(NULL, 0, "%s%c%d", pic_symbol_name(pic, base), mark, uid);
|
||||||
str = pic_alloc(pic, len + 1);
|
str = pic_alloc(pic, len + 1);
|
||||||
sprintf(str, "%s@%d", pic_symbol_name(pic, base), uid);
|
sprintf(str, "%s%c%d", pic_symbol_name(pic, base), mark, uid);
|
||||||
|
|
||||||
/* don't put the symbol to pic->syms to keep it uninterned */
|
/* don't put the symbol to pic->syms to keep it uninterned */
|
||||||
uniq = pic->sym_cnt++;
|
uniq = pic->sym_cnt++;
|
||||||
|
|
Loading…
Reference in New Issue