aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2011-04-18 23:44:06 -0700
committerPaul Eggert2011-04-18 23:44:06 -0700
commit4ef23ecf04ac996a938f9fb0107efbc60fdc63e4 (patch)
treecd7d2c42dea5fbad0d790d12b6e284992790b7e9
parentfa3c87e1f21cd100ccb257d5dd41047d0c9a732b (diff)
parentbc4f7f3d586a8d32718e27e99226d1b5ab091db5 (diff)
downloademacs-4ef23ecf04ac996a938f9fb0107efbc60fdc63e4.tar.gz
emacs-4ef23ecf04ac996a938f9fb0107efbc60fdc63e4.zip
Merge from mainline.
-rw-r--r--autogen/Makefile.in30
-rwxr-xr-xautogen/configure44
-rw-r--r--etc/NEWS3
-rw-r--r--lisp/ChangeLog34
-rw-r--r--lisp/calendar/appt.el1
-rw-r--r--lisp/calendar/cal-china.el3
-rw-r--r--lisp/calendar/cal-dst.el6
-rw-r--r--lisp/calendar/cal-hebrew.el4
-rw-r--r--lisp/calendar/cal-html.el2
-rw-r--r--lisp/calendar/cal-tex.el27
-rw-r--r--lisp/calendar/calendar.el1
-rw-r--r--lisp/calendar/diary-lib.el6
-rw-r--r--lisp/calendar/time-date.el2
-rw-r--r--lisp/emacs-lisp/tabulated-list.el13
-rw-r--r--lisp/gnus/ChangeLog15
-rw-r--r--lisp/gnus/gnus-registry.el48
-rw-r--r--lisp/gnus/registry.el320
-rw-r--r--lisp/vc/add-log.el2
-rw-r--r--src/ChangeLog10
-rw-r--r--src/term.c2
-rw-r--r--src/xdisp.c44
21 files changed, 382 insertions, 235 deletions
diff --git a/autogen/Makefile.in b/autogen/Makefile.in
index 92e02110712..5713f89adfe 100644
--- a/autogen/Makefile.in
+++ b/autogen/Makefile.in
@@ -164,13 +164,17 @@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
164GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ 164GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
165GNULIB_FCLOSE = @GNULIB_FCLOSE@ 165GNULIB_FCLOSE = @GNULIB_FCLOSE@
166GNULIB_FFLUSH = @GNULIB_FFLUSH@ 166GNULIB_FFLUSH = @GNULIB_FFLUSH@
167GNULIB_FGETC = @GNULIB_FGETC@
168GNULIB_FGETS = @GNULIB_FGETS@
167GNULIB_FOPEN = @GNULIB_FOPEN@ 169GNULIB_FOPEN = @GNULIB_FOPEN@
168GNULIB_FPRINTF = @GNULIB_FPRINTF@ 170GNULIB_FPRINTF = @GNULIB_FPRINTF@
169GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ 171GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
170GNULIB_FPURGE = @GNULIB_FPURGE@ 172GNULIB_FPURGE = @GNULIB_FPURGE@
171GNULIB_FPUTC = @GNULIB_FPUTC@ 173GNULIB_FPUTC = @GNULIB_FPUTC@
172GNULIB_FPUTS = @GNULIB_FPUTS@ 174GNULIB_FPUTS = @GNULIB_FPUTS@
175GNULIB_FREAD = @GNULIB_FREAD@
173GNULIB_FREOPEN = @GNULIB_FREOPEN@ 176GNULIB_FREOPEN = @GNULIB_FREOPEN@
177GNULIB_FSCANF = @GNULIB_FSCANF@
174GNULIB_FSEEK = @GNULIB_FSEEK@ 178GNULIB_FSEEK = @GNULIB_FSEEK@
175GNULIB_FSEEKO = @GNULIB_FSEEKO@ 179GNULIB_FSEEKO = @GNULIB_FSEEKO@
176GNULIB_FSTATAT = @GNULIB_FSTATAT@ 180GNULIB_FSTATAT = @GNULIB_FSTATAT@
@@ -180,6 +184,8 @@ GNULIB_FTELLO = @GNULIB_FTELLO@
180GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ 184GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
181GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ 185GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
182GNULIB_FWRITE = @GNULIB_FWRITE@ 186GNULIB_FWRITE = @GNULIB_FWRITE@
187GNULIB_GETC = @GNULIB_GETC@
188GNULIB_GETCHAR = @GNULIB_GETCHAR@
183GNULIB_GETCWD = @GNULIB_GETCWD@ 189GNULIB_GETCWD = @GNULIB_GETCWD@
184GNULIB_GETDELIM = @GNULIB_GETDELIM@ 190GNULIB_GETDELIM = @GNULIB_GETDELIM@
185GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ 191GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
@@ -191,6 +197,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
191GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ 197GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
192GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ 198GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
193GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ 199GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
200GNULIB_GETS = @GNULIB_GETS@
194GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ 201GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
195GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ 202GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
196GNULIB_GRANTPT = @GNULIB_GRANTPT@ 203GNULIB_GRANTPT = @GNULIB_GRANTPT@
@@ -230,6 +237,7 @@ GNULIB_PUTENV = @GNULIB_PUTENV@
230GNULIB_PUTS = @GNULIB_PUTS@ 237GNULIB_PUTS = @GNULIB_PUTS@
231GNULIB_PWRITE = @GNULIB_PWRITE@ 238GNULIB_PWRITE = @GNULIB_PWRITE@
232GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ 239GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
240GNULIB_READ = @GNULIB_READ@
233GNULIB_READLINK = @GNULIB_READLINK@ 241GNULIB_READLINK = @GNULIB_READLINK@
234GNULIB_READLINKAT = @GNULIB_READLINKAT@ 242GNULIB_READLINKAT = @GNULIB_READLINKAT@
235GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ 243GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
@@ -239,11 +247,13 @@ GNULIB_RENAME = @GNULIB_RENAME@
239GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ 247GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
240GNULIB_RMDIR = @GNULIB_RMDIR@ 248GNULIB_RMDIR = @GNULIB_RMDIR@
241GNULIB_RPMATCH = @GNULIB_RPMATCH@ 249GNULIB_RPMATCH = @GNULIB_RPMATCH@
250GNULIB_SCANF = @GNULIB_SCANF@
242GNULIB_SETENV = @GNULIB_SETENV@ 251GNULIB_SETENV = @GNULIB_SETENV@
243GNULIB_SLEEP = @GNULIB_SLEEP@ 252GNULIB_SLEEP = @GNULIB_SLEEP@
244GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ 253GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
245GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ 254GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
246GNULIB_STAT = @GNULIB_STAT@ 255GNULIB_STAT = @GNULIB_STAT@
256GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
247GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ 257GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
248GNULIB_STRPTIME = @GNULIB_STRPTIME@ 258GNULIB_STRPTIME = @GNULIB_STRPTIME@
249GNULIB_STRTOD = @GNULIB_STRTOD@ 259GNULIB_STRTOD = @GNULIB_STRTOD@
@@ -257,6 +267,7 @@ GNULIB_TIME_R = @GNULIB_TIME_R@
257GNULIB_TMPFILE = @GNULIB_TMPFILE@ 267GNULIB_TMPFILE = @GNULIB_TMPFILE@
258GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ 268GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
259GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ 269GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
270GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
260GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ 271GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
261GNULIB_UNLINK = @GNULIB_UNLINK@ 272GNULIB_UNLINK = @GNULIB_UNLINK@
262GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ 273GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
@@ -268,8 +279,10 @@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
268GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ 279GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
269GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ 280GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
270GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ 281GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
282GNULIB_VFSCANF = @GNULIB_VFSCANF@
271GNULIB_VPRINTF = @GNULIB_VPRINTF@ 283GNULIB_VPRINTF = @GNULIB_VPRINTF@
272GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ 284GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
285GNULIB_VSCANF = @GNULIB_VSCANF@
273GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ 286GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
274GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ 287GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
275GNULIB_WCTOMB = @GNULIB_WCTOMB@ 288GNULIB_WCTOMB = @GNULIB_WCTOMB@
@@ -544,6 +557,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
544REPLACE_PRINTF = @REPLACE_PRINTF@ 557REPLACE_PRINTF = @REPLACE_PRINTF@
545REPLACE_PUTENV = @REPLACE_PUTENV@ 558REPLACE_PUTENV = @REPLACE_PUTENV@
546REPLACE_PWRITE = @REPLACE_PWRITE@ 559REPLACE_PWRITE = @REPLACE_PWRITE@
560REPLACE_READ = @REPLACE_READ@
547REPLACE_READLINK = @REPLACE_READLINK@ 561REPLACE_READLINK = @REPLACE_READLINK@
548REPLACE_REALLOC = @REPLACE_REALLOC@ 562REPLACE_REALLOC = @REPLACE_REALLOC@
549REPLACE_REALPATH = @REPLACE_REALPATH@ 563REPLACE_REALPATH = @REPLACE_REALPATH@
@@ -556,6 +570,7 @@ REPLACE_SLEEP = @REPLACE_SLEEP@
556REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ 570REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
557REPLACE_SPRINTF = @REPLACE_SPRINTF@ 571REPLACE_SPRINTF = @REPLACE_SPRINTF@
558REPLACE_STAT = @REPLACE_STAT@ 572REPLACE_STAT = @REPLACE_STAT@
573REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
559REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ 574REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
560REPLACE_STRTOD = @REPLACE_STRTOD@ 575REPLACE_STRTOD = @REPLACE_STRTOD@
561REPLACE_SYMLINK = @REPLACE_SYMLINK@ 576REPLACE_SYMLINK = @REPLACE_SYMLINK@
@@ -1108,20 +1123,27 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
1108 -e 's|@''GNULIB_DPRINTF''@|$(GNULIB_DPRINTF)|g' \ 1123 -e 's|@''GNULIB_DPRINTF''@|$(GNULIB_DPRINTF)|g' \
1109 -e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \ 1124 -e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \
1110 -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \ 1125 -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \
1126 -e 's|@''GNULIB_FGETC''@|$(GNULIB_FGETC)|g' \
1127 -e 's|@''GNULIB_FGETS''@|$(GNULIB_FGETS)|g' \
1111 -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \ 1128 -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \
1112 -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \ 1129 -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \
1113 -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \ 1130 -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \
1114 -e 's|@''GNULIB_FPURGE''@|$(GNULIB_FPURGE)|g' \ 1131 -e 's|@''GNULIB_FPURGE''@|$(GNULIB_FPURGE)|g' \
1115 -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \ 1132 -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \
1116 -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \ 1133 -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \
1134 -e 's|@''GNULIB_FREAD''@|$(GNULIB_FREAD)|g' \
1117 -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \ 1135 -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \
1136 -e 's|@''GNULIB_FSCANF''@|$(GNULIB_FSCANF)|g' \
1118 -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \ 1137 -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \
1119 -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \ 1138 -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \
1120 -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \ 1139 -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \
1121 -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \ 1140 -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \
1122 -e 's|@''GNULIB_FWRITE''@|$(GNULIB_FWRITE)|g' \ 1141 -e 's|@''GNULIB_FWRITE''@|$(GNULIB_FWRITE)|g' \
1142 -e 's|@''GNULIB_GETC''@|$(GNULIB_GETC)|g' \
1143 -e 's|@''GNULIB_GETCHAR''@|$(GNULIB_GETCHAR)|g' \
1123 -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \ 1144 -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \
1124 -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \ 1145 -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \
1146 -e 's|@''GNULIB_GETS''@|$(GNULIB_GETS)|g' \
1125 -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \ 1147 -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \
1126 -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \ 1148 -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \
1127 -e 's|@''GNULIB_PERROR''@|$(GNULIB_PERROR)|g' \ 1149 -e 's|@''GNULIB_PERROR''@|$(GNULIB_PERROR)|g' \
@@ -1134,14 +1156,18 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
1134 -e 's|@''GNULIB_REMOVE''@|$(GNULIB_REMOVE)|g' \ 1156 -e 's|@''GNULIB_REMOVE''@|$(GNULIB_REMOVE)|g' \
1135 -e 's|@''GNULIB_RENAME''@|$(GNULIB_RENAME)|g' \ 1157 -e 's|@''GNULIB_RENAME''@|$(GNULIB_RENAME)|g' \
1136 -e 's|@''GNULIB_RENAMEAT''@|$(GNULIB_RENAMEAT)|g' \ 1158 -e 's|@''GNULIB_RENAMEAT''@|$(GNULIB_RENAMEAT)|g' \
1159 -e 's|@''GNULIB_SCANF''@|$(GNULIB_SCANF)|g' \
1137 -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \ 1160 -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \
1138 -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \ 1161 -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \
1162 -e 's|@''GNULIB_STDIO_H_NONBLOCKING''@|$(GNULIB_STDIO_H_NONBLOCKING)|g' \
1139 -e 's|@''GNULIB_STDIO_H_SIGPIPE''@|$(GNULIB_STDIO_H_SIGPIPE)|g' \ 1163 -e 's|@''GNULIB_STDIO_H_SIGPIPE''@|$(GNULIB_STDIO_H_SIGPIPE)|g' \
1140 -e 's|@''GNULIB_TMPFILE''@|$(GNULIB_TMPFILE)|g' \ 1164 -e 's|@''GNULIB_TMPFILE''@|$(GNULIB_TMPFILE)|g' \
1141 -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \ 1165 -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \
1142 -e 's|@''GNULIB_VDPRINTF''@|$(GNULIB_VDPRINTF)|g' \ 1166 -e 's|@''GNULIB_VDPRINTF''@|$(GNULIB_VDPRINTF)|g' \
1143 -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \ 1167 -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \
1144 -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \ 1168 -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \
1169 -e 's|@''GNULIB_VFSCANF''@|$(GNULIB_VFSCANF)|g' \
1170 -e 's|@''GNULIB_VSCANF''@|$(GNULIB_VSCANF)|g' \
1145 -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \ 1171 -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \
1146 -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \ 1172 -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \
1147 -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \ 1173 -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \
@@ -1183,6 +1209,7 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
1183 -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ 1209 -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \
1184 -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ 1210 -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
1185 -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ 1211 -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
1212 -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \
1186 -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ 1213 -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \
1187 -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ 1214 -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \
1188 -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ 1215 -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \
@@ -1397,6 +1424,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
1397 -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \ 1424 -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \
1398 -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \ 1425 -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \
1399 -e 's|@''GNULIB_PWRITE''@|$(GNULIB_PWRITE)|g' \ 1426 -e 's|@''GNULIB_PWRITE''@|$(GNULIB_PWRITE)|g' \
1427 -e 's|@''GNULIB_READ''@|$(GNULIB_READ)|g' \
1400 -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \ 1428 -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
1401 -e 's|@''GNULIB_READLINKAT''@|$(GNULIB_READLINKAT)|g' \ 1429 -e 's|@''GNULIB_READLINKAT''@|$(GNULIB_READLINKAT)|g' \
1402 -e 's|@''GNULIB_RMDIR''@|$(GNULIB_RMDIR)|g' \ 1430 -e 's|@''GNULIB_RMDIR''@|$(GNULIB_RMDIR)|g' \
@@ -1405,6 +1433,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
1405 -e 's|@''GNULIB_SYMLINKAT''@|$(GNULIB_SYMLINKAT)|g' \ 1433 -e 's|@''GNULIB_SYMLINKAT''@|$(GNULIB_SYMLINKAT)|g' \
1406 -e 's|@''GNULIB_TTYNAME_R''@|$(GNULIB_TTYNAME_R)|g' \ 1434 -e 's|@''GNULIB_TTYNAME_R''@|$(GNULIB_TTYNAME_R)|g' \
1407 -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \ 1435 -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \
1436 -e 's|@''GNULIB_UNISTD_H_NONBLOCKING''@|$(GNULIB_UNISTD_H_NONBLOCKING)|g' \
1408 -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \ 1437 -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
1409 -e 's|@''GNULIB_UNLINK''@|$(GNULIB_UNLINK)|g' \ 1438 -e 's|@''GNULIB_UNLINK''@|$(GNULIB_UNLINK)|g' \
1410 -e 's|@''GNULIB_UNLINKAT''@|$(GNULIB_UNLINKAT)|g' \ 1439 -e 's|@''GNULIB_UNLINKAT''@|$(GNULIB_UNLINKAT)|g' \
@@ -1465,6 +1494,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
1465 -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ 1494 -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
1466 -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ 1495 -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \
1467 -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ 1496 -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
1497 -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
1468 -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ 1498 -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
1469 -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ 1499 -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \
1470 -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ 1500 -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \
diff --git a/autogen/configure b/autogen/configure
index 7ec88c66fb5..0dacc86a99d 100755
--- a/autogen/configure
+++ b/autogen/configure
@@ -683,6 +683,7 @@ REPLACE_VDPRINTF
683REPLACE_VASPRINTF 683REPLACE_VASPRINTF
684REPLACE_TMPFILE 684REPLACE_TMPFILE
685REPLACE_STDIO_WRITE_FUNCS 685REPLACE_STDIO_WRITE_FUNCS
686REPLACE_STDIO_READ_FUNCS
686REPLACE_SPRINTF 687REPLACE_SPRINTF
687REPLACE_SNPRINTF 688REPLACE_SNPRINTF
688REPLACE_RENAMEAT 689REPLACE_RENAMEAT
@@ -726,11 +727,15 @@ GNULIB_VPRINTF
726GNULIB_VFPRINTF_POSIX 727GNULIB_VFPRINTF_POSIX
727GNULIB_VFPRINTF 728GNULIB_VFPRINTF
728GNULIB_VDPRINTF 729GNULIB_VDPRINTF
730GNULIB_VSCANF
731GNULIB_VFSCANF
729GNULIB_VASPRINTF 732GNULIB_VASPRINTF
730GNULIB_TMPFILE 733GNULIB_TMPFILE
731GNULIB_STDIO_H_SIGPIPE 734GNULIB_STDIO_H_SIGPIPE
735GNULIB_STDIO_H_NONBLOCKING
732GNULIB_SPRINTF_POSIX 736GNULIB_SPRINTF_POSIX
733GNULIB_SNPRINTF 737GNULIB_SNPRINTF
738GNULIB_SCANF
734GNULIB_RENAMEAT 739GNULIB_RENAMEAT
735GNULIB_RENAME 740GNULIB_RENAME
736GNULIB_REMOVE 741GNULIB_REMOVE
@@ -743,20 +748,27 @@ GNULIB_POPEN
743GNULIB_PERROR 748GNULIB_PERROR
744GNULIB_OBSTACK_PRINTF_POSIX 749GNULIB_OBSTACK_PRINTF_POSIX
745GNULIB_OBSTACK_PRINTF 750GNULIB_OBSTACK_PRINTF
751GNULIB_GETS
746GNULIB_GETLINE 752GNULIB_GETLINE
747GNULIB_GETDELIM 753GNULIB_GETDELIM
754GNULIB_GETCHAR
755GNULIB_GETC
748GNULIB_FWRITE 756GNULIB_FWRITE
749GNULIB_FTELLO 757GNULIB_FTELLO
750GNULIB_FTELL 758GNULIB_FTELL
751GNULIB_FSEEKO 759GNULIB_FSEEKO
752GNULIB_FSEEK 760GNULIB_FSEEK
761GNULIB_FSCANF
753GNULIB_FREOPEN 762GNULIB_FREOPEN
763GNULIB_FREAD
754GNULIB_FPUTS 764GNULIB_FPUTS
755GNULIB_FPUTC 765GNULIB_FPUTC
756GNULIB_FPURGE 766GNULIB_FPURGE
757GNULIB_FPRINTF_POSIX 767GNULIB_FPRINTF_POSIX
758GNULIB_FPRINTF 768GNULIB_FPRINTF
759GNULIB_FOPEN 769GNULIB_FOPEN
770GNULIB_FGETS
771GNULIB_FGETC
760GNULIB_FFLUSH 772GNULIB_FFLUSH
761GNULIB_FCLOSE 773GNULIB_FCLOSE
762GNULIB_DPRINTF 774GNULIB_DPRINTF
@@ -864,6 +876,7 @@ REPLACE_SYMLINK
864REPLACE_SLEEP 876REPLACE_SLEEP
865REPLACE_RMDIR 877REPLACE_RMDIR
866REPLACE_READLINK 878REPLACE_READLINK
879REPLACE_READ
867REPLACE_PWRITE 880REPLACE_PWRITE
868REPLACE_PREAD 881REPLACE_PREAD
869REPLACE_LSEEK 882REPLACE_LSEEK
@@ -922,6 +935,7 @@ GNULIB_USLEEP
922GNULIB_UNLINKAT 935GNULIB_UNLINKAT
923GNULIB_UNLINK 936GNULIB_UNLINK
924GNULIB_UNISTD_H_SIGPIPE 937GNULIB_UNISTD_H_SIGPIPE
938GNULIB_UNISTD_H_NONBLOCKING
925GNULIB_UNISTD_H_GETOPT 939GNULIB_UNISTD_H_GETOPT
926GNULIB_TTYNAME_R 940GNULIB_TTYNAME_R
927GNULIB_SYMLINKAT 941GNULIB_SYMLINKAT
@@ -930,6 +944,7 @@ GNULIB_SLEEP
930GNULIB_RMDIR 944GNULIB_RMDIR
931GNULIB_READLINKAT 945GNULIB_READLINKAT
932GNULIB_READLINK 946GNULIB_READLINK
947GNULIB_READ
933GNULIB_PWRITE 948GNULIB_PWRITE
934GNULIB_PREAD 949GNULIB_PREAD
935GNULIB_PIPE2 950GNULIB_PIPE2
@@ -14025,6 +14040,7 @@ _ACEOF
14025 GNULIB_PIPE2=0; 14040 GNULIB_PIPE2=0;
14026 GNULIB_PREAD=0; 14041 GNULIB_PREAD=0;
14027 GNULIB_PWRITE=0; 14042 GNULIB_PWRITE=0;
14043 GNULIB_READ=0;
14028 GNULIB_READLINK=0; 14044 GNULIB_READLINK=0;
14029 GNULIB_READLINKAT=0; 14045 GNULIB_READLINKAT=0;
14030 GNULIB_RMDIR=0; 14046 GNULIB_RMDIR=0;
@@ -14033,6 +14049,7 @@ _ACEOF
14033 GNULIB_SYMLINKAT=0; 14049 GNULIB_SYMLINKAT=0;
14034 GNULIB_TTYNAME_R=0; 14050 GNULIB_TTYNAME_R=0;
14035 GNULIB_UNISTD_H_GETOPT=0; 14051 GNULIB_UNISTD_H_GETOPT=0;
14052 GNULIB_UNISTD_H_NONBLOCKING=0;
14036 GNULIB_UNISTD_H_SIGPIPE=0; 14053 GNULIB_UNISTD_H_SIGPIPE=0;
14037 GNULIB_UNLINK=0; 14054 GNULIB_UNLINK=0;
14038 GNULIB_UNLINKAT=0; 14055 GNULIB_UNLINKAT=0;
@@ -14091,6 +14108,7 @@ _ACEOF
14091 REPLACE_LSEEK=0; 14108 REPLACE_LSEEK=0;
14092 REPLACE_PREAD=0; 14109 REPLACE_PREAD=0;
14093 REPLACE_PWRITE=0; 14110 REPLACE_PWRITE=0;
14111 REPLACE_READ=0;
14094 REPLACE_READLINK=0; 14112 REPLACE_READLINK=0;
14095 REPLACE_RMDIR=0; 14113 REPLACE_RMDIR=0;
14096 REPLACE_SLEEP=0; 14114 REPLACE_SLEEP=0;
@@ -15087,20 +15105,27 @@ $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
15087 GNULIB_DPRINTF=0; 15105 GNULIB_DPRINTF=0;
15088 GNULIB_FCLOSE=0; 15106 GNULIB_FCLOSE=0;
15089 GNULIB_FFLUSH=0; 15107 GNULIB_FFLUSH=0;
15108 GNULIB_FGETC=0;
15109 GNULIB_FGETS=0;
15090 GNULIB_FOPEN=0; 15110 GNULIB_FOPEN=0;
15091 GNULIB_FPRINTF=0; 15111 GNULIB_FPRINTF=0;
15092 GNULIB_FPRINTF_POSIX=0; 15112 GNULIB_FPRINTF_POSIX=0;
15093 GNULIB_FPURGE=0; 15113 GNULIB_FPURGE=0;
15094 GNULIB_FPUTC=0; 15114 GNULIB_FPUTC=0;
15095 GNULIB_FPUTS=0; 15115 GNULIB_FPUTS=0;
15116 GNULIB_FREAD=0;
15096 GNULIB_FREOPEN=0; 15117 GNULIB_FREOPEN=0;
15118 GNULIB_FSCANF=0;
15097 GNULIB_FSEEK=0; 15119 GNULIB_FSEEK=0;
15098 GNULIB_FSEEKO=0; 15120 GNULIB_FSEEKO=0;
15099 GNULIB_FTELL=0; 15121 GNULIB_FTELL=0;
15100 GNULIB_FTELLO=0; 15122 GNULIB_FTELLO=0;
15101 GNULIB_FWRITE=0; 15123 GNULIB_FWRITE=0;
15124 GNULIB_GETC=0;
15125 GNULIB_GETCHAR=0;
15102 GNULIB_GETDELIM=0; 15126 GNULIB_GETDELIM=0;
15103 GNULIB_GETLINE=0; 15127 GNULIB_GETLINE=0;
15128 GNULIB_GETS=0;
15104 GNULIB_OBSTACK_PRINTF=0; 15129 GNULIB_OBSTACK_PRINTF=0;
15105 GNULIB_OBSTACK_PRINTF_POSIX=0; 15130 GNULIB_OBSTACK_PRINTF_POSIX=0;
15106 GNULIB_PERROR=0; 15131 GNULIB_PERROR=0;
@@ -15113,11 +15138,15 @@ $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
15113 GNULIB_REMOVE=0; 15138 GNULIB_REMOVE=0;
15114 GNULIB_RENAME=0; 15139 GNULIB_RENAME=0;
15115 GNULIB_RENAMEAT=0; 15140 GNULIB_RENAMEAT=0;
15141 GNULIB_SCANF=0;
15116 GNULIB_SNPRINTF=0; 15142 GNULIB_SNPRINTF=0;
15117 GNULIB_SPRINTF_POSIX=0; 15143 GNULIB_SPRINTF_POSIX=0;
15144 GNULIB_STDIO_H_NONBLOCKING=0;
15118 GNULIB_STDIO_H_SIGPIPE=0; 15145 GNULIB_STDIO_H_SIGPIPE=0;
15119 GNULIB_TMPFILE=0; 15146 GNULIB_TMPFILE=0;
15120 GNULIB_VASPRINTF=0; 15147 GNULIB_VASPRINTF=0;
15148 GNULIB_VFSCANF=0;
15149 GNULIB_VSCANF=0;
15121 GNULIB_VDPRINTF=0; 15150 GNULIB_VDPRINTF=0;
15122 GNULIB_VFPRINTF=0; 15151 GNULIB_VFPRINTF=0;
15123 GNULIB_VFPRINTF_POSIX=0; 15152 GNULIB_VFPRINTF_POSIX=0;
@@ -15161,6 +15190,7 @@ $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
15161 REPLACE_RENAMEAT=0; 15190 REPLACE_RENAMEAT=0;
15162 REPLACE_SNPRINTF=0; 15191 REPLACE_SNPRINTF=0;
15163 REPLACE_SPRINTF=0; 15192 REPLACE_SPRINTF=0;
15193 REPLACE_STDIO_READ_FUNCS=0;
15164 REPLACE_STDIO_WRITE_FUNCS=0; 15194 REPLACE_STDIO_WRITE_FUNCS=0;
15165 REPLACE_TMPFILE=0; 15195 REPLACE_TMPFILE=0;
15166 REPLACE_VASPRINTF=0; 15196 REPLACE_VASPRINTF=0;
@@ -17619,6 +17649,19 @@ $as_echo "$gl_cv_next_stdio_h" >&6; }
17619 17649
17620 17650
17621 17651
17652
17653 GNULIB_FSCANF=1
17654 GNULIB_SCANF=1
17655 GNULIB_VFSCANF=1
17656 GNULIB_VSCANF=1
17657 GNULIB_FGETC=1
17658 GNULIB_GETC=1
17659 GNULIB_GETCHAR=1
17660 GNULIB_FGETS=1
17661 GNULIB_GETS=1
17662 GNULIB_FREAD=1
17663
17664
17622 GNULIB_FPRINTF=1 17665 GNULIB_FPRINTF=1
17623 GNULIB_PRINTF=1 17666 GNULIB_PRINTF=1
17624 GNULIB_VFPRINTF=1 17667 GNULIB_VFPRINTF=1
@@ -17633,6 +17676,7 @@ $as_echo "$gl_cv_next_stdio_h" >&6; }
17633 17676
17634 17677
17635 17678
17679
17636 # Code from module stdlib: 17680 # Code from module stdlib:
17637 17681
17638 17682
diff --git a/etc/NEWS b/etc/NEWS
index 869e95216e5..69540fa1f54 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -779,6 +779,9 @@ sc.el, x-menu.el, rnews.el, rnewspost.el
779 779
780* Lisp changes in Emacs 24.1 780* Lisp changes in Emacs 24.1
781 781
782** `glyphless-char-table' can now distinguish between graphical and
783text terminal display, via a char-table entry that is a cons cell.
784
782** `open-network-stream' can now be used to open an encrypted stream. 785** `open-network-stream' can now be used to open an encrypted stream.
783It now accepts an optional `:type' parameter for initiating a TLS 786It now accepts an optional `:type' parameter for initiating a TLS
784connection, directly or via STARTTLS. To do STARTTLS, additional 787connection, directly or via STARTTLS. To do STARTTLS, additional
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8d38892c0f0..693fae97ee5 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,37 @@
12011-04-19 Glenn Morris <rgm@gnu.org>
2
3 * calendar/cal-tex.el (cal-tex-list-holidays, cal-tex-cursor-month)
4 (cal-tex-cursor-week, cal-tex-cursor-week2, cal-tex-cursor-week-iso)
5 (cal-tex-cursor-filofax-2week, cal-tex-cursor-filofax-week)
6 (cal-tex-cursor-filofax-daily, cal-tex-mini-calendar)
7 * calendar/cal-html.el (cal-html-insert-minical):
8 * calendar/diary-lib.el (diary-list-entries-1, diary-list-entries)
9 (calendar-mark-date-pattern):
10 Prefix "unused" locals.
11
12 * calendar/cal-dst.el (dst-adjust-time): Remove never-implemented
13 optional argument `style'.
14
15 * calendar/appt.el (appt-make-list):
16 * calendar/cal-china.el (calendar-chinese-date-string):
17 * calendar/cal-hebrew.el (calendar-hebrew-list-yahrzeits)
18 (diary-hebrew-yahrzeit):
19 * calendar/cal-tex.el (cal-tex-last-blank-p, cal-tex-cursor-week2):
20 * calendar/calendar.el (calendar-generate-window):
21 * calendar/time-date.el (time-to-days):
22 Remove unused local variables.
23
242011-04-18 Chong Yidong <cyd@stupidchicken.com>
25
26 * emacs-lisp/tabulated-list.el (tabulated-list-mode): Use a custom
27 glyphless-char-display table.
28 (tabulated-list-glyphless-char-display): New var.
29
302011-04-18 Sam Steingold <sds@gnu.org>
31
32 * vc/add-log.el (change-log-font-lock-keywords): Add "Thanks to"
33 to acknowledgments.
34
12011-04-17 Glenn Morris <rgm@gnu.org> 352011-04-17 Glenn Morris <rgm@gnu.org>
2 36
3 * calendar/diary-lib.el (diary-sexp-entry): 37 * calendar/diary-lib.el (diary-sexp-entry):
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
index c0f4f0f3929..1394efa880e 100644
--- a/lisp/calendar/appt.el
+++ b/lisp/calendar/appt.el
@@ -509,7 +509,6 @@ Any appointments made with `appt-add' are not affected by this function."
509 ;; entry begins with a time, add it to the 509 ;; entry begins with a time, add it to the
510 ;; appt-time-msg-list. Then sort the list. 510 ;; appt-time-msg-list. Then sort the list.
511 (let ((entry-list diary-entries-list) 511 (let ((entry-list diary-entries-list)
512 (new-time-string "")
513 time-string) 512 time-string)
514 ;; Below, we assume diary-entries-list was in date 513 ;; Below, we assume diary-entries-list was in date
515 ;; order. It is, unless something on 514 ;; order. It is, unless something on
diff --git a/lisp/calendar/cal-china.el b/lisp/calendar/cal-china.el
index fce398709ad..d17c2c71f8a 100644
--- a/lisp/calendar/cal-china.el
+++ b/lisp/calendar/cal-china.el
@@ -575,8 +575,7 @@ Defaults to today's date if DATE is not given."
575 ;; Remainder of (1+(floor month))/12, with 575 ;; Remainder of (1+(floor month))/12, with
576 ;; 12 instead of 0. 576 ;; 12 instead of 0.
577 (1+ (mod (floor month) 12)) 577 (1+ (mod (floor month) 12))
578 1))) 578 1))))
579 (m-cycle (% (+ (* year 5) (floor month)) 60)))
580 (format "Cycle %s, year %s (%s), %smonth %s%s, day %s (%s)" 579 (format "Cycle %s, year %s (%s), %smonth %s%s, day %s (%s)"
581 cycle 580 cycle
582 year (calendar-chinese-sexagesimal-name year) 581 year (calendar-chinese-sexagesimal-name year)
diff --git a/lisp/calendar/cal-dst.el b/lisp/calendar/cal-dst.el
index e915f7e2696..ffb367a70f6 100644
--- a/lisp/calendar/cal-dst.el
+++ b/lisp/calendar/cal-dst.el
@@ -445,16 +445,12 @@ Fractional part of DATE is local standard time of day."
445 (or (<= dst-starts date) (< date dst-ends)))))) 445 (or (<= dst-starts date) (< date dst-ends))))))
446 446
447;; used by calc, lunar, solar. 447;; used by calc, lunar, solar.
448(defun dst-adjust-time (date time &optional style) 448(defun dst-adjust-time (date time)
449 "Adjust, to account for dst on DATE, decimal fraction standard TIME. 449 "Adjust, to account for dst on DATE, decimal fraction standard TIME.
450Returns a list (date adj-time zone) where `date' and `adj-time' are the values 450Returns a list (date adj-time zone) where `date' and `adj-time' are the values
451adjusted for `zone'; here `date' is a list (month day year), `adj-time' is a 451adjusted for `zone'; here `date' is a list (month day year), `adj-time' is a
452decimal fraction time, and `zone' is a string. 452decimal fraction time, and `zone' is a string.
453 453
454Optional parameter STYLE forces the result time to be standard time when its
455value is 'standard and daylight saving time (if available) when its value is
456'daylight.
457
458Conversion to daylight saving time is done according to 454Conversion to daylight saving time is done according to
459`calendar-daylight-savings-starts', `calendar-daylight-savings-ends', 455`calendar-daylight-savings-starts', `calendar-daylight-savings-ends',
460`calendar-daylight-savings-starts-time', 456`calendar-daylight-savings-starts-time',
diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el
index 44c3e62a7c2..52bf442915f 100644
--- a/lisp/calendar/cal-hebrew.el
+++ b/lisp/calendar/cal-hebrew.el
@@ -764,8 +764,6 @@ from the cursor position."
764 (message "Computing Yahrzeits...") 764 (message "Computing Yahrzeits...")
765 (let* ((h-date (calendar-hebrew-from-absolute 765 (let* ((h-date (calendar-hebrew-from-absolute
766 (calendar-absolute-from-gregorian death-date))) 766 (calendar-absolute-from-gregorian death-date)))
767 (h-month (calendar-extract-month h-date))
768 (h-day (calendar-extract-day h-date))
769 (h-year (calendar-extract-year h-date)) 767 (h-year (calendar-extract-year h-date))
770 (i (1- start-year))) 768 (i (1- start-year)))
771 (calendar-in-read-only-buffer calendar-hebrew-yahrzeit-buffer 769 (calendar-in-read-only-buffer calendar-hebrew-yahrzeit-buffer
@@ -900,8 +898,6 @@ use when highlighting the day in the calendar."
900 (+ (calendar-absolute-from-gregorian 898 (+ (calendar-absolute-from-gregorian
901 (diary-make-date death-month death-day death-year)) 899 (diary-make-date death-month death-day death-year))
902 (if after-sunset 1 0)))) 900 (if after-sunset 1 0))))
903 (h-month (calendar-extract-month h-date))
904 (h-day (calendar-extract-day h-date))
905 (h-year (calendar-extract-year h-date)) 901 (h-year (calendar-extract-year h-date))
906 (d (calendar-absolute-from-gregorian date)) 902 (d (calendar-absolute-from-gregorian date))
907 (yr (calendar-extract-year (calendar-hebrew-from-absolute d))) 903 (yr (calendar-extract-year (calendar-hebrew-from-absolute d)))
diff --git a/lisp/calendar/cal-html.el b/lisp/calendar/cal-html.el
index bd10aa176ae..bcc19ccda0b 100644
--- a/lisp/calendar/cal-html.el
+++ b/lisp/calendar/cal-html.el
@@ -247,7 +247,7 @@ Contains links to previous and next month and year, and current minical."
247 (insert cal-html-e-tablerow-string) 247 (insert cal-html-e-tablerow-string)
248 ;; Initial empty slots. 248 ;; Initial empty slots.
249 (insert cal-html-b-tablerow-string) 249 (insert cal-html-b-tablerow-string)
250 (dotimes (i blank-days) 250 (dotimes (_i blank-days)
251 (insert 251 (insert
252 cal-html-b-tabledata-string 252 cal-html-b-tabledata-string
253 cal-html-e-tabledata-string)) 253 cal-html-e-tabledata-string))
diff --git a/lisp/calendar/cal-tex.el b/lisp/calendar/cal-tex.el
index 2fc215c06c4..89e265aeb7e 100644
--- a/lisp/calendar/cal-tex.el
+++ b/lisp/calendar/cal-tex.el
@@ -253,7 +253,7 @@ This definition is the heart of the calendar!")
253 3))) 253 3)))
254 holidays in-range a) 254 holidays in-range a)
255 (calendar-increment-month displayed-month displayed-year 1) 255 (calendar-increment-month displayed-month displayed-year 1)
256 (dotimes (idummy number-of-intervals) 256 (dotimes (_idummy number-of-intervals)
257 (setq holidays (append holidays (calendar-holiday-list))) 257 (setq holidays (append holidays (calendar-holiday-list)))
258 (calendar-increment-month displayed-month displayed-year 3)) 258 (calendar-increment-month displayed-month displayed-year 3))
259 (dolist (hol holidays) 259 (dolist (hol holidays)
@@ -525,7 +525,7 @@ indicates a buffer position to use instead of point."
525 (cal-tex-insert-day-names) 525 (cal-tex-insert-day-names)
526 (cal-tex-nl ".2cm") 526 (cal-tex-nl ".2cm")
527 (cal-tex-insert-blank-days month year cal-tex-day-prefix) 527 (cal-tex-insert-blank-days month year cal-tex-day-prefix)
528 (dotimes (idummy n) 528 (dotimes (_idummy n)
529 (cal-tex-insert-days month year diary-list holidays cal-tex-day-prefix) 529 (cal-tex-insert-days month year diary-list holidays cal-tex-day-prefix)
530 (when (= (calendar-week-end-day) 530 (when (= (calendar-week-end-day)
531 (calendar-day-of-week 531 (calendar-day-of-week
@@ -642,7 +642,7 @@ in the calendar starting in MONTH YEAR."
642 ;; start of the last week in the month. 642 ;; start of the last week in the month.
643 (catch 'found 643 (catch 'found
644 (let ((last-day (calendar-last-day-of-month month year)) 644 (let ((last-day (calendar-last-day-of-month month year))
645 day dow) 645 dow)
646 (dotimes (i 7) 646 (dotimes (i 7)
647 (if (memq (setq dow (calendar-day-of-week 647 (if (memq (setq dow (calendar-day-of-week
648 (list month (- last-day i) year))) 648 (list month (- last-day i) year)))
@@ -717,7 +717,7 @@ entries are not shown). The calendar shows the hours 8-12am, 1-5pm."
717 (cal-tex-e-center) 717 (cal-tex-e-center)
718 (cal-tex-hspace "-.2in") 718 (cal-tex-hspace "-.2in")
719 (cal-tex-b-parbox "l" "7in") 719 (cal-tex-b-parbox "l" "7in")
720 (dotimes (jdummy 7) 720 (dotimes (_jdummy 7)
721 (cal-tex-week-hours date holidays "3.1") 721 (cal-tex-week-hours date holidays "3.1")
722 (setq date (cal-tex-incr-date date))) 722 (setq date (cal-tex-incr-date date)))
723 (cal-tex-e-parbox) 723 (cal-tex-e-parbox)
@@ -749,7 +749,6 @@ Optional EVENT indicates a buffer position to use instead of point."
749 (calendar-cursor-to-date t event))))) 749 (calendar-cursor-to-date t event)))))
750 (month (calendar-extract-month date)) 750 (month (calendar-extract-month date))
751 (year (calendar-extract-year date)) 751 (year (calendar-extract-year date))
752 (d date)
753 (d1 (calendar-absolute-from-gregorian date)) 752 (d1 (calendar-absolute-from-gregorian date))
754 (d2 (+ (* 7 n) d1)) 753 (d2 (+ (* 7 n) d1))
755 (holidays (if cal-tex-holidays 754 (holidays (if cal-tex-holidays
@@ -773,7 +772,7 @@ Optional EVENT indicates a buffer position to use instead of point."
773 (cal-tex-e-center) 772 (cal-tex-e-center)
774 (cal-tex-hspace "-.2in") 773 (cal-tex-hspace "-.2in")
775 (cal-tex-b-parbox "l" "\\textwidth") 774 (cal-tex-b-parbox "l" "\\textwidth")
776 (dotimes (jdummy 3) 775 (dotimes (_jdummy 3)
777 (cal-tex-week-hours date holidays "5") 776 (cal-tex-week-hours date holidays "5")
778 (setq date (cal-tex-incr-date date))) 777 (setq date (cal-tex-incr-date date)))
779 (cal-tex-e-parbox) 778 (cal-tex-e-parbox)
@@ -801,7 +800,7 @@ Optional EVENT indicates a buffer position to use instead of point."
801 (insert "}") 800 (insert "}")
802 (cal-tex-nl) 801 (cal-tex-nl)
803 (cal-tex-b-parbox "l" "\\textwidth") 802 (cal-tex-b-parbox "l" "\\textwidth")
804 (dotimes (jdummy 4) 803 (dotimes (_jdummy 4)
805 (cal-tex-week-hours date holidays "5") 804 (cal-tex-week-hours date holidays "5")
806 (setq date (cal-tex-incr-date date))) 805 (setq date (cal-tex-incr-date date)))
807 (cal-tex-e-parbox) 806 (cal-tex-e-parbox)
@@ -863,7 +862,7 @@ position to use instead of point."
863 (cal-tex-nl ".5cm") 862 (cal-tex-nl ".5cm")
864 (cal-tex-e-center) 863 (cal-tex-e-center)
865 (cal-tex-b-parbox "l" "\\textwidth") 864 (cal-tex-b-parbox "l" "\\textwidth")
866 (dotimes (j 7) 865 (dotimes (_j 7)
867 (cal-tex-b-parbox "t" "\\textwidth") 866 (cal-tex-b-parbox "t" "\\textwidth")
868 (cal-tex-b-parbox "t" "\\textwidth") 867 (cal-tex-b-parbox "t" "\\textwidth")
869 (cal-tex-rule "0pt" "\\textwidth" ".2mm") 868 (cal-tex-rule "0pt" "\\textwidth" ".2mm")
@@ -1112,7 +1111,7 @@ Optional EVENT indicates a buffer position to use instead of point."
1112 (cal-tex-month-name (calendar-extract-month d)) 1111 (cal-tex-month-name (calendar-extract-month d))
1113 (calendar-extract-year d)))))) 1112 (calendar-extract-year d))))))
1114 (insert "%\n") 1113 (insert "%\n")
1115 (dotimes (jdummy 7) 1114 (dotimes (_jdummy 7)
1116 (if (zerop (mod i 2)) 1115 (if (zerop (mod i 2))
1117 (insert "\\rightday") 1116 (insert "\\rightday")
1118 (insert "\\leftday")) 1117 (insert "\\leftday"))
@@ -1216,7 +1215,7 @@ Optional EVENT indicates a buffer position to use instead of point."
1216 (cal-tex-month-name (calendar-extract-month d)) 1215 (cal-tex-month-name (calendar-extract-month d))
1217 (calendar-extract-year d)))))) 1216 (calendar-extract-year d))))))
1218 (insert "%\n") 1217 (insert "%\n")
1219 (dotimes (jdummy 3) 1218 (dotimes (_jdummy 3)
1220 (insert "\\leftday") 1219 (insert "\\leftday")
1221 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date))) 1220 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
1222 (cal-tex-arg (number-to-string (calendar-extract-day date))) 1221 (cal-tex-arg (number-to-string (calendar-extract-day date)))
@@ -1247,7 +1246,7 @@ Optional EVENT indicates a buffer position to use instead of point."
1247 (cal-tex-month-name (calendar-extract-month d)) 1246 (cal-tex-month-name (calendar-extract-month d))
1248 (calendar-extract-year d)))))) 1247 (calendar-extract-year d))))))
1249 (insert "%\n") 1248 (insert "%\n")
1250 (dotimes (jdummy 2) 1249 (dotimes (_jdummy 2)
1251 (insert "\\rightday") 1250 (insert "\\rightday")
1252 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date))) 1251 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
1253 (cal-tex-arg (number-to-string (calendar-extract-day date))) 1252 (cal-tex-arg (number-to-string (calendar-extract-day date)))
@@ -1256,7 +1255,7 @@ Optional EVENT indicates a buffer position to use instead of point."
1256 (cal-tex-arg (eval cal-tex-daily-string)) 1255 (cal-tex-arg (eval cal-tex-daily-string))
1257 (insert "%\n") 1256 (insert "%\n")
1258 (setq date (cal-tex-incr-date date))) 1257 (setq date (cal-tex-incr-date date)))
1259 (dotimes (jdummy 2) 1258 (dotimes (_jdummy 2)
1260 (insert "\\weekend") 1259 (insert "\\weekend")
1261 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date))) 1260 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
1262 (cal-tex-arg (number-to-string (calendar-extract-day date))) 1261 (cal-tex-arg (number-to-string (calendar-extract-day date)))
@@ -1362,7 +1361,7 @@ Optional EVENT indicates a buffer position to use instead of point."
1362 (cal-tex-newpage) 1361 (cal-tex-newpage)
1363 (setq date (cal-tex-incr-date date))) 1362 (setq date (cal-tex-incr-date date)))
1364 (insert "%\n") 1363 (insert "%\n")
1365 (dotimes (jdummy 2) 1364 (dotimes (_jdummy 2)
1366 (insert "\\lefthead") 1365 (insert "\\lefthead")
1367 (cal-tex-arg (calendar-date-string date)) 1366 (cal-tex-arg (calendar-date-string date))
1368 (insert "\\weekend") 1367 (insert "\\weekend")
@@ -1523,7 +1522,7 @@ Optional string COLSEP gives the column separation (default \"1mm\")."
1523 (if (= i 6) 1522 (if (= i 6)
1524 "\\\\[0.7mm]\n" 1523 "\\\\[0.7mm]\n"
1525 " & ")))) 1524 " & "))))
1526 (dotimes (idummy blank-days) 1525 (dotimes (_idummy blank-days)
1527 (setq str (concat str " & "))) 1526 (setq str (concat str " & ")))
1528 (dotimes (i last) 1527 (dotimes (i last)
1529 (setq str (concat str (number-to-string (1+ i))) 1528 (setq str (concat str (number-to-string (1+ i)))
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 99b0c21c94c..e81eb554458 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -1363,7 +1363,6 @@ Optional integers MON and YR are used instead of today's date."
1363 (year (calendar-extract-year today)) 1363 (year (calendar-extract-year today))
1364 (today-visible (or (not mon) 1364 (today-visible (or (not mon)
1365 (<= (abs (calendar-interval mon yr month year)) 1))) 1365 (<= (abs (calendar-interval mon yr month year)) 1)))
1366 (day-in-week (calendar-day-of-week today))
1367 (in-calendar-window (eq (window-buffer (selected-window)) 1366 (in-calendar-window (eq (window-buffer (selected-window))
1368 (get-buffer calendar-buffer)))) 1367 (get-buffer calendar-buffer))))
1369 (calendar-generate (or mon month) (or yr year)) 1368 (calendar-generate (or mon month) (or yr year))
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index 9a455c4f2f0..a2528ac22ca 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -710,7 +710,7 @@ MONTHS is an array of month names. SYMBOL marks diary entries of the type
710in question. ABSFUNC is a function that converts absolute dates to dates 710in question. ABSFUNC is a function that converts absolute dates to dates
711of the appropriate type." 711of the appropriate type."
712 (let ((gdate original-date)) 712 (let ((gdate original-date))
713 (dotimes (idummy number) 713 (dotimes (_idummy number)
714 (diary-list-entries-2 714 (diary-list-entries-2
715 (funcall absfunc (calendar-absolute-from-gregorian gdate)) 715 (funcall absfunc (calendar-absolute-from-gregorian gdate))
716 diary-nonmarking-symbol file-glob-attrs list-only months symbol gdate) 716 diary-nonmarking-symbol file-glob-attrs list-only months symbol gdate)
@@ -820,7 +820,7 @@ LIST-ONLY is non-nil, in which case it just returns the list."
820 (set (make-local-variable 'diary-selective-display) t) 820 (set (make-local-variable 'diary-selective-display) t)
821 (overlay-put ol 'invisible 'diary) 821 (overlay-put ol 'invisible 'diary)
822 (overlay-put ol 'evaporate t))) 822 (overlay-put ol 'evaporate t)))
823 (dotimes (idummy number) 823 (dotimes (_idummy number)
824 (let ((sexp-found (diary-list-sexp-entries date)) 824 (let ((sexp-found (diary-list-sexp-entries date))
825 (entry-found (diary-list-entries-2 825 (entry-found (diary-list-entries-2
826 date diary-nonmarking-symbol 826 date diary-nonmarking-symbol
@@ -1509,7 +1509,7 @@ passed to `calendar-mark-visible-date' as MARK."
1509 (let ((m displayed-month) 1509 (let ((m displayed-month)
1510 (y displayed-year)) 1510 (y displayed-year))
1511 (calendar-increment-month m y -1) 1511 (calendar-increment-month m y -1)
1512 (dotimes (idummy 3) 1512 (dotimes (_idummy 3)
1513 (calendar-mark-month m y month day year color) 1513 (calendar-mark-month m y month day year color)
1514 (calendar-increment-month m y 1))))) 1514 (calendar-increment-month m y 1)))))
1515 1515
diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el
index 62203600612..70d096c4108 100644
--- a/lisp/calendar/time-date.el
+++ b/lisp/calendar/time-date.el
@@ -243,8 +243,6 @@ DATE1 and DATE2 should be date-time strings."
243TIME should be a time value. 243TIME should be a time value.
244The Gregorian date Sunday, December 31, 1bce is imaginary." 244The Gregorian date Sunday, December 31, 1bce is imaginary."
245 (let* ((tim (decode-time time)) 245 (let* ((tim (decode-time time))
246 (month (nth 4 tim))
247 (day (nth 3 tim))
248 (year (nth 5 tim))) 246 (year (nth 5 tim)))
249 (+ (time-to-day-in-year time) ; Days this year 247 (+ (time-to-day-in-year time) ; Days this year
250 (* 365 (1- year)) ; + Days in prior years 248 (* 365 (1- year)) ; + Days in prior years
diff --git a/lisp/emacs-lisp/tabulated-list.el b/lisp/emacs-lisp/tabulated-list.el
index 6409c2206bc..2fdfa9525b1 100644
--- a/lisp/emacs-lisp/tabulated-list.el
+++ b/lisp/emacs-lisp/tabulated-list.el
@@ -143,6 +143,15 @@ If ADVANCE is non-nil, move forward by one line afterwards."
143 map) 143 map)
144 "Local keymap for `tabulated-list-mode' sort buttons.") 144 "Local keymap for `tabulated-list-mode' sort buttons.")
145 145
146(defvar tabulated-list-glyphless-char-display
147 (let ((table (make-char-table 'glyphless-char-display nil)))
148 (set-char-table-parent table glyphless-char-display)
149 ;; Some text terminals can't display the unicode arrows; be safe.
150 (aset table 9650 (cons nil "^"))
151 (aset table 9660 (cons nil "v"))
152 table)
153 "The `glyphless-char-display' table in Tabulated List buffers.")
154
146(defun tabulated-list-init-header () 155(defun tabulated-list-init-header ()
147 "Set up header line for the Tabulated List buffer." 156 "Set up header line for the Tabulated List buffer."
148 (let ((x tabulated-list-padding) 157 (let ((x tabulated-list-padding)
@@ -341,7 +350,9 @@ as the ewoc pretty-printer."
341 (setq truncate-lines t) 350 (setq truncate-lines t)
342 (setq buffer-read-only t) 351 (setq buffer-read-only t)
343 (set (make-local-variable 'revert-buffer-function) 352 (set (make-local-variable 'revert-buffer-function)
344 'tabulated-list-revert)) 353 'tabulated-list-revert)
354 (set (make-local-variable 'glyphless-char-display)
355 tabulated-list-glyphless-char-display))
345 356
346(put 'tabulated-list-mode 'mode-class 'special) 357(put 'tabulated-list-mode 'mode-class 'special)
347 358
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index eac53d413cc..8417d37cadf 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,18 @@
12011-04-18 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus-registry.el: Eliminate cl functions.
4 (gnus-registry-sort-addresses): New function that replaces mapcan.
5 (gnus-registry-action, gnus-registry-spool-action)
6 (gnus-registry-split-fancy-with-parent)
7 (gnus-registry-fetch-recipients-fast): Use it.
8 (gnus-registry-import-eld): Replace delete* with dolist + delq.
9
10 * registry.el (initialize-instance, registry-lookup)
11 (registry-lookup-breaks-before-lexbind, registry-lookup-secondary)
12 (registry-lookup-secondary-value, registry-search, registry-delete)
13 (registry-insert, registry-reindex, registry-size, registry-prune):
14 Use eval-and-compile.
15
12011-04-16 Teodor Zlatanov <tzz@lifelogs.com> 162011-04-16 Teodor Zlatanov <tzz@lifelogs.com>
2 17
3 * registry.el (registry-reindex): New method to recreate the secondary 18 * registry.el (registry-reindex): New method to recreate the secondary
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
index eab4403c34b..697dc373b1f 100644
--- a/lisp/gnus/gnus-registry.el
+++ b/lisp/gnus/gnus-registry.el
@@ -303,15 +303,9 @@ This is not required after changing `gnus-registry-cache-file'."
303(defun gnus-registry-action (action data-header from &optional to method) 303(defun gnus-registry-action (action data-header from &optional to method)
304 (let* ((id (mail-header-id data-header)) 304 (let* ((id (mail-header-id data-header))
305 (subject (mail-header-subject data-header)) 305 (subject (mail-header-subject data-header))
306 (recipients (sort (mapcan 'gnus-registry-extract-addresses 306 (recipients (gnus-registry-sort-addresses
307 (list 307 (or (ignore-errors (mail-header "Cc" data-header)) "")
308 (or (ignore-errors 308 (or (ignore-errors (mail-header "To" data-header)) "")))
309 (mail-header "Cc" data-header))
310 "")
311 (or (ignore-errors
312 (mail-header "To" data-header))
313 "")))
314 'string-lessp))
315 (sender (nth 0 (gnus-registry-extract-addresses 309 (sender (nth 0 (gnus-registry-extract-addresses
316 (mail-header-from data-header)))) 310 (mail-header-from data-header))))
317 (from (gnus-group-guess-full-name-from-command-method from)) 311 (from (gnus-group-guess-full-name-from-command-method from))
@@ -329,11 +323,9 @@ This is not required after changing `gnus-registry-cache-file'."
329(defun gnus-registry-spool-action (id group &optional subject sender recipients) 323(defun gnus-registry-spool-action (id group &optional subject sender recipients)
330 (let ((to (gnus-group-guess-full-name-from-command-method group)) 324 (let ((to (gnus-group-guess-full-name-from-command-method group))
331 (recipients (or recipients 325 (recipients (or recipients
332 (sort (mapcan 'gnus-registry-extract-addresses 326 (gnus-registry-sort-addresses
333 (list 327 (or (message-fetch-field "cc") "")
334 (or (message-fetch-field "cc") "") 328 (or (message-fetch-field "to") ""))))
335 (or (message-fetch-field "to") "")))
336 'string-lessp)))
337 (subject (or subject (message-fetch-field "subject"))) 329 (subject (or subject (message-fetch-field "subject")))
338 (sender (or sender (message-fetch-field "from")))) 330 (sender (or sender (message-fetch-field "from"))))
339 (when (and (stringp id) (string-match "\r$" id)) 331 (when (and (stringp id) (string-match "\r$" id))
@@ -409,11 +401,9 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details."
409 ;; these may not be used, but the code is cleaner having them up here 401 ;; these may not be used, but the code is cleaner having them up here
410 (sender (gnus-string-remove-all-properties 402 (sender (gnus-string-remove-all-properties
411 (message-fetch-field "from"))) 403 (message-fetch-field "from")))
412 (recipients (sort (mapcan 'gnus-registry-extract-addresses 404 (recipients (gnus-registry-sort-addresses
413 (list 405 (or (message-fetch-field "cc") "")
414 (or (message-fetch-field "cc") "") 406 (or (message-fetch-field "to") "")))
415 (or (message-fetch-field "to") "")))
416 'string-lessp))
417 (subject (gnus-string-remove-all-properties 407 (subject (gnus-string-remove-all-properties
418 (gnus-registry-simplify-subject 408 (gnus-registry-simplify-subject
419 (message-fetch-field "subject")))) 409 (message-fetch-field "subject"))))
@@ -719,6 +709,11 @@ Addresses without a name will say \"noname\"."
719 (format "%s <%s>" name addr)))) 709 (format "%s <%s>" name addr))))
720 (mail-extract-address-components text t))) 710 (mail-extract-address-components text t)))
721 711
712(defun gnus-registry-sort-addresses (&rest addresses)
713 "Return a normalized and sorted list of ADDRESSES."
714 (sort (apply 'nconc (mapcar 'gnus-registry-extract-addresses addresses))
715 'string-lessp))
716
722(defun gnus-registry-simplify-subject (subject) 717(defun gnus-registry-simplify-subject (subject)
723 (if (stringp subject) 718 (if (stringp subject)
724 (gnus-simplify-subject subject) 719 (gnus-simplify-subject subject)
@@ -738,15 +733,9 @@ Addresses without a name will say \"noname\"."
738 (gnus-registry-fetch-header-fast "from" article)) 733 (gnus-registry-fetch-header-fast "from" article))
739 734
740(defun gnus-registry-fetch-recipients-fast (article) 735(defun gnus-registry-fetch-recipients-fast (article)
741 (sort (mapcan 'gnus-registry-extract-addresses 736 (gnus-registry-sort-addresses
742 (list 737 (or (ignore-errors (gnus-registry-fetch-header-fast "Cc" article)) "")
743 (or (ignore-errors 738 (or (ignore-errors (gnus-registry-fetch-header-fast "To" article)) "")))
744 (gnus-registry-fetch-header-fast "Cc" article))
745 "")
746 (or (ignore-errors
747 (gnus-registry-fetch-header-fast "To" article))
748 "")))
749 'string-lessp))
750 739
751(defun gnus-registry-fetch-header-fast (article header) 740(defun gnus-registry-fetch-header-fast (article header)
752 "Fetch the HEADER quickly, using the internal gnus-data-list function" 741 "Fetch the HEADER quickly, using the internal gnus-data-list function"
@@ -982,7 +971,8 @@ only the last one's marks are returned."
982 collect p)) 971 collect p))
983 extra-cell key val) 972 extra-cell key val)
984 ;; remove all the strings from the entry 973 ;; remove all the strings from the entry
985 (delete* nil rest :test (lambda (a b) (stringp b))) 974 (dolist (elem rest)
975 (if (stringp elem) (setq rest (delq elem rest))))
986 (gnus-registry-set-id-key id 'group groups) 976 (gnus-registry-set-id-key id 'group groups)
987 ;; just use the first extra element 977 ;; just use the first extra element
988 (setq rest (car-safe rest)) 978 (setq rest (car-safe rest))
diff --git a/lisp/gnus/registry.el b/lisp/gnus/registry.el
index 3e638427897..1a18dbd50d2 100644
--- a/lisp/gnus/registry.el
+++ b/lisp/gnus/registry.el
@@ -131,58 +131,60 @@
131 :type hash-table 131 :type hash-table
132 :documentation "The data hashtable."))) 132 :documentation "The data hashtable.")))
133 133
134(defmethod initialize-instance :AFTER ((this registry-db) slots) 134(eval-and-compile
135 "Set value of data slot of THIS after initialization." 135 (defmethod initialize-instance :AFTER ((this registry-db) slots)
136 (with-slots (data tracker) this 136 "Set value of data slot of THIS after initialization."
137 (unless (member :data slots) 137 (with-slots (data tracker) this
138 (setq data (make-hash-table :size 10000 :rehash-size 2.0 :test 'equal))) 138 (unless (member :data slots)
139 (unless (member :tracker slots) 139 (setq data
140 (setq tracker (make-hash-table :size 100 :rehash-size 2.0))))) 140 (make-hash-table :size 10000 :rehash-size 2.0 :test 'equal)))
141 141 (unless (member :tracker slots)
142(defmethod registry-lookup ((db registry-db) keys) 142 (setq tracker (make-hash-table :size 100 :rehash-size 2.0)))))
143 "Search for KEYS in the registry-db THIS. 143
144 (defmethod registry-lookup ((db registry-db) keys)
145 "Search for KEYS in the registry-db THIS.
144Returns a alist of the key followed by the entry in a list, not a cons cell." 146Returns a alist of the key followed by the entry in a list, not a cons cell."
145 (let ((data (oref db :data))) 147 (let ((data (oref db :data)))
146 (delq nil 148 (delq nil
147 (mapcar 149 (mapcar
148 (lambda (k) 150 (lambda (k)
149 (when (gethash k data) 151 (when (gethash k data)
150 (list k (gethash k data)))) 152 (list k (gethash k data))))
151 keys)))) 153 keys))))
152 154
153(defmethod registry-lookup-breaks-before-lexbind ((db registry-db) keys) 155 (defmethod registry-lookup-breaks-before-lexbind ((db registry-db) keys)
154 "Search for KEYS in the registry-db THIS. 156 "Search for KEYS in the registry-db THIS.
155Returns a alist of the key followed by the entry in a list, not a cons cell." 157Returns a alist of the key followed by the entry in a list, not a cons cell."
156 (let ((data (oref db :data))) 158 (let ((data (oref db :data)))
157 (delq nil 159 (delq nil
158 (loop for key in keys 160 (loop for key in keys
159 when (gethash key data) 161 when (gethash key data)
160 collect (list key (gethash key data)))))) 162 collect (list key (gethash key data))))))
161 163
162(defmethod registry-lookup-secondary ((db registry-db) tracksym 164 (defmethod registry-lookup-secondary ((db registry-db) tracksym
163 &optional create) 165 &optional create)
164 "Search for TRACKSYM in the registry-db THIS. 166 "Search for TRACKSYM in the registry-db THIS.
165When CREATE is not nil, create the secondary index hashtable if needed." 167When CREATE is not nil, create the secondary index hashtable if needed."
166 (let ((h (gethash tracksym (oref db :tracker)))) 168 (let ((h (gethash tracksym (oref db :tracker))))
167 (if h 169 (if h
168 h 170 h
169 (when create 171 (when create
170 (puthash tracksym 172 (puthash tracksym
171 (make-hash-table :size 800 :rehash-size 2.0 :test 'equal) 173 (make-hash-table :size 800 :rehash-size 2.0 :test 'equal)
172 (oref db :tracker)) 174 (oref db :tracker))
173 (gethash tracksym (oref db :tracker)))))) 175 (gethash tracksym (oref db :tracker))))))
174 176
175(defmethod registry-lookup-secondary-value ((db registry-db) tracksym val 177 (defmethod registry-lookup-secondary-value ((db registry-db) tracksym val
176 &optional set) 178 &optional set)
177 "Search for TRACKSYM with value VAL in the registry-db THIS. 179 "Search for TRACKSYM with value VAL in the registry-db THIS.
178When SET is not nil, set it for VAL (use t for an empty list)." 180When SET is not nil, set it for VAL (use t for an empty list)."
179 ;; either we're asked for creation or there should be an existing index 181 ;; either we're asked for creation or there should be an existing index
180 (when (or set (registry-lookup-secondary db tracksym)) 182 (when (or set (registry-lookup-secondary db tracksym))
181 ;; set the entry if requested, 183 ;; set the entry if requested,
182 (when set 184 (when set
183 (puthash val (if (eq t set) '() set) 185 (puthash val (if (eq t set) '() set)
184 (registry-lookup-secondary db tracksym t))) 186 (registry-lookup-secondary db tracksym t)))
185 (gethash val (registry-lookup-secondary db tracksym)))) 187 (gethash val (registry-lookup-secondary db tracksym)))))
186 188
187(defun registry--match (mode entry check-list) 189(defun registry--match (mode entry check-list)
188 ;; for all members 190 ;; for all members
@@ -204,129 +206,133 @@ When SET is not nil, set it for VAL (use t for an empty list)."
204 (or found 206 (or found
205 (registry--match mode entry (cdr-safe check-list)))))) 207 (registry--match mode entry (cdr-safe check-list))))))
206 208
207(defmethod registry-search ((db registry-db) &rest spec) 209(eval-and-compile
208 "Search for SPEC across the registry-db THIS. 210 (defmethod registry-search ((db registry-db) &rest spec)
211 "Search for SPEC across the registry-db THIS.
209For example calling with :member '(a 1 2) will match entry '((a 3 1)). 212For example calling with :member '(a 1 2) will match entry '((a 3 1)).
210Calling with :all t (any non-nil value) will match all. 213Calling with :all t (any non-nil value) will match all.
211Calling with :regex '\(a \"h.llo\") will match entry '((a \"hullo\" \"bye\"). 214Calling with :regex '\(a \"h.llo\") will match entry '((a \"hullo\" \"bye\").
212The test order is to check :all first, then :member, then :regex." 215The test order is to check :all first, then :member, then :regex."
213 (when db 216 (when db
214 (let ((all (plist-get spec :all)) 217 (let ((all (plist-get spec :all))
215 (member (plist-get spec :member)) 218 (member (plist-get spec :member))
216 (regex (plist-get spec :regex))) 219 (regex (plist-get spec :regex)))
217 (loop for k being the hash-keys of (oref db :data) using (hash-values v) 220 (loop for k being the hash-keys of (oref db :data)
218 when (or 221 using (hash-values v)
219 ;; :all non-nil returns all 222 when (or
220 all 223 ;; :all non-nil returns all
221 ;; member matching 224 all
222 (and member (registry--match :member v member)) 225 ;; member matching
223 ;; regex matching 226 (and member (registry--match :member v member))
224 (and regex (registry--match :regex v regex))) 227 ;; regex matching
225 collect k)))) 228 (and regex (registry--match :regex v regex)))
226 229 collect k))))
227(defmethod registry-delete ((db registry-db) keys assert &rest spec) 230
228 "Delete KEYS from the registry-db THIS. 231 (defmethod registry-delete ((db registry-db) keys assert &rest spec)
232 "Delete KEYS from the registry-db THIS.
229If KEYS is nil, use SPEC to do a search. 233If KEYS is nil, use SPEC to do a search.
230Updates the secondary ('tracked') indices as well. 234Updates the secondary ('tracked') indices as well.
231With assert non-nil, errors out if the key does not exist already." 235With assert non-nil, errors out if the key does not exist already."
232 (let* ((data (oref db :data)) 236 (let* ((data (oref db :data))
233 (keys (or keys 237 (keys (or keys
234 (apply 'registry-search db spec))) 238 (apply 'registry-search db spec)))
235 (tracked (oref db :tracked))) 239 (tracked (oref db :tracked)))
236 240
237 (dolist (key keys) 241 (dolist (key keys)
238 (let ((entry (gethash key data))) 242 (let ((entry (gethash key data)))
239 (when assert 243 (when assert
240 (assert entry nil 244 (assert entry nil
241 "Key %s does not exists in database" key)) 245 "Key %s does not exists in database" key))
242 ;; clean entry from the secondary indices 246 ;; clean entry from the secondary indices
243 (dolist (tr tracked) 247 (dolist (tr tracked)
244 ;; is this tracked symbol indexed? 248 ;; is this tracked symbol indexed?
245 (when (registry-lookup-secondary db tr) 249 (when (registry-lookup-secondary db tr)
246 ;; for every value in the entry under that key... 250 ;; for every value in the entry under that key...
247 (dolist (val (cdr-safe (assq tr entry))) 251 (dolist (val (cdr-safe (assq tr entry)))
248 (let* ((value-keys (registry-lookup-secondary-value db tr val))) 252 (let* ((value-keys (registry-lookup-secondary-value
249 (when (member key value-keys) 253 db tr val)))
250 ;; override the previous value 254 (when (member key value-keys)
251 (registry-lookup-secondary-value 255 ;; override the previous value
252 db tr val 256 (registry-lookup-secondary-value
253 ;; with the indexed keys MINUS the current key 257 db tr val
254 ;; (we pass t when the list is empty) 258 ;; with the indexed keys MINUS the current key
255 (or (delete key value-keys) t))))))) 259 ;; (we pass t when the list is empty)
256 (remhash key data))) 260 (or (delete key value-keys) t)))))))
257 keys)) 261 (remhash key data)))
258 262 keys))
259(defmethod registry-insert ((db registry-db) key entry) 263
260 "Insert ENTRY under KEY into the registry-db THIS. 264 (defmethod registry-insert ((db registry-db) key entry)
265 "Insert ENTRY under KEY into the registry-db THIS.
261Updates the secondary ('tracked') indices as well. 266Updates the secondary ('tracked') indices as well.
262Errors out if the key exists already." 267Errors out if the key exists already."
263 268
264 (assert (not (gethash key (oref db :data))) nil 269 (assert (not (gethash key (oref db :data))) nil
265 "Key already exists in database") 270 "Key already exists in database")
266 271
267 (assert (< (registry-size db) 272 (assert (< (registry-size db)
268 (oref db :max-hard)) 273 (oref db :max-hard))
269 nil 274 nil
270 "max-hard size limit reached") 275 "max-hard size limit reached")
271 276
272 ;; store the entry 277 ;; store the entry
273 (puthash key entry (oref db :data)) 278 (puthash key entry (oref db :data))
274 279
275 ;; store the secondary indices 280 ;; store the secondary indices
276 (dolist (tr (oref db :tracked))
277 ;; for every value in the entry under that key...
278 (dolist (val (cdr-safe (assq tr entry)))
279 (let* ((value-keys (registry-lookup-secondary-value db tr val)))
280 (pushnew key value-keys :test 'equal)
281 (registry-lookup-secondary-value db tr val value-keys))))
282 entry)
283
284(defmethod registry-reindex ((db registry-db))
285 "Rebuild the secondary indices of registry-db THIS."
286 (let ((count 0)
287 (expected (* (length (oref db :tracked)) (registry-size db))))
288 (dolist (tr (oref db :tracked)) 281 (dolist (tr (oref db :tracked))
289 (let (values) 282 ;; for every value in the entry under that key...
290 (maphash 283 (dolist (val (cdr-safe (assq tr entry)))
291 (lambda (key v) 284 (let* ((value-keys (registry-lookup-secondary-value db tr val)))
292 (incf count) 285 (pushnew key value-keys :test 'equal)
293 (when (and (< 0 expected) 286 (registry-lookup-secondary-value db tr val value-keys))))
294 (= 0 (mod count 1000))) 287 entry)
295 (message "reindexing: %d of %d (%.2f%%)" 288
296 count expected (/ (* 1000 count) expected))) 289 (defmethod registry-reindex ((db registry-db))
297 (dolist (val (cdr-safe (assq tr v))) 290 "Rebuild the secondary indices of registry-db THIS."
298 (let* ((value-keys (registry-lookup-secondary-value db tr val))) 291 (let ((count 0)
299 (push key value-keys) 292 (expected (* (length (oref db :tracked)) (registry-size db))))
300 (registry-lookup-secondary-value db tr val value-keys)))) 293 (dolist (tr (oref db :tracked))
301 (oref db :data)))))) 294 (let (values)
302 295 (maphash
303(defmethod registry-size ((db registry-db)) 296 (lambda (key v)
304 "Returns the size of the registry-db object THIS. 297 (incf count)
298 (when (and (< 0 expected)
299 (= 0 (mod count 1000)))
300 (message "reindexing: %d of %d (%.2f%%)"
301 count expected (/ (* 1000 count) expected)))
302 (dolist (val (cdr-safe (assq tr v)))
303 (let* ((value-keys (registry-lookup-secondary-value db tr val)))
304 (push key value-keys)
305 (registry-lookup-secondary-value db tr val value-keys))))
306 (oref db :data))))))
307
308 (defmethod registry-size ((db registry-db))
309 "Returns the size of the registry-db object THIS.
305This is the key count of the :data slot." 310This is the key count of the :data slot."
306 (hash-table-count (oref db :data))) 311 (hash-table-count (oref db :data)))
307 312
308(defmethod registry-prune ((db registry-db)) 313 (defmethod registry-prune ((db registry-db))
309 "Prunes the registry-db object THIS. 314 "Prunes the registry-db object THIS.
310Removes only entries without the :precious keys." 315Removes only entries without the :precious keys."
311 (let* ((precious (oref db :precious)) 316 (let* ((precious (oref db :precious))
312 (precious-p (lambda (entry-key) (cdr (memq (car entry-key) precious)))) 317 (precious-p (lambda (entry-key)
313 (data (oref db :data)) 318 (cdr (memq (car entry-key) precious))))
314 (limit (oref db :max-soft)) 319 (data (oref db :data))
315 (size (registry-size db)) 320 (limit (oref db :max-soft))
316 (candidates (loop for k being the hash-keys of data 321 (size (registry-size db))
317 using (hash-values v) 322 (candidates (loop for k being the hash-keys of data
318 when (notany precious-p v) 323 using (hash-values v)
319 collect k)) 324 when (notany precious-p v)
320 (candidates-count (length candidates)) 325 collect k))
321 ;; are we over max-soft? 326 (candidates-count (length candidates))
322 (prune-needed (> size limit))) 327 ;; are we over max-soft?
323 328 (prune-needed (> size limit)))
324 ;; while we have more candidates than we need to remove... 329
325 (while (and (> candidates-count (- size limit)) candidates) 330 ;; while we have more candidates than we need to remove...
326 (decf candidates-count) 331 (while (and (> candidates-count (- size limit)) candidates)
327 (setq candidates (cdr candidates))) 332 (decf candidates-count)
328 333 (setq candidates (cdr candidates)))
329 (registry-delete db candidates nil))) 334
335 (registry-delete db candidates nil))))
330 336
331(ert-deftest registry-instantiation-test () 337(ert-deftest registry-instantiation-test ()
332 (should (registry-db "Testing"))) 338 (should (registry-db "Testing")))
diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el
index e9fbdb91e97..73e83414e99 100644
--- a/lisp/vc/add-log.el
+++ b/lisp/vc/add-log.el
@@ -277,7 +277,7 @@ Note: The search is conducted only within 10%, at the beginning of the file."
277 ;; Note that the FSF does not use "Patches by"; our convention 277 ;; Note that the FSF does not use "Patches by"; our convention
278 ;; is to put the name of the author of the changes at the top 278 ;; is to put the name of the author of the changes at the top
279 ;; of the change log entry. 279 ;; of the change log entry.
280 ("\\(^\\( +\\|\t\\)\\| \\)\\(Patch\\(es\\)? by\\|Report\\(ed by\\| from\\)\\|Suggest\\(ed by\\|ion from\\)\\)" 280 ("\\(^\\( +\\|\t\\)\\| \\)\\(Thanks to\\|Patch\\(es\\)? by\\|Report\\(ed by\\| from\\)\\|Suggest\\(ed by\\|ion from\\)\\)"
281 3 'change-log-acknowledgement)) 281 3 'change-log-acknowledgement))
282 "Additional expressions to highlight in Change Log mode.") 282 "Additional expressions to highlight in Change Log mode.")
283 283
diff --git a/src/ChangeLog b/src/ChangeLog
index f109718fadb..7d63e76c309 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -65,6 +65,16 @@
65 alignof(EMACS_INT) < sizeof (EMACS_INT). 65 alignof(EMACS_INT) < sizeof (EMACS_INT).
66 (check_sblock, check_string_bytes, check_string_free_list): Protoize. 66 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
67 67
682011-04-18 Chong Yidong <cyd@stupidchicken.com>
69
70 * xdisp.c (lookup_glyphless_char_display)
71 (produce_glyphless_glyph): Handle cons cell entry in
72 glyphless-char-display.
73 (Vglyphless_char_display): Document it.
74
75 * term.c (produce_glyphless_glyph): Handle cons cell entry in
76 glyphless-char-display.
77
682011-04-17 Chong Yidong <cyd@stupidchicken.com> 782011-04-17 Chong Yidong <cyd@stupidchicken.com>
69 79
70 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs. 80 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
diff --git a/src/term.c b/src/term.c
index df13d7c0db2..cae83f4d269 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1936,6 +1936,8 @@ produce_glyphless_glyph (struct it *it, int for_no_font, Lisp_Object acronym)
1936 { 1936 {
1937 if (! STRINGP (acronym) && CHAR_TABLE_P (Vglyphless_char_display)) 1937 if (! STRINGP (acronym) && CHAR_TABLE_P (Vglyphless_char_display))
1938 acronym = CHAR_TABLE_REF (Vglyphless_char_display, it->c); 1938 acronym = CHAR_TABLE_REF (Vglyphless_char_display, it->c);
1939 if (CONSP (acronym))
1940 acronym = XCDR (acronym);
1939 buf[0] = '['; 1941 buf[0] = '[';
1940 str = STRINGP (acronym) ? SSDATA (acronym) : ""; 1942 str = STRINGP (acronym) ? SSDATA (acronym) : "";
1941 for (len = 0; len < 6 && str[len] && ASCII_BYTE_P (str[len]); len++) 1943 for (len = 0; len < 6 && str[len] && ASCII_BYTE_P (str[len]); len++)
diff --git a/src/xdisp.c b/src/xdisp.c
index e6aa05b4973..19fc36a90a3 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5540,9 +5540,19 @@ lookup_glyphless_char_display (int c, struct it *it)
5540 5540
5541 if (CHAR_TABLE_P (Vglyphless_char_display) 5541 if (CHAR_TABLE_P (Vglyphless_char_display)
5542 && CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (Vglyphless_char_display)) >= 1) 5542 && CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (Vglyphless_char_display)) >= 1)
5543 glyphless_method = (c >= 0 5543 {
5544 ? CHAR_TABLE_REF (Vglyphless_char_display, c) 5544 if (c >= 0)
5545 : XCHAR_TABLE (Vglyphless_char_display)->extras[0]); 5545 {
5546 glyphless_method = CHAR_TABLE_REF (Vglyphless_char_display, c);
5547 if (CONSP (glyphless_method))
5548 glyphless_method = FRAME_WINDOW_P (it->f)
5549 ? XCAR (glyphless_method)
5550 : XCDR (glyphless_method);
5551 }
5552 else
5553 glyphless_method = XCHAR_TABLE (Vglyphless_char_display)->extras[0];
5554 }
5555
5546 retry: 5556 retry:
5547 if (NILP (glyphless_method)) 5557 if (NILP (glyphless_method))
5548 { 5558 {
@@ -22315,6 +22325,8 @@ produce_glyphless_glyph (struct it *it, int for_no_font, Lisp_Object acronym)
22315 { 22325 {
22316 if (! STRINGP (acronym) && CHAR_TABLE_P (Vglyphless_char_display)) 22326 if (! STRINGP (acronym) && CHAR_TABLE_P (Vglyphless_char_display))
22317 acronym = CHAR_TABLE_REF (Vglyphless_char_display, it->c); 22327 acronym = CHAR_TABLE_REF (Vglyphless_char_display, it->c);
22328 if (CONSP (acronym))
22329 acronym = XCAR (acronym);
22318 str = STRINGP (acronym) ? SSDATA (acronym) : ""; 22330 str = STRINGP (acronym) ? SSDATA (acronym) : "";
22319 } 22331 }
22320 else 22332 else
@@ -26950,17 +26962,21 @@ cursor shapes. */);
26950 Fput (Qglyphless_char_display, Qchar_table_extra_slots, make_number (1)); 26962 Fput (Qglyphless_char_display, Qchar_table_extra_slots, make_number (1));
26951 26963
26952 DEFVAR_LISP ("glyphless-char-display", Vglyphless_char_display, 26964 DEFVAR_LISP ("glyphless-char-display", Vglyphless_char_display,
26953 doc: /* Char-table to control displaying of glyphless characters. 26965 doc: /* Char-table defining glyphless characters.
26954Each element, if non-nil, is an ASCII acronym string (displayed in a box) 26966Each element, if non-nil, should be one of the following:
26955or one of these symbols: 26967 an ASCII acronym string: display this string in a box
26956 hex-code: display the hexadecimal code of a character in a box 26968 `hex-code': display the hexadecimal code of a character in a box
26957 empty-box: display as an empty box 26969 `empty-box': display as an empty box
26958 thin-space: display as 1-pixel width space 26970 `thin-space': display as 1-pixel width space
26959 zero-width: don't display 26971 `zero-width': don't display
26960 26972An element may also be a cons cell (GRAPHICAL . TEXT), which specifies the
26961It has one extra slot to control the display of a character for which 26973display method for graphical terminals and text terminals respectively.
26962no font is found. The value of the slot is `hex-code' or `empty-box'. 26974GRAPHICAL and TEXT should each have one of the values listed above.
26963The default is `empty-box'. */); 26975
26976The char-table has one extra slot to control the display of a character for
26977which no font is found. This slot only takes effect on graphical terminals.
26978Its value should be an ASCII acronym string, `hex-code', `empty-box', or
26979`thin-space'. The default is `empty-box'. */);
26964 Vglyphless_char_display = Fmake_char_table (Qglyphless_char_display, Qnil); 26980 Vglyphless_char_display = Fmake_char_table (Qglyphless_char_display, Qnil);
26965 Fset_char_table_extra_slot (Vglyphless_char_display, make_number (0), 26981 Fset_char_table_extra_slot (Vglyphless_char_display, make_number (0),
26966 Qempty_box); 26982 Qempty_box);