[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r105349: Implement ## reader macro
From: |
Andreas Schwab |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r105349: Implement ## reader macro |
Date: |
Thu, 28 Jul 2011 22:23:19 +0200 |
User-agent: |
Bazaar (2.3.1) |
------------------------------------------------------------
revno: 105349
committer: Andreas Schwab <address@hidden>
branch nick: emacs
timestamp: Thu 2011-07-28 22:23:19 +0200
message:
Implement ## reader macro
* src/lread.c (read1): Read ## as empty symbol.
* src/print.c (print_object): Print empty symbol as ##.
modified:
src/ChangeLog
src/lread.c
src/print.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2011-07-28 18:50:05 +0000
+++ b/src/ChangeLog 2011-07-28 20:23:19 +0000
@@ -1,3 +1,9 @@
+2011-07-28 Andreas Schwab <address@hidden>
+
+ * print.c (print_object): Print empty symbol as ##.
+
+ * lread.c (read1): Read ## as empty symbol.
+
2011-07-28 Alp Aker <address@hidden>
* nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
=== modified file 'src/lread.c'
--- a/src/lread.c 2011-07-19 20:33:28 +0000
+++ b/src/lread.c 2011-07-28 20:23:19 +0000
@@ -2670,6 +2670,9 @@
}
goto read_symbol;
}
+ /* ## is the empty symbol. */
+ if (c == '#')
+ return Fintern (build_string (""), Qnil);
/* Reader forms that can reuse previously read objects. */
if (c >= '0' && c <= '9')
{
=== modified file 'src/print.c'
--- a/src/print.c 2011-07-07 01:32:56 +0000
+++ b/src/print.c 2011-07-28 20:23:19 +0000
@@ -1536,13 +1536,19 @@
else
confusing = 0;
+ size_byte = SBYTES (name);
+
if (! NILP (Vprint_gensym) && !SYMBOL_INTERNED_P (obj))
{
PRINTCHAR ('#');
PRINTCHAR (':');
}
-
- size_byte = SBYTES (name);
+ else if (size_byte == 0)
+ {
+ PRINTCHAR ('#');
+ PRINTCHAR ('#');
+ break;
+ }
for (i = 0, i_byte = 0; i_byte < size_byte;)
{
@@ -1555,7 +1561,7 @@
{
if (c == '\"' || c == '\\' || c == '\''
|| c == ';' || c == '#' || c == '(' || c == ')'
- || c == ',' || c =='.' || c == '`'
+ || c == ',' || c == '.' || c == '`'
|| c == '[' || c == ']' || c == '?' || c <= 040
|| confusing)
PRINTCHAR ('\\'), confusing = 0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r105349: Implement ## reader macro,
Andreas Schwab <=