diff options
| author | Juanma Barranquero | 2010-10-08 12:14:47 +0200 |
|---|---|---|
| committer | Juanma Barranquero | 2010-10-08 12:14:47 +0200 |
| commit | 4628bef1eea0f60e846fe6b6591725aa92952de9 (patch) | |
| tree | 9d137b8e0964c0b1ebc4afb4e743e35b807d048d | |
| parent | 24ac444fbe5d76a7cf09a62b741b9e956ab90d3e (diff) | |
| parent | 2b7c934285417d2eac7a3c603231d22ce7e212d8 (diff) | |
| download | emacs-4628bef1eea0f60e846fe6b6591725aa92952de9.tar.gz emacs-4628bef1eea0f60e846fe6b6591725aa92952de9.zip | |
Merge changes from emacs-23 branch.
34 files changed, 492 insertions, 243 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 102866b0a82..8b93b2fb125 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -2458,6 +2458,12 @@ | |||
| 2458 | 2458 | ||
| 2459 | * display.texi (Images): Delete redundant @findex. | 2459 | * display.texi (Images): Delete redundant @findex. |
| 2460 | 2460 | ||
| 2461 | 2007-08-16 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2462 | |||
| 2463 | * text.texi (Change Hooks): (after|before)-change-functions are no | ||
| 2464 | longer bound to nil while running; rather inhibit-modification-hooks | ||
| 2465 | is t. | ||
| 2466 | |||
| 2461 | 2007-08-16 Richard Stallman <rms@gnu.org> | 2467 | 2007-08-16 Richard Stallman <rms@gnu.org> |
| 2462 | 2468 | ||
| 2463 | * processes.texi (Asynchronous Processes): Clarify | 2469 | * processes.texi (Asynchronous Processes): Clarify |
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 2971701b1f2..b06cfe1394b 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2010-10-08 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * cl.texi (Organization, Installation, Old CL Compatibility): | ||
| 4 | Deprecate cl-compat for new code. | ||
| 5 | (Usage, Installation): Remove outdated information. | ||
| 6 | |||
| 7 | * eudc.texi (CCSO PH/QI, LDAP Requirements): Remove old information. | ||
| 8 | |||
| 1 | 2010-10-07 Katsumi Yamaoka <yamaoka@jpl.org> | 9 | 2010-10-07 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 10 | ||
| 3 | * gnus.texi (Gravatars): Document gnus-gravatar-too-ugly. | 11 | * gnus.texi (Gravatars): Document gnus-gravatar-too-ugly. |
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index de57ff7d095..79038792a3e 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi | |||
| @@ -163,19 +163,6 @@ include at the beginning: | |||
| 163 | @end example | 163 | @end example |
| 164 | 164 | ||
| 165 | @noindent | 165 | @noindent |
| 166 | If you want to ensure that the new (Gillespie) version of @dfn{CL} | ||
| 167 | is the one that is present, add an additional @code{(require 'cl-19)} | ||
| 168 | call: | ||
| 169 | |||
| 170 | @example | ||
| 171 | (require 'cl) | ||
| 172 | (require 'cl-19) | ||
| 173 | @end example | ||
| 174 | |||
| 175 | @noindent | ||
| 176 | The second call will fail (with ``@file{cl-19.el} not found'') if | ||
| 177 | the old @file{cl.el} package was in use. | ||
| 178 | |||
| 179 | It is safe to arrange to load @dfn{CL} at all times, e.g., | 166 | It is safe to arrange to load @dfn{CL} at all times, e.g., |
| 180 | in your @file{.emacs} file. But it's a good idea, for portability, | 167 | in your @file{.emacs} file. But it's a good idea, for portability, |
| 181 | to @code{(require 'cl)} in your code even if you do this. | 168 | to @code{(require 'cl)} in your code even if you do this. |
| @@ -219,39 +206,26 @@ will take care of pulling in the other files when they are | |||
| 219 | needed. | 206 | needed. |
| 220 | 207 | ||
| 221 | There is another file, @file{cl-compat.el}, which defines some | 208 | There is another file, @file{cl-compat.el}, which defines some |
| 222 | routines from the older @file{cl.el} package that are no longer | 209 | routines from the older @file{cl.el} package that are not otherwise |
| 223 | present in the new package. This includes internal routines | 210 | present in the new package. This includes internal routines |
| 224 | like @code{setelt} and @code{zip-lists}, deprecated features | 211 | like @code{setelt} and @code{zip-lists}, deprecated features |
| 225 | like @code{defkeyword}, and an emulation of the old-style | 212 | like @code{defkeyword}, and an emulation of the old-style |
| 226 | multiple-values feature. @xref{Old CL Compatibility}. | 213 | multiple-values feature. This file is obsolete and should not be used |
| 214 | in new code. @xref{Old CL Compatibility}. | ||
| 227 | 215 | ||
| 228 | @node Installation, Naming Conventions, Organization, Overview | 216 | @node Installation, Naming Conventions, Organization, Overview |
| 229 | @section Installation | 217 | @section Installation |
| 230 | 218 | ||
| 231 | @noindent | 219 | @noindent |
| 232 | Installation of the @dfn{CL} package is simple: Just put the | 220 | The @dfn{CL} package is distributed with Emacs, so there is no need |
| 233 | byte-compiled files @file{cl.elc}, @file{cl-extra.elc}, | 221 | to install anything. |
| 234 | @file{cl-seq.elc}, @file{cl-macs.elc}, and @file{cl-compat.elc} | 222 | |
| 235 | into a directory on your @code{load-path}. | 223 | If you do need to install it, just put the byte-compiled files |
| 236 | 224 | @file{cl.elc}, @file{cl-extra.elc}, @file{cl-seq.elc}, | |
| 237 | There are no special requirements to compile this package: | 225 | @file{cl-macs.elc}, and (if necessary) @file{cl-compat.elc} into a |
| 238 | The files do not have to be loaded before they are compiled, | 226 | directory on your @code{load-path}. Also, format the @file{cl.texi} |
| 239 | nor do they need to be compiled in any particular order. | 227 | file and put the resulting Info files into a directory in your |
| 240 | 228 | @code{Info-directory-list}. | |
| 241 | You may choose to put the files into your main @file{lisp/} | ||
| 242 | directory, replacing the original @file{cl.el} file there. Or, | ||
| 243 | you could put them into a directory that comes before @file{lisp/} | ||
| 244 | on your @code{load-path} so that the old @file{cl.el} is | ||
| 245 | effectively hidden. | ||
| 246 | |||
| 247 | Also, format the @file{cl.texinfo} file and put the resulting | ||
| 248 | Info files in the @file{info/} directory or another suitable place. | ||
| 249 | |||
| 250 | You may instead wish to leave this package's components all in | ||
| 251 | their own directory, and then add this directory to your | ||
| 252 | @code{load-path} and @code{Info-directory-list}. | ||
| 253 | Add the directory to the front of the list so the old @dfn{CL} | ||
| 254 | package and its documentation are hidden. | ||
| 255 | 229 | ||
| 256 | @node Naming Conventions, , Installation, Overview | 230 | @node Naming Conventions, , Installation, Overview |
| 257 | @section Naming Conventions | 231 | @section Naming Conventions |
| @@ -5076,8 +5050,8 @@ Lisp. | |||
| 5076 | @noindent | 5050 | @noindent |
| 5077 | The @dfn{CL} package includes emulations of some features of the | 5051 | The @dfn{CL} package includes emulations of some features of the |
| 5078 | old @file{cl.el}, in the form of a compatibility package | 5052 | old @file{cl.el}, in the form of a compatibility package |
| 5079 | @code{cl-compat}. To use it, put @code{(require 'cl-compat)} in | 5053 | @code{cl-compat}. This file is obsolete and may be removed in future, |
| 5080 | your program. | 5054 | so it should not be used in new code. |
| 5081 | 5055 | ||
| 5082 | The old package defined a number of internal routines without | 5056 | The old package defined a number of internal routines without |
| 5083 | @code{cl-} prefixes or other annotations. Call to these routines | 5057 | @code{cl-} prefixes or other annotations. Call to these routines |
diff --git a/doc/misc/eudc.texi b/doc/misc/eudc.texi index 48606e0d664..b62c0ed75ea 100644 --- a/doc/misc/eudc.texi +++ b/doc/misc/eudc.texi | |||
| @@ -137,7 +137,7 @@ complement to the DAP itself. | |||
| 137 | LDAP servers usually store (but are not limited to) information about | 137 | LDAP servers usually store (but are not limited to) information about |
| 138 | people such as their name, phone number, email address, office | 138 | people such as their name, phone number, email address, office |
| 139 | location, etc@enddots{} More information about LDAP can be found at | 139 | location, etc@enddots{} More information about LDAP can be found at |
| 140 | @url{http://www.openldap.org/} | 140 | @url{http://www.openldap.org/}. |
| 141 | 141 | ||
| 142 | EUDC requires external support to access LDAP directory servers | 142 | EUDC requires external support to access LDAP directory servers |
| 143 | (@pxref{LDAP Requirements}) | 143 | (@pxref{LDAP Requirements}) |
| @@ -148,17 +148,15 @@ EUDC requires external support to access LDAP directory servers | |||
| 148 | @section CCSO PH/QI | 148 | @section CCSO PH/QI |
| 149 | 149 | ||
| 150 | The Central Computing Services Office (CCSO) of the University of | 150 | The Central Computing Services Office (CCSO) of the University of |
| 151 | Illinois at Urbana Champaign (UIUC) created and freely distributes a | 151 | Illinois at Urbana Champaign created and freely distributed a |
| 152 | directory system that is currently in use in more than 300 organizations | 152 | directory system that was used by many organizations in the 1990s. |
| 153 | around the world. The system records information about people such as | 153 | The system records information about people such as their address, |
| 154 | their address, phone number, email, academic information or any other | 154 | phone number, email, academic information or any other details it was |
| 155 | details it was configured to. | 155 | configured to. Nowadays this system is not widely used. |
| 156 | 156 | ||
| 157 | The system consists of two parts: a database server traditionally called | 157 | The system consists of two parts: a database server traditionally called |
| 158 | @samp{qi} and a command-line client called @samp{ph}. | 158 | @samp{qi} and a command-line client called @samp{ph}. As of 2010, the |
| 159 | @url{ftp://uiarchive.cso.uiuc.edu/pub/packages/ph} is the main | 159 | code can still be downloaded from @url{http://www-dev.cites.uiuc.edu/ph/}. |
| 160 | distribution site. @url{http://www.uiuc.edu/cgi-bin/ph/lookup?Query=.} | ||
| 161 | provides a listing of the active @samp{qi} servers. | ||
| 162 | 160 | ||
| 163 | The original command-line @samp{ph} client that comes with the | 161 | The original command-line @samp{ph} client that comes with the |
| 164 | @samp{ph/qi} distribution provides additional features like the | 162 | @samp{ph/qi} distribution provides additional features like the |
| @@ -225,18 +223,10 @@ email composition buffers (@pxref{Inline Query Expansion}) | |||
| 225 | @comment node-name, next, previous, up | 223 | @comment node-name, next, previous, up |
| 226 | @section LDAP Requirements | 224 | @section LDAP Requirements |
| 227 | 225 | ||
| 228 | LDAP support is added by means of @file{ldap.el} which is part of Emacs. | 226 | LDAP support is added by means of @file{ldap.el}, which is part of Emacs. |
| 229 | @file{ldap.el} needs an external command line utility named | 227 | @file{ldap.el} needs an external command line utility named |
| 230 | @file{ldapsearch} which is available as part of LDAP toolkits: | 228 | @file{ldapsearch}, available as part of Open LDAP |
| 231 | 229 | (@url{http://www.openldap.org/}). | |
| 232 | @itemize @bullet | ||
| 233 | @item | ||
| 234 | Open LDAP Libraries | ||
| 235 | (@url{http://www.openldap.org/}) | ||
| 236 | @item | ||
| 237 | University of Michigan's LDAP Client software | ||
| 238 | (@url{http://www.umich.edu/~dirsvcs/ldap/}) | ||
| 239 | @end itemize | ||
| 240 | 230 | ||
| 241 | 231 | ||
| 242 | @node Usage, Credits, Installation, Top | 232 | @node Usage, Credits, Installation, Top |
| @@ -968,7 +958,3 @@ in testing and proofreading the code and docs of @file{ph.el}. | |||
| 968 | @printindex vr | 958 | @printindex vr |
| 969 | 959 | ||
| 970 | @bye | 960 | @bye |
| 971 | |||
| 972 | @ignore | ||
| 973 | arch-tag: 1b79460b-4ea1-441d-ab45-05ddd16ef241 | ||
| 974 | @end ignore | ||
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 6d5bf6c4e5b..50528a4508c 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2010-10-08 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * emacsclient.c (set_local_socket) [DARWIN_OS]: Try as a fall-back | ||
| 4 | DARWIN_USER_TEMP_DIR. (Bug#3992) | ||
| 5 | |||
| 1 | 2010-10-03 Dan Nicolaescu <dann@ics.uci.edu> | 6 | 2010-10-03 Dan Nicolaescu <dann@ics.uci.edu> |
| 2 | 7 | ||
| 3 | * test-distrib.c (cool_read): | 8 | * test-distrib.c (cool_read): |
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index b20710e110c..b60b2661805 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c | |||
| @@ -1223,7 +1223,18 @@ set_local_socket (void) | |||
| 1223 | { | 1223 | { |
| 1224 | tmpdir = egetenv ("TMPDIR"); | 1224 | tmpdir = egetenv ("TMPDIR"); |
| 1225 | if (!tmpdir) | 1225 | if (!tmpdir) |
| 1226 | tmpdir = "/tmp"; | 1226 | { |
| 1227 | #ifdef DARWIN_OS | ||
| 1228 | size_t n = confstr (_CS_DARWIN_USER_TEMP_DIR, NULL, (size_t) 0); | ||
| 1229 | if (n > 0) | ||
| 1230 | { | ||
| 1231 | tmpdir = alloca (n); | ||
| 1232 | confstr (_CS_DARWIN_USER_TEMP_DIR, tmpdir, n); | ||
| 1233 | } | ||
| 1234 | else | ||
| 1235 | #endif | ||
| 1236 | tmpdir = "/tmp"; | ||
| 1237 | } | ||
| 1227 | socket_name = alloca (strlen (tmpdir) + strlen (server_name) | 1238 | socket_name = alloca (strlen (tmpdir) + strlen (server_name) |
| 1228 | + EXTRA_SPACE); | 1239 | + EXTRA_SPACE); |
| 1229 | sprintf (socket_name, "%s/emacs%d/%s", | 1240 | sprintf (socket_name, "%s/emacs%d/%s", |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 43589198bea..9dfd7d289fd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,5 +1,51 @@ | |||
| 1 | 2010-10-08 Glenn Morris <rgm@gnu.org> | 1 | 2010-10-08 Glenn Morris <rgm@gnu.org> |
| 2 | 2 | ||
| 3 | * emacs-lisp/cl-compat.el, emacs-lisp/lmenu.el: Move to obsolete/. | ||
| 4 | |||
| 5 | * emacs-lisp/shadow.el (lisp-shadow): Change prefix. | ||
| 6 | (shadows-compare-text-p): Make it an obsolete alias for... | ||
| 7 | (load-path-shadows-compare-text): ... new name. | ||
| 8 | (find-emacs-lisp-shadows): Update for above name change. | ||
| 9 | (load-path-shadows-same-file-or-nonexistent): New name for the old | ||
| 10 | shadow-same-file-or-nonexistent. | ||
| 11 | |||
| 12 | 2010-10-08 Chong Yidong <cyd@stupidchicken.com> | ||
| 13 | |||
| 14 | * minibuffer.el (completion--some, completion--do-completion) | ||
| 15 | (minibuffer-complete-and-exit, minibuffer-completion-help) | ||
| 16 | (completion-basic-try-completion) | ||
| 17 | (completion-basic-all-completions) | ||
| 18 | (completion-pcm--find-all-completions): Use lexical-let to | ||
| 19 | avoid some false matches in variable completion (Bug#7056) | ||
| 20 | |||
| 21 | 2010-10-08 Olof Ohlsson Sax <olof.ohlsson.sax@gmail.com> (tiny change) | ||
| 22 | |||
| 23 | * vc-svn.el (vc-svn-merge-news): Use --non-interactive. (Bug#7152) | ||
| 24 | |||
| 25 | 2010-10-08 Leo <sdl.web@gmail.com> | ||
| 26 | |||
| 27 | * dnd.el (dnd-get-local-file-name): If MUST-EXIST is non-nil, only | ||
| 28 | return non-nil if the file exists (Bug#7090). | ||
| 29 | |||
| 30 | 2010-10-08 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 31 | |||
| 32 | * minibuffer.el (completion--replace): | ||
| 33 | Better preserve markers (bug#7138). | ||
| 34 | |||
| 35 | 2010-10-08 Juanma Barranquero <lekktu@gmail.com> | ||
| 36 | |||
| 37 | * server.el (server-process-filter): Doc fix. | ||
| 38 | |||
| 39 | 2010-10-08 Drew Adams <drew.adams@oracle.com> | ||
| 40 | |||
| 41 | * dired.el (dired-save-positions): Doc fix. (Bug#7119) | ||
| 42 | |||
| 43 | 2010-10-08 Andreas Schwab <schwab@linux-m68k.org> | ||
| 44 | |||
| 45 | * Makefile.in (ELCFILES): Update. | ||
| 46 | |||
| 47 | 2010-10-08 Glenn Morris <rgm@gnu.org> | ||
| 48 | |||
| 3 | * vc/ediff-wind.el (ediff-setup-control-frame): | 49 | * vc/ediff-wind.el (ediff-setup-control-frame): |
| 4 | * vc/ediff-ptch.el (ediff-default-backup-extension): | 50 | * vc/ediff-ptch.el (ediff-default-backup-extension): |
| 5 | * vc/ediff-diff.el (ediff-shell, ediff-diff-options) | 51 | * vc/ediff-diff.el (ediff-shell, ediff-diff-options) |
diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index 85f0410541a..5617be568dd 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog | |||
| @@ -1,3 +1,32 @@ | |||
| 1 | 2010-09-30 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * semantic/bovine/el.el: | ||
| 4 | * semantic/mru-bookmark.el (global-semantic-mru-bookmark-mode): | ||
| 5 | Fix require statements. | ||
| 6 | |||
| 7 | 2010-09-29 Chong Yidong <cyd@stupidchicken.com> | ||
| 8 | |||
| 9 | * semantic/tag.el (semantic-tag-version): Bump to 2.0. | ||
| 10 | |||
| 11 | * semantic/db-typecache.el (semanticdb-typecache-find-default): | ||
| 12 | * semantic/imenu.el (semantic-create-imenu-index): | ||
| 13 | * semantic/grammar.el (semantic--grammar-macro-function-tag): | ||
| 14 | * semantic/fw.el (semanticdb-without-unloaded-file-searches): Fix | ||
| 15 | require. Suggested by David Engster. | ||
| 16 | |||
| 17 | * semantic/bovine/c-by.el: Regenerate. | ||
| 18 | |||
| 19 | 2010-09-29 Eric Ludlam <zappo@gnu.org> | ||
| 20 | |||
| 21 | * semantic/lex-spp.el (semantic-lex-spp-debug-symbol): New var. | ||
| 22 | (semantic-lex-spp-enable-debug-symbol): New command | ||
| 23 | (semantic-lex-spp-value-valid-p) | ||
| 24 | (semantic-lex-spp-validate-value): New functions | ||
| 25 | (semantic-lex-spp-symbol-set) | ||
| 26 | (semantic-lex-spp-symbol-push): Add call to validate value. | ||
| 27 | (semantic-lex-spp-table-write-slot-value): Instead of erroring on | ||
| 28 | invalid values during save, just save a nil. | ||
| 29 | |||
| 1 | 2010-09-25 Chong Yidong <cyd@stupidchicken.com> | 30 | 2010-09-25 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 31 | ||
| 3 | * ede/linux.el (ede-project-class-files): | 32 | * ede/linux.el (ede-project-class-files): |
| @@ -465,11 +494,6 @@ | |||
| 465 | (ede-dired-minor-mode): Use define-minor-mode and derived-mode-p. | 494 | (ede-dired-minor-mode): Use define-minor-mode and derived-mode-p. |
| 466 | (ede-dired-add-to-target): Use dolist. | 495 | (ede-dired-add-to-target): Use dolist. |
| 467 | 496 | ||
| 468 | 2010-04-18 Chong Yidong <cyd@stupidchicken.com> | ||
| 469 | |||
| 470 | * ede/pmake.el (ede-proj-makefile-insert-variables): | ||
| 471 | Don't destroy list before using it. | ||
| 472 | |||
| 473 | 2010-04-29 Chong Yidong <cyd@stupidchicken.com> | 497 | 2010-04-29 Chong Yidong <cyd@stupidchicken.com> |
| 474 | 498 | ||
| 475 | * semantic.el (semantic-completion-at-point-function): | 499 | * semantic.el (semantic-completion-at-point-function): |
diff --git a/lisp/cedet/semantic/bovine/c-by.el b/lisp/cedet/semantic/bovine/c-by.el index 09fb42261a4..c33f3fb67f5 100644 --- a/lisp/cedet/semantic/bovine/c-by.el +++ b/lisp/cedet/semantic/bovine/c-by.el | |||
| @@ -1240,7 +1240,9 @@ | |||
| 1240 | (nth 7 vals)) | 1240 | (nth 7 vals)) |
| 1241 | (nth 0 vals) | 1241 | (nth 0 vals) |
| 1242 | (nth 10 vals) | 1242 | (nth 10 vals) |
| 1243 | (nth 4 vals)) | 1243 | (list |
| 1244 | (nth 4 vals)) | ||
| 1245 | (nth 9 vals)) | ||
| 1244 | ) | 1246 | ) |
| 1245 | (opt-stars | 1247 | (opt-stars |
| 1246 | opt-class | 1248 | opt-class |
| @@ -1262,7 +1264,9 @@ | |||
| 1262 | (nth 6 vals)) | 1264 | (nth 6 vals)) |
| 1263 | (nth 0 vals) | 1265 | (nth 0 vals) |
| 1264 | (nth 9 vals) | 1266 | (nth 9 vals) |
| 1265 | (nth 4 vals)) | 1267 | (list |
| 1268 | (nth 4 vals)) | ||
| 1269 | (nth 8 vals)) | ||
| 1266 | ) | 1270 | ) |
| 1267 | ) ;; end func-decl | 1271 | ) ;; end func-decl |
| 1268 | 1272 | ||
| @@ -1433,13 +1437,11 @@ | |||
| 1433 | namespace-symbol | 1437 | namespace-symbol |
| 1434 | opt-bits | 1438 | opt-bits |
| 1435 | opt-array | 1439 | opt-array |
| 1436 | opt-assign | ||
| 1437 | ,(semantic-lambda | 1440 | ,(semantic-lambda |
| 1438 | (nth 2 vals) | 1441 | (nth 2 vals) |
| 1439 | (nth 0 vals) | 1442 | (nth 0 vals) |
| 1440 | (nth 3 vals) | 1443 | (nth 3 vals) |
| 1441 | (nth 4 vals) | 1444 | (nth 4 vals)) |
| 1442 | (nth 5 vals)) | ||
| 1443 | ) | 1445 | ) |
| 1444 | ) ;; end varname | 1446 | ) ;; end varname |
| 1445 | 1447 | ||
| @@ -1484,19 +1486,28 @@ | |||
| 1484 | ) | 1486 | ) |
| 1485 | ) ;; end variablearg-opt-name | 1487 | ) ;; end variablearg-opt-name |
| 1486 | 1488 | ||
| 1489 | (varname-opt-initializer | ||
| 1490 | (semantic-list) | ||
| 1491 | (opt-assign) | ||
| 1492 | ( ;;EMPTY | ||
| 1493 | ) | ||
| 1494 | ) ;; end varname-opt-initializer | ||
| 1495 | |||
| 1487 | (varnamelist | 1496 | (varnamelist |
| 1488 | (opt-ref | 1497 | (opt-ref |
| 1489 | varname | 1498 | varname |
| 1499 | varname-opt-initializer | ||
| 1490 | punctuation | 1500 | punctuation |
| 1491 | "\\`[,]\\'" | 1501 | "\\`[,]\\'" |
| 1492 | varnamelist | 1502 | varnamelist |
| 1493 | ,(semantic-lambda | 1503 | ,(semantic-lambda |
| 1494 | (cons | 1504 | (cons |
| 1495 | (nth 1 vals) | 1505 | (nth 1 vals) |
| 1496 | (nth 3 vals))) | 1506 | (nth 4 vals))) |
| 1497 | ) | 1507 | ) |
| 1498 | (opt-ref | 1508 | (opt-ref |
| 1499 | varname | 1509 | varname |
| 1510 | varname-opt-initializer | ||
| 1500 | ,(semantic-lambda | 1511 | ,(semantic-lambda |
| 1501 | (list | 1512 | (list |
| 1502 | (nth 1 vals))) | 1513 | (nth 1 vals))) |
| @@ -2108,74 +2119,64 @@ | |||
| 2108 | "\\`[&]\\'") | 2119 | "\\`[&]\\'") |
| 2109 | ) ;; end expr-start | 2120 | ) ;; end expr-start |
| 2110 | 2121 | ||
| 2122 | (expr-binop | ||
| 2123 | (punctuation | ||
| 2124 | "\\`[-]\\'") | ||
| 2125 | (punctuation | ||
| 2126 | "\\`[+]\\'") | ||
| 2127 | (punctuation | ||
| 2128 | "\\`[*]\\'") | ||
| 2129 | (punctuation | ||
| 2130 | "\\`[/]\\'") | ||
| 2131 | (punctuation | ||
| 2132 | "\\`[&]\\'" | ||
| 2133 | punctuation | ||
| 2134 | "\\`[&]\\'") | ||
| 2135 | (punctuation | ||
| 2136 | "\\`[&]\\'") | ||
| 2137 | (punctuation | ||
| 2138 | "\\`[|]\\'" | ||
| 2139 | punctuation | ||
| 2140 | "\\`[|]\\'") | ||
| 2141 | (punctuation | ||
| 2142 | "\\`[|]\\'") | ||
| 2143 | ) ;; end expr-binop | ||
| 2144 | |||
| 2111 | (expression | 2145 | (expression |
| 2112 | (number | 2146 | (unaryexpression |
| 2147 | expr-binop | ||
| 2148 | unaryexpression | ||
| 2113 | ,(semantic-lambda | 2149 | ,(semantic-lambda |
| 2114 | (list | 2150 | (list |
| 2115 | (identity start) | 2151 | (identity start) |
| 2116 | (identity end))) | 2152 | (identity end))) |
| 2117 | ) | 2153 | ) |
| 2118 | (multi-stage-dereference | 2154 | (unaryexpression |
| 2119 | ,(semantic-lambda | 2155 | ,(semantic-lambda |
| 2120 | (list | 2156 | (list |
| 2121 | (identity start) | 2157 | (identity start) |
| 2122 | (identity end))) | 2158 | (identity end))) |
| 2123 | ) | 2159 | ) |
| 2160 | ) ;; end expression | ||
| 2161 | |||
| 2162 | (unaryexpression | ||
| 2163 | (number) | ||
| 2164 | (multi-stage-dereference) | ||
| 2124 | (NEW | 2165 | (NEW |
| 2125 | multi-stage-dereference | 2166 | multi-stage-dereference) |
| 2126 | ,(semantic-lambda | ||
| 2127 | (list | ||
| 2128 | (identity start) | ||
| 2129 | (identity end))) | ||
| 2130 | ) | ||
| 2131 | (NEW | 2167 | (NEW |
| 2132 | builtintype-types | 2168 | builtintype-types |
| 2133 | semantic-list | 2169 | semantic-list) |
| 2134 | ,(semantic-lambda | 2170 | (namespace-symbol) |
| 2135 | (list | 2171 | (string-seq) |
| 2136 | (identity start) | ||
| 2137 | (identity end))) | ||
| 2138 | ) | ||
| 2139 | (namespace-symbol | ||
| 2140 | ,(semantic-lambda | ||
| 2141 | (list | ||
| 2142 | (identity start) | ||
| 2143 | (identity end))) | ||
| 2144 | ) | ||
| 2145 | (string-seq | ||
| 2146 | ,(semantic-lambda | ||
| 2147 | (list | ||
| 2148 | (identity start) | ||
| 2149 | (identity end))) | ||
| 2150 | ) | ||
| 2151 | (type-cast | 2172 | (type-cast |
| 2152 | expression | 2173 | expression) |
| 2153 | ,(semantic-lambda | ||
| 2154 | (list | ||
| 2155 | (identity start) | ||
| 2156 | (identity end))) | ||
| 2157 | ) | ||
| 2158 | (semantic-list | ||
| 2159 | expression | ||
| 2160 | ,(semantic-lambda | ||
| 2161 | (list | ||
| 2162 | (identity start) | ||
| 2163 | (identity end))) | ||
| 2164 | ) | ||
| 2165 | (semantic-list | 2174 | (semantic-list |
| 2166 | ,(semantic-lambda | 2175 | expression) |
| 2167 | (list | 2176 | (semantic-list) |
| 2168 | (identity start) | ||
| 2169 | (identity end))) | ||
| 2170 | ) | ||
| 2171 | (expr-start | 2177 | (expr-start |
| 2172 | expression | 2178 | expression) |
| 2173 | ,(semantic-lambda | 2179 | ) ;; end unaryexpression |
| 2174 | (list | ||
| 2175 | (identity start) | ||
| 2176 | (identity end))) | ||
| 2177 | ) | ||
| 2178 | ) ;; end expression | ||
| 2179 | ) | 2180 | ) |
| 2180 | "Parser table.") | 2181 | "Parser table.") |
| 2181 | 2182 | ||
diff --git a/lisp/cedet/semantic/bovine/el.el b/lisp/cedet/semantic/bovine/el.el index 5b5a5660b7d..ed1f74c590f 100644 --- a/lisp/cedet/semantic/bovine/el.el +++ b/lisp/cedet/semantic/bovine/el.el | |||
| @@ -958,7 +958,7 @@ ELisp variables can be pretty long, so track this one too.") | |||
| 958 | (add-hook 'lisp-mode-hook 'semantic-default-elisp-setup) | 958 | (add-hook 'lisp-mode-hook 'semantic-default-elisp-setup) |
| 959 | 959 | ||
| 960 | (eval-after-load "semanticdb" | 960 | (eval-after-load "semanticdb" |
| 961 | '(require 'semanticdb-el) | 961 | '(require 'semantic/db-el) |
| 962 | ) | 962 | ) |
| 963 | 963 | ||
| 964 | (provide 'semantic/bovine/el) | 964 | (provide 'semantic/bovine/el) |
diff --git a/lisp/cedet/semantic/db-typecache.el b/lisp/cedet/semantic/db-typecache.el index 71b15fdf82a..59ba83fe9d0 100644 --- a/lisp/cedet/semantic/db-typecache.el +++ b/lisp/cedet/semantic/db-typecache.el | |||
| @@ -403,7 +403,7 @@ TYPE is the datatype to find. | |||
| 403 | PATH is the search path, which should be one table object. | 403 | PATH is the search path, which should be one table object. |
| 404 | If FIND-FILE-MATCH is non-nil, then force the file belonging to the | 404 | If FIND-FILE-MATCH is non-nil, then force the file belonging to the |
| 405 | found tag to be loaded." | 405 | found tag to be loaded." |
| 406 | (if (not (and (featurep 'semanticdb) semanticdb-current-database)) | 406 | (if (not (and (featurep 'semantic/db) semanticdb-current-database)) |
| 407 | nil ;; No DB, no search | 407 | nil ;; No DB, no search |
| 408 | (save-excursion | 408 | (save-excursion |
| 409 | (semanticdb-typecache-find-method (or path semanticdb-current-table) | 409 | (semanticdb-typecache-find-method (or path semanticdb-current-table) |
diff --git a/lisp/cedet/semantic/fw.el b/lisp/cedet/semantic/fw.el index 49790861632..811508377b8 100644 --- a/lisp/cedet/semantic/fw.el +++ b/lisp/cedet/semantic/fw.el | |||
| @@ -315,7 +315,7 @@ FILE, NOWARN, RAWFILE, and WILDCARDS are passed into `find-file-noselect'" | |||
| 315 | (defmacro semanticdb-without-unloaded-file-searches (forms) | 315 | (defmacro semanticdb-without-unloaded-file-searches (forms) |
| 316 | "Execute FORMS with `unloaded' removed from the current throttle." | 316 | "Execute FORMS with `unloaded' removed from the current throttle." |
| 317 | `(let ((semanticdb-find-default-throttle | 317 | `(let ((semanticdb-find-default-throttle |
| 318 | (if (featurep 'semanticdb-find) | 318 | (if (featurep 'semantic/db-find) |
| 319 | (remq 'unloaded semanticdb-find-default-throttle) | 319 | (remq 'unloaded semanticdb-find-default-throttle) |
| 320 | nil))) | 320 | nil))) |
| 321 | ,forms)) | 321 | ,forms)) |
diff --git a/lisp/cedet/semantic/grammar.el b/lisp/cedet/semantic/grammar.el index 65365768f98..d99ae0cb0ac 100644 --- a/lisp/cedet/semantic/grammar.el +++ b/lisp/cedet/semantic/grammar.el | |||
| @@ -1519,7 +1519,7 @@ Return the tag found or nil if not found." | |||
| 1519 | (car (semantic-find-tags-by-class | 1519 | (car (semantic-find-tags-by-class |
| 1520 | 'function | 1520 | 'function |
| 1521 | (or (semantic-find-tags-by-name name (current-buffer)) | 1521 | (or (semantic-find-tags-by-name name (current-buffer)) |
| 1522 | (and (featurep 'semanticdb) | 1522 | (and (featurep 'semantic/db) |
| 1523 | semanticdb-current-database | 1523 | semanticdb-current-database |
| 1524 | (cdar (semanticdb-find-tags-by-name name nil t))))))) | 1524 | (cdar (semanticdb-find-tags-by-name name nil t))))))) |
| 1525 | 1525 | ||
diff --git a/lisp/cedet/semantic/imenu.el b/lisp/cedet/semantic/imenu.el index e38b50bcd57..465a93a16dd 100644 --- a/lisp/cedet/semantic/imenu.el +++ b/lisp/cedet/semantic/imenu.el | |||
| @@ -235,7 +235,7 @@ Optional argument STREAM is an optional stream of tags used to create menus." | |||
| 235 | (setq imenu-default-goto-function 'semantic-imenu-goto-function) | 235 | (setq imenu-default-goto-function 'semantic-imenu-goto-function) |
| 236 | (prog1 | 236 | (prog1 |
| 237 | (if (and semantic-imenu-index-directory | 237 | (if (and semantic-imenu-index-directory |
| 238 | (featurep 'semanticdb) | 238 | (featurep 'semantic/db) |
| 239 | (semanticdb-minor-mode-p)) | 239 | (semanticdb-minor-mode-p)) |
| 240 | (semantic-create-imenu-directory-index | 240 | (semantic-create-imenu-directory-index |
| 241 | (or stream (semantic-fetch-tags-fast))) | 241 | (or stream (semantic-fetch-tags-fast))) |
diff --git a/lisp/cedet/semantic/lex-spp.el b/lisp/cedet/semantic/lex-spp.el index 88b77e50e1d..0b4fa930b1b 100644 --- a/lisp/cedet/semantic/lex-spp.el +++ b/lisp/cedet/semantic/lex-spp.el | |||
| @@ -173,10 +173,42 @@ The search priority is: | |||
| 173 | (setq semantic-lex-spp-dynamic-macro-symbol-obarray-stack | 173 | (setq semantic-lex-spp-dynamic-macro-symbol-obarray-stack |
| 174 | (make-vector 13 0)))) | 174 | (make-vector 13 0)))) |
| 175 | 175 | ||
| 176 | (defun semantic-lex-spp-value-valid-p (value) | ||
| 177 | "Return non-nil if VALUE is valid." | ||
| 178 | (or (null value) | ||
| 179 | (stringp value) | ||
| 180 | (and (consp value) | ||
| 181 | (or (semantic-lex-token-p (car value)) | ||
| 182 | (eq (car (car value)) 'spp-arg-list))))) | ||
| 183 | |||
| 184 | (defvar semantic-lex-spp-debug-symbol nil | ||
| 185 | "A symbol to break on if it is being set somewhere.") | ||
| 186 | |||
| 187 | (defun semantic-lex-spp-enable-debug-symbol (sym) | ||
| 188 | "Enable debugging for symbol SYM. | ||
| 189 | Disable debugging by entering nothing." | ||
| 190 | (interactive "sSymbol: ") | ||
| 191 | (if (string= sym "") | ||
| 192 | (setq semantic-lex-spp-debug-symbol nil) | ||
| 193 | (setq semantic-lex-spp-debug-symbol sym))) | ||
| 194 | |||
| 195 | (defmacro semantic-lex-spp-validate-value (name value) | ||
| 196 | "Validate the NAME and VALUE of a macro before it is set." | ||
| 197 | ; `(progn | ||
| 198 | ; (when (not (semantic-lex-spp-value-valid-p ,value)) | ||
| 199 | ; (error "Symbol \"%s\" with bogus value %S" ,name ,value)) | ||
| 200 | ; (when (and semantic-lex-spp-debug-symbol | ||
| 201 | ; (string= semantic-lex-spp-debug-symbol name)) | ||
| 202 | ; (debug)) | ||
| 203 | ; ) | ||
| 204 | nil | ||
| 205 | ) | ||
| 206 | |||
| 176 | (defun semantic-lex-spp-symbol-set (name value &optional obarray-in) | 207 | (defun semantic-lex-spp-symbol-set (name value &optional obarray-in) |
| 177 | "Set value of spp symbol with NAME to VALUE and return VALUE. | 208 | "Set value of spp symbol with NAME to VALUE and return VALUE. |
| 178 | If optional OBARRAY-IN is non-nil, then use that obarray instead of | 209 | If optional OBARRAY-IN is non-nil, then use that obarray instead of |
| 179 | the dynamic map." | 210 | the dynamic map." |
| 211 | (semantic-lex-spp-validate-value name value) | ||
| 180 | (if (and (stringp value) (string= value "")) (setq value nil)) | 212 | (if (and (stringp value) (string= value "")) (setq value nil)) |
| 181 | (set (intern name (or obarray-in | 213 | (set (intern name (or obarray-in |
| 182 | (semantic-lex-spp-dynamic-map))) | 214 | (semantic-lex-spp-dynamic-map))) |
| @@ -192,6 +224,7 @@ the dynamic map." | |||
| 192 | (defun semantic-lex-spp-symbol-push (name value) | 224 | (defun semantic-lex-spp-symbol-push (name value) |
| 193 | "Push macro NAME with VALUE into the map. | 225 | "Push macro NAME with VALUE into the map. |
| 194 | Reverse with `semantic-lex-spp-symbol-pop'." | 226 | Reverse with `semantic-lex-spp-symbol-pop'." |
| 227 | (semantic-lex-spp-validate-value name value) | ||
| 195 | (let* ((map (semantic-lex-spp-dynamic-map)) | 228 | (let* ((map (semantic-lex-spp-dynamic-map)) |
| 196 | (stack (semantic-lex-spp-dynamic-map-stack)) | 229 | (stack (semantic-lex-spp-dynamic-map-stack)) |
| 197 | (mapsym (intern name map)) | 230 | (mapsym (intern name map)) |
diff --git a/lisp/cedet/semantic/mru-bookmark.el b/lisp/cedet/semantic/mru-bookmark.el index 12e0cb9f834..b723a848c10 100644 --- a/lisp/cedet/semantic/mru-bookmark.el +++ b/lisp/cedet/semantic/mru-bookmark.el | |||
| @@ -239,6 +239,18 @@ This function pushes tags onto the tag ring." | |||
| 239 | ;; | 239 | ;; |
| 240 | ;; Tracking minor mode. | 240 | ;; Tracking minor mode. |
| 241 | 241 | ||
| 242 | (defcustom global-semantic-mru-bookmark-mode nil | ||
| 243 | "If non-nil, enable `semantic-mru-bookmark-mode' globally. | ||
| 244 | When this mode is enabled, Emacs keeps track of which tags have | ||
| 245 | been edited, and you can re-visit them with \\[semantic-mrub-switch-tags]." | ||
| 246 | :group 'semantic | ||
| 247 | :group 'semantic-modes | ||
| 248 | :type 'boolean | ||
| 249 | :require 'semantic/util-modes | ||
| 250 | :initialize 'custom-initialize-default | ||
| 251 | :set (lambda (sym val) | ||
| 252 | (global-semantic-mru-bookmark-mode (if val 1 -1)))) | ||
| 253 | |||
| 242 | ;;;###autoload | 254 | ;;;###autoload |
| 243 | (define-minor-mode global-semantic-mru-bookmark-mode | 255 | (define-minor-mode global-semantic-mru-bookmark-mode |
| 244 | "Toggle global use of option `semantic-mru-bookmark-mode'. | 256 | "Toggle global use of option `semantic-mru-bookmark-mode'. |
diff --git a/lisp/cedet/semantic/tag.el b/lisp/cedet/semantic/tag.el index e9094fcb051..0195a29b66e 100644 --- a/lisp/cedet/semantic/tag.el +++ b/lisp/cedet/semantic/tag.el | |||
| @@ -53,7 +53,7 @@ | |||
| 53 | (declare-function semantic-fetch-tags "semantic") | 53 | (declare-function semantic-fetch-tags "semantic") |
| 54 | (declare-function semantic-clear-toplevel-cache "semantic") | 54 | (declare-function semantic-clear-toplevel-cache "semantic") |
| 55 | 55 | ||
| 56 | (defconst semantic-tag-version "2.0pre7" | 56 | (defconst semantic-tag-version "2.0" |
| 57 | "Version string of semantic tags made with this code.") | 57 | "Version string of semantic tags made with this code.") |
| 58 | 58 | ||
| 59 | (defconst semantic-tag-incompatible-version "1.0" | 59 | (defconst semantic-tag-incompatible-version "1.0" |
| @@ -221,6 +221,7 @@ See also the function `semantic-ctxt-current-mode'." | |||
| 221 | ;; beginning of TAG. | 221 | ;; beginning of TAG. |
| 222 | (or (and (>= (point) start) (< (point) end)) | 222 | (or (and (>= (point) start) (< (point) end)) |
| 223 | (goto-char start)) | 223 | (goto-char start)) |
| 224 | (require 'semantic/ctxt) | ||
| 224 | (semantic-ctxt-current-mode))))) | 225 | (semantic-ctxt-current-mode))))) |
| 225 | 226 | ||
| 226 | (defsubst semantic--tag-attributes-cdr (tag) | 227 | (defsubst semantic--tag-attributes-cdr (tag) |
diff --git a/lisp/dired.el b/lisp/dired.el index 3fdb82ca7d3..f840b60ab07 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -1178,7 +1178,7 @@ Preserves old cursor, marks/flags, hidden-p." | |||
| 1178 | The positions have the form (BUFFER-POSITION WINDOW-POSITIONS). | 1178 | The positions have the form (BUFFER-POSITION WINDOW-POSITIONS). |
| 1179 | 1179 | ||
| 1180 | BUFFER-POSITION is the point position in the current dired buffer. | 1180 | BUFFER-POSITION is the point position in the current dired buffer. |
| 1181 | The buffer position have the form (BUFFER DIRED-FILENAME BUFFER-POINT). | 1181 | It has the form (BUFFER DIRED-FILENAME BUFFER-POINT). |
| 1182 | 1182 | ||
| 1183 | WINDOW-POSITIONS are current positions in all windows displaying | 1183 | WINDOW-POSITIONS are current positions in all windows displaying |
| 1184 | this dired buffer. The window positions have the form (WINDOW | 1184 | this dired buffer. The window positions have the form (WINDOW |
diff --git a/lisp/dnd.el b/lisp/dnd.el index 7b9d0c0786c..cbbef384436 100644 --- a/lisp/dnd.el +++ b/lisp/dnd.el | |||
| @@ -155,10 +155,11 @@ Return nil if URI is not a local file." | |||
| 155 | (let* ((decoded-f (decode-coding-string | 155 | (let* ((decoded-f (decode-coding-string |
| 156 | f | 156 | f |
| 157 | (or file-name-coding-system | 157 | (or file-name-coding-system |
| 158 | default-file-name-coding-system))) | 158 | default-file-name-coding-system)))) |
| 159 | (try-f (if (file-readable-p decoded-f) decoded-f f))) | 159 | (setq f (cond ((file-readable-p decoded-f) decoded-f) |
| 160 | (when (file-readable-p try-f) try-f))))) | 160 | ((file-readable-p f) f) |
| 161 | 161 | (t nil))))) | |
| 162 | f)) | ||
| 162 | 163 | ||
| 163 | (defun dnd-open-local-file (uri action) | 164 | (defun dnd-open-local-file (uri action) |
| 164 | "Open a local file. | 165 | "Open a local file. |
diff --git a/lisp/emacs-lisp/shadow.el b/lisp/emacs-lisp/shadow.el index ee59cca2d6f..850c1e89682 100644 --- a/lisp/emacs-lisp/shadow.el +++ b/lisp/emacs-lisp/shadow.el | |||
| @@ -53,10 +53,13 @@ | |||
| 53 | 53 | ||
| 54 | (defgroup lisp-shadow nil | 54 | (defgroup lisp-shadow nil |
| 55 | "Locate Emacs Lisp file shadowings." | 55 | "Locate Emacs Lisp file shadowings." |
| 56 | :prefix "shadows-" | 56 | :prefix "load-path-shadows-" |
| 57 | :group 'lisp) | 57 | :group 'lisp) |
| 58 | 58 | ||
| 59 | (defcustom shadows-compare-text-p nil | 59 | (define-obsolete-variable-alias 'shadows-compare-text-p |
| 60 | 'load-path-shadows-compare-text "23.3") | ||
| 61 | |||
| 62 | (defcustom load-path-shadows-compare-text nil | ||
| 60 | "If non-nil, then shadowing files are reported only if their text differs. | 63 | "If non-nil, then shadowing files are reported only if their text differs. |
| 61 | This is slower, but filters out some innocuous shadowing." | 64 | This is slower, but filters out some innocuous shadowing." |
| 62 | :type 'boolean | 65 | :type 'boolean |
| @@ -124,11 +127,11 @@ See the documentation for `list-load-path-shadows' for further information." | |||
| 124 | ;; Report it unless the files are identical. | 127 | ;; Report it unless the files are identical. |
| 125 | (let ((base1 (concat (cdr orig-dir) "/" file)) | 128 | (let ((base1 (concat (cdr orig-dir) "/" file)) |
| 126 | (base2 (concat dir "/" file))) | 129 | (base2 (concat dir "/" file))) |
| 127 | (if (not (and shadows-compare-text-p | 130 | (if (not (and load-path-shadows-compare-text |
| 128 | (shadow-same-file-or-nonexistent | 131 | (load-path-shadows-same-file-or-nonexistent |
| 129 | (concat base1 ".el") (concat base2 ".el")) | 132 | (concat base1 ".el") (concat base2 ".el")) |
| 130 | ;; This is a bit strict, but safe. | 133 | ;; This is a bit strict, but safe. |
| 131 | (shadow-same-file-or-nonexistent | 134 | (load-path-shadows-same-file-or-nonexistent |
| 132 | (concat base1 ".elc") (concat base2 ".elc")))) | 135 | (concat base1 ".elc") (concat base2 ".elc")))) |
| 133 | (setq shadows | 136 | (setq shadows |
| 134 | (append shadows (list base1 base2))))) | 137 | (append shadows (list base1 base2))))) |
| @@ -140,7 +143,7 @@ See the documentation for `list-load-path-shadows' for further information." | |||
| 140 | 143 | ||
| 141 | ;; Return true if neither file exists, or if both exist and have identical | 144 | ;; Return true if neither file exists, or if both exist and have identical |
| 142 | ;; contents. | 145 | ;; contents. |
| 143 | (defun shadow-same-file-or-nonexistent (f1 f2) | 146 | (defun load-path-shadows-same-file-or-nonexistent (f1 f2) |
| 144 | (let ((exists1 (file-exists-p f1)) | 147 | (let ((exists1 (file-exists-p f1)) |
| 145 | (exists2 (file-exists-p f2))) | 148 | (exists2 (file-exists-p f2))) |
| 146 | (or (and (not exists1) (not exists2)) | 149 | (or (and (not exists1) (not exists2)) |
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index f7dc035a886..98380f3926e 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el | |||
| @@ -133,8 +133,8 @@ the closest directory separators." | |||
| 133 | "Apply FUN to each element of XS in turn. | 133 | "Apply FUN to each element of XS in turn. |
| 134 | Return the first non-nil returned value. | 134 | Return the first non-nil returned value. |
| 135 | Like CL's `some'." | 135 | Like CL's `some'." |
| 136 | (let ((firsterror nil) | 136 | (lexical-let ((firsterror nil) |
| 137 | res) | 137 | res) |
| 138 | (while (and (not res) xs) | 138 | (while (and (not res) xs) |
| 139 | (condition-case err | 139 | (condition-case err |
| 140 | (setq res (funcall fun (pop xs))) | 140 | (setq res (funcall fun (pop xs))) |
| @@ -485,10 +485,30 @@ in the last `cdr'." | |||
| 485 | (defun completion--replace (beg end newtext) | 485 | (defun completion--replace (beg end newtext) |
| 486 | "Replace the buffer text between BEG and END with NEWTEXT. | 486 | "Replace the buffer text between BEG and END with NEWTEXT. |
| 487 | Moves point to the end of the new text." | 487 | Moves point to the end of the new text." |
| 488 | ;; This should be in subr.el. | 488 | ;; Maybe this should be in subr.el. |
| 489 | ;; You'd think this is trivial to do, but details matter if you want | 489 | ;; You'd think this is trivial to do, but details matter if you want |
| 490 | ;; to keep markers "at the right place" and be robust in the face of | 490 | ;; to keep markers "at the right place" and be robust in the face of |
| 491 | ;; after-change-functions that may themselves modify the buffer. | 491 | ;; after-change-functions that may themselves modify the buffer. |
| 492 | (let ((prefix-len 0)) | ||
| 493 | ;; Don't touch markers in the shared prefix (if any). | ||
| 494 | (while (and (< prefix-len (length newtext)) | ||
| 495 | (< (+ beg prefix-len) end) | ||
| 496 | (eq (char-after (+ beg prefix-len)) | ||
| 497 | (aref newtext prefix-len))) | ||
| 498 | (setq prefix-len (1+ prefix-len))) | ||
| 499 | (unless (zerop prefix-len) | ||
| 500 | (setq beg (+ beg prefix-len)) | ||
| 501 | (setq newtext (substring newtext prefix-len)))) | ||
| 502 | (let ((suffix-len 0)) | ||
| 503 | ;; Don't touch markers in the shared suffix (if any). | ||
| 504 | (while (and (< suffix-len (length newtext)) | ||
| 505 | (< beg (- end suffix-len)) | ||
| 506 | (eq (char-before (- end suffix-len)) | ||
| 507 | (aref newtext (- (length newtext) suffix-len 1)))) | ||
| 508 | (setq suffix-len (1+ suffix-len))) | ||
| 509 | (unless (zerop suffix-len) | ||
| 510 | (setq end (- end suffix-len)) | ||
| 511 | (setq newtext (substring newtext 0 (- suffix-len))))) | ||
| 492 | (goto-char beg) | 512 | (goto-char beg) |
| 493 | (insert newtext) | 513 | (insert newtext) |
| 494 | (delete-region (point) (+ (point) (- end beg)))) | 514 | (delete-region (point) (+ (point) (- end beg)))) |
| @@ -520,15 +540,16 @@ E = after completion we now have an Exact match. | |||
| 520 | 101 5 ??? impossible | 540 | 101 5 ??? impossible |
| 521 | 110 6 some completion happened | 541 | 110 6 some completion happened |
| 522 | 111 7 completed to an exact completion" | 542 | 111 7 completed to an exact completion" |
| 523 | (let* ((beg (field-beginning)) | 543 | (lexical-let* |
| 524 | (end (field-end)) | 544 | ((beg (field-beginning)) |
| 525 | (string (buffer-substring beg end)) | 545 | (end (field-end)) |
| 526 | (comp (funcall (or try-completion-function | 546 | (string (buffer-substring beg end)) |
| 527 | 'completion-try-completion) | 547 | (comp (funcall (or try-completion-function |
| 528 | string | 548 | 'completion-try-completion) |
| 529 | minibuffer-completion-table | 549 | string |
| 530 | minibuffer-completion-predicate | 550 | minibuffer-completion-table |
| 531 | (- (point) beg)))) | 551 | minibuffer-completion-predicate |
| 552 | (- (point) beg)))) | ||
| 532 | (cond | 553 | (cond |
| 533 | ((null comp) | 554 | ((null comp) |
| 534 | (minibuffer-hide-completions) | 555 | (minibuffer-hide-completions) |
| @@ -541,14 +562,15 @@ E = after completion we now have an Exact match. | |||
| 541 | ;; `completed' should be t if some completion was done, which doesn't | 562 | ;; `completed' should be t if some completion was done, which doesn't |
| 542 | ;; include simply changing the case of the entered string. However, | 563 | ;; include simply changing the case of the entered string. However, |
| 543 | ;; for appearance, the string is rewritten if the case changes. | 564 | ;; for appearance, the string is rewritten if the case changes. |
| 544 | (let* ((comp-pos (cdr comp)) | 565 | (lexical-let* |
| 545 | (completion (car comp)) | 566 | ((comp-pos (cdr comp)) |
| 546 | (completed (not (eq t (compare-strings completion nil nil | 567 | (completion (car comp)) |
| 547 | string nil nil t)))) | 568 | (completed (not (eq t (compare-strings completion nil nil |
| 548 | (unchanged (eq t (compare-strings completion nil nil | 569 | string nil nil t)))) |
| 549 | string nil nil nil)))) | 570 | (unchanged (eq t (compare-strings completion nil nil |
| 571 | string nil nil nil)))) | ||
| 550 | (if unchanged | 572 | (if unchanged |
| 551 | (goto-char end) | 573 | (goto-char end) |
| 552 | ;; Insert in minibuffer the chars we got. | 574 | ;; Insert in minibuffer the chars we got. |
| 553 | (completion--replace beg end completion)) | 575 | (completion--replace beg end completion)) |
| 554 | ;; Move point to its completion-mandated destination. | 576 | ;; Move point to its completion-mandated destination. |
| @@ -729,8 +751,8 @@ If `minibuffer-completion-confirm' is `confirm-after-completion', | |||
| 729 | `minibuffer-confirm-exit-commands', and accept the input | 751 | `minibuffer-confirm-exit-commands', and accept the input |
| 730 | otherwise." | 752 | otherwise." |
| 731 | (interactive) | 753 | (interactive) |
| 732 | (let ((beg (field-beginning)) | 754 | (lexical-let ((beg (field-beginning)) |
| 733 | (end (field-end))) | 755 | (end (field-end))) |
| 734 | (cond | 756 | (cond |
| 735 | ;; Allow user to specify null string | 757 | ;; Allow user to specify null string |
| 736 | ((= beg end) (exit-minibuffer)) | 758 | ((= beg end) (exit-minibuffer)) |
| @@ -1107,14 +1129,13 @@ variables.") | |||
| 1107 | "Display a list of possible completions of the current minibuffer contents." | 1129 | "Display a list of possible completions of the current minibuffer contents." |
| 1108 | (interactive) | 1130 | (interactive) |
| 1109 | (message "Making completion list...") | 1131 | (message "Making completion list...") |
| 1110 | (let* ((non-essential t) | 1132 | (lexical-let* ((start (field-beginning)) |
| 1111 | (start (field-beginning)) | 1133 | (string (field-string)) |
| 1112 | (string (field-string)) | 1134 | (completions (completion-all-completions |
| 1113 | (completions (completion-all-completions | 1135 | string |
| 1114 | string | 1136 | minibuffer-completion-table |
| 1115 | minibuffer-completion-table | 1137 | minibuffer-completion-predicate |
| 1116 | minibuffer-completion-predicate | 1138 | (- (point) (field-beginning))))) |
| 1117 | (- (point) (field-beginning))))) | ||
| 1118 | (message nil) | 1139 | (message nil) |
| 1119 | (if (and completions | 1140 | (if (and completions |
| 1120 | (or (consp (cdr completions)) | 1141 | (or (consp (cdr completions)) |
| @@ -1767,9 +1788,10 @@ Return the new suffix." | |||
| 1767 | (substring afterpoint 0 (cdr bounds))))) | 1788 | (substring afterpoint 0 (cdr bounds))))) |
| 1768 | 1789 | ||
| 1769 | (defun completion-basic-try-completion (string table pred point) | 1790 | (defun completion-basic-try-completion (string table pred point) |
| 1770 | (let* ((beforepoint (substring string 0 point)) | 1791 | (lexical-let* |
| 1771 | (afterpoint (substring string point)) | 1792 | ((beforepoint (substring string 0 point)) |
| 1772 | (bounds (completion-boundaries beforepoint table pred afterpoint))) | 1793 | (afterpoint (substring string point)) |
| 1794 | (bounds (completion-boundaries beforepoint table pred afterpoint))) | ||
| 1773 | (if (zerop (cdr bounds)) | 1795 | (if (zerop (cdr bounds)) |
| 1774 | ;; `try-completion' may return a subtly different result | 1796 | ;; `try-completion' may return a subtly different result |
| 1775 | ;; than `all+merge', so try to use it whenever possible. | 1797 | ;; than `all+merge', so try to use it whenever possible. |
| @@ -1780,22 +1802,30 @@ Return the new suffix." | |||
| 1780 | (concat completion | 1802 | (concat completion |
| 1781 | (completion--merge-suffix completion point afterpoint)) | 1803 | (completion--merge-suffix completion point afterpoint)) |
| 1782 | (length completion)))) | 1804 | (length completion)))) |
| 1783 | (let* ((suffix (substring afterpoint (cdr bounds))) | 1805 | (lexical-let* |
| 1784 | (prefix (substring beforepoint 0 (car bounds))) | 1806 | ((suffix (substring afterpoint (cdr bounds))) |
| 1785 | (pattern (completion-basic--pattern | 1807 | (prefix (substring beforepoint 0 (car bounds))) |
| 1786 | beforepoint afterpoint bounds)) | 1808 | (pattern (delete |
| 1787 | (all (completion-pcm--all-completions prefix pattern table pred))) | 1809 | "" (list (substring beforepoint (car bounds)) |
| 1810 | 'point | ||
| 1811 | (substring afterpoint 0 (cdr bounds))))) | ||
| 1812 | (all (completion-pcm--all-completions prefix pattern table pred))) | ||
| 1788 | (if minibuffer-completing-file-name | 1813 | (if minibuffer-completing-file-name |
| 1789 | (setq all (completion-pcm--filename-try-filter all))) | 1814 | (setq all (completion-pcm--filename-try-filter all))) |
| 1790 | (completion-pcm--merge-try pattern all prefix suffix))))) | 1815 | (completion-pcm--merge-try pattern all prefix suffix))))) |
| 1791 | 1816 | ||
| 1792 | (defun completion-basic-all-completions (string table pred point) | 1817 | (defun completion-basic-all-completions (string table pred point) |
| 1793 | (let* ((beforepoint (substring string 0 point)) | 1818 | (lexical-let* |
| 1794 | (afterpoint (substring string point)) | 1819 | ((beforepoint (substring string 0 point)) |
| 1795 | (bounds (completion-boundaries beforepoint table pred afterpoint)) | 1820 | (afterpoint (substring string point)) |
| 1796 | (prefix (substring beforepoint 0 (car bounds))) | 1821 | (bounds (completion-boundaries beforepoint table pred afterpoint)) |
| 1797 | (pattern (completion-basic--pattern beforepoint afterpoint bounds)) | 1822 | (suffix (substring afterpoint (cdr bounds))) |
| 1798 | (all (completion-pcm--all-completions prefix pattern table pred))) | 1823 | (prefix (substring beforepoint 0 (car bounds))) |
| 1824 | (pattern (delete | ||
| 1825 | "" (list (substring beforepoint (car bounds)) | ||
| 1826 | 'point | ||
| 1827 | (substring afterpoint 0 (cdr bounds))))) | ||
| 1828 | (all (completion-pcm--all-completions prefix pattern table pred))) | ||
| 1799 | (completion-hilit-commonality all point (car bounds)))) | 1829 | (completion-hilit-commonality all point (car bounds)))) |
| 1800 | 1830 | ||
| 1801 | ;;; Partial-completion-mode style completion. | 1831 | ;;; Partial-completion-mode style completion. |
| @@ -1958,12 +1988,13 @@ POINT is a position inside STRING. | |||
| 1958 | FILTER is a function applied to the return value, that can be used, e.g. to | 1988 | FILTER is a function applied to the return value, that can be used, e.g. to |
| 1959 | filter out additional entries (because TABLE migth not obey PRED)." | 1989 | filter out additional entries (because TABLE migth not obey PRED)." |
| 1960 | (unless filter (setq filter 'identity)) | 1990 | (unless filter (setq filter 'identity)) |
| 1961 | (let* ((beforepoint (substring string 0 point)) | 1991 | (lexical-let* |
| 1962 | (afterpoint (substring string point)) | 1992 | ((beforepoint (substring string 0 point)) |
| 1963 | (bounds (completion-boundaries beforepoint table pred afterpoint)) | 1993 | (afterpoint (substring string point)) |
| 1964 | (prefix (substring beforepoint 0 (car bounds))) | 1994 | (bounds (completion-boundaries beforepoint table pred afterpoint)) |
| 1965 | (suffix (substring afterpoint (cdr bounds))) | 1995 | (prefix (substring beforepoint 0 (car bounds))) |
| 1966 | firsterror) | 1996 | (suffix (substring afterpoint (cdr bounds))) |
| 1997 | firsterror) | ||
| 1967 | (setq string (substring string (car bounds) (+ point (cdr bounds)))) | 1998 | (setq string (substring string (car bounds) (+ point (cdr bounds)))) |
| 1968 | (let* ((relpoint (- point (car bounds))) | 1999 | (let* ((relpoint (- point (car bounds))) |
| 1969 | (pattern (completion-pcm--string->pattern string relpoint)) | 2000 | (pattern (completion-pcm--string->pattern string relpoint)) |
diff --git a/lisp/emacs-lisp/cl-compat.el b/lisp/obsolete/cl-compat.el index f4923b6f8c6..622c4eaace6 100644 --- a/lisp/emacs-lisp/cl-compat.el +++ b/lisp/obsolete/cl-compat.el | |||
| @@ -1,12 +1,12 @@ | |||
| 1 | ;;; cl-compat.el --- Common Lisp extensions for GNU Emacs Lisp (compatibility) | 1 | ;;; cl-compat.el --- Common Lisp extensions for GNU Emacs Lisp (compatibility) |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, | 3 | ;; Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, |
| 4 | ;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. | 4 | ;; 2009, 2010 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Dave Gillespie <daveg@synaptics.com> | 6 | ;; Author: Dave Gillespie <daveg@synaptics.com> |
| 7 | ;; Version: 2.02 | 7 | ;; Version: 2.02 |
| 8 | ;; Keywords: extensions | 8 | ;; Keywords: extensions |
| 9 | ;; Package: emacs | 9 | ;; Obsolete-since: 23.3 |
| 10 | 10 | ||
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| 12 | 12 | ||
| @@ -25,6 +25,8 @@ | |||
| 25 | 25 | ||
| 26 | ;;; Commentary: | 26 | ;;; Commentary: |
| 27 | 27 | ||
| 28 | ;; This file has been obsolete since Emacs 23.3. | ||
| 29 | |||
| 28 | ;; These are extensions to Emacs Lisp that provide a degree of | 30 | ;; These are extensions to Emacs Lisp that provide a degree of |
| 29 | ;; Common Lisp compatibility, beyond what is already built-in | 31 | ;; Common Lisp compatibility, beyond what is already built-in |
| 30 | ;; in Emacs Lisp. | 32 | ;; in Emacs Lisp. |
| @@ -195,5 +197,4 @@ | |||
| 195 | ;; byte-compile-warnings: (not cl-functions) | 197 | ;; byte-compile-warnings: (not cl-functions) |
| 196 | ;; End: | 198 | ;; End: |
| 197 | 199 | ||
| 198 | ;; arch-tag: 9996bb4f-aaf5-4592-b436-bf64759a3163 | ||
| 199 | ;;; cl-compat.el ends here | 200 | ;;; cl-compat.el ends here |
diff --git a/lisp/emacs-lisp/lmenu.el b/lisp/obsolete/lmenu.el index 54fb488ed59..14f6398eef1 100644 --- a/lisp/emacs-lisp/lmenu.el +++ b/lisp/obsolete/lmenu.el | |||
| @@ -1,9 +1,10 @@ | |||
| 1 | ;;; lmenu.el --- emulate Lucid's menubar support | 1 | ;;; lmenu.el --- emulate Lucid's menubar support |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1992, 1993, 1994, 1997, 2001, 2002, 2003, 2004, | 3 | ;; Copyright (C) 1992, 1993, 1994, 1997, 2001, 2002, 2003, 2004, 2005, |
| 4 | ;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. | 4 | ;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Keywords: emulations obsolete | 6 | ;; Keywords: emulations obsolete |
| 7 | ;; Obsolete-since: 23.3 | ||
| 7 | 8 | ||
| 8 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 9 | 10 | ||
| @@ -22,6 +23,8 @@ | |||
| 22 | 23 | ||
| 23 | ;;; Commentary: | 24 | ;;; Commentary: |
| 24 | 25 | ||
| 26 | ;; This file has been obsolete since Emacs 23.3. | ||
| 27 | |||
| 25 | ;;; Code: | 28 | ;;; Code: |
| 26 | 29 | ||
| 27 | 30 | ||
| @@ -439,5 +442,4 @@ BEFORE, if provided, is the name of a menu before which this menu should | |||
| 439 | 442 | ||
| 440 | (provide 'lmenu) | 443 | (provide 'lmenu) |
| 441 | 444 | ||
| 442 | ;; arch-tag: 7051c396-2837-435a-ae11-b2d2e2af8fc1 | ||
| 443 | ;;; lmenu.el ends here | 445 | ;;; lmenu.el ends here |
diff --git a/lisp/server.el b/lisp/server.el index e661f055e1a..bc49087f464 100644 --- a/lisp/server.el +++ b/lisp/server.el | |||
| @@ -859,7 +859,7 @@ The following commands are accepted by the client: | |||
| 859 | returned by -eval. | 859 | returned by -eval. |
| 860 | 860 | ||
| 861 | `-error DESCRIPTION' | 861 | `-error DESCRIPTION' |
| 862 | Signal an error (but continue processing). | 862 | Signal an error and delete process PROC. |
| 863 | 863 | ||
| 864 | `-suspend' | 864 | `-suspend' |
| 865 | Suspend this terminal, i.e., stop the client process. | 865 | Suspend this terminal, i.e., stop the client process. |
diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el index 7718c4e5316..3e4c299f096 100644 --- a/lisp/vc/vc-svn.el +++ b/lisp/vc/vc-svn.el | |||
| @@ -374,7 +374,7 @@ The changes are between FIRST-VERSION and SECOND-VERSION." | |||
| 374 | (message "Merging changes into %s..." file) | 374 | (message "Merging changes into %s..." file) |
| 375 | ;; (vc-file-setprop file 'vc-working-revision nil) | 375 | ;; (vc-file-setprop file 'vc-working-revision nil) |
| 376 | (vc-file-setprop file 'vc-checkout-time 0) | 376 | (vc-file-setprop file 'vc-checkout-time 0) |
| 377 | (vc-svn-command nil 0 file "update") | 377 | (vc-svn-command nil 0 file "--non-interactive" "update") ; see bug#7152 |
| 378 | ;; Analyze the merge result reported by SVN, and set | 378 | ;; Analyze the merge result reported by SVN, and set |
| 379 | ;; file properties accordingly. | 379 | ;; file properties accordingly. |
| 380 | (with-current-buffer (get-buffer "*vc*") | 380 | (with-current-buffer (get-buffer "*vc*") |
diff --git a/src/ChangeLog b/src/ChangeLog index 2effe2ea84c..0bde3bb19fe 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,54 @@ | |||
| 1 | 2010-10-08 Kenichi Handa <handa@m17n.org> | ||
| 2 | |||
| 3 | * coding.c (complement_process_encoding_system): Fix previous change. | ||
| 4 | |||
| 5 | 2010-10-08 Michael Albinus <michael.albinus@gmx.de> | ||
| 6 | |||
| 7 | * dbusbind.c (syms_of_dbusbind): Move putenv call ... | ||
| 8 | (Fdbus_init_bus): ... here. (Bug#7113) | ||
| 9 | |||
| 10 | 2010-10-08 Glenn Morris <rgm@gnu.org> | ||
| 11 | |||
| 12 | * buffer.c (before-change-functions, after-change-functions): | ||
| 13 | Three-year overdue doc fix following 2007-08-13 change. | ||
| 14 | |||
| 15 | 2010-10-08 Kenichi Handa <handa@m17n.org> | ||
| 16 | |||
| 17 | * coding.c (coding_inherit_eol_type): If parent doesn't specify | ||
| 18 | eol-format, inherit from the system's default. | ||
| 19 | (complement_process_encoding_system): Make a new coding system | ||
| 20 | inherit the original eol-format. | ||
| 21 | |||
| 22 | 2010-10-08 Kenichi Handa <handa@m17n.org> | ||
| 23 | |||
| 24 | * coding.c (complement_process_encoding_system): New function. | ||
| 25 | |||
| 26 | * coding.h (complement_process_encoding_system): Extern it. | ||
| 27 | |||
| 28 | * callproc.c (Fcall_process): Complement the coding system for | ||
| 29 | encoding arguments. | ||
| 30 | (Fcall_process_region): Complement the coding system for encoding | ||
| 31 | the input to the process. | ||
| 32 | |||
| 33 | * process.c (Fstart_process): Complement the coding system for | ||
| 34 | encoding arguments. | ||
| 35 | (send_process): Complement the coding system for encoding what | ||
| 36 | sent to the process. | ||
| 37 | |||
| 38 | 2010-10-08 Kenichi Handa <handa@m17n.org> | ||
| 39 | |||
| 40 | * xfont.c (xfont_open): Fix setting of font->average_width from | ||
| 41 | :avgwidth property (Bug#7123). | ||
| 42 | |||
| 43 | 2010-10-08 Michael Albinus <michael.albinus@gmx.de> | ||
| 44 | |||
| 45 | * dbusbind.c (syms_of_dbusbind): Use putenv instead of setenv, it | ||
| 46 | is more portable. | ||
| 47 | |||
| 48 | * keyboard.c (gobble_input): Move call of xd_read_queued_messages ... | ||
| 49 | (kbd_buffer_get_event): ... here. This is needed for cygwin, which | ||
| 50 | has not defined SIGIO. | ||
| 51 | |||
| 1 | 2010-10-08 Chong Yidong <cyd@stupidchicken.com> | 52 | 2010-10-08 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 53 | ||
| 3 | * xterm.c (x_draw_relief_rect): If box width is larger than 1, | 54 | * xterm.c (x_draw_relief_rect): If box width is larger than 1, |
diff --git a/src/buffer.c b/src/buffer.c index 3f087d62a5f..ed3b7acd2ac 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -5957,10 +5957,7 @@ No information is given about the length of the text after the change. | |||
| 5957 | 5957 | ||
| 5958 | Buffer changes made while executing the `before-change-functions' | 5958 | Buffer changes made while executing the `before-change-functions' |
| 5959 | don't call any before-change or after-change functions. | 5959 | don't call any before-change or after-change functions. |
| 5960 | That's because these variables are temporarily set to nil. | 5960 | That's because `inhibit-modification-hooks' is temporarily set non-nil. |
| 5961 | As a result, a hook function cannot straightforwardly alter the | ||
| 5962 | value of these variables. See the Emacs Lisp manual for a way of | ||
| 5963 | accomplishing an equivalent result by using other variables. | ||
| 5964 | 5961 | ||
| 5965 | If an unhandled error happens in running these functions, | 5962 | If an unhandled error happens in running these functions, |
| 5966 | the variable's value remains nil. That prevents the error | 5963 | the variable's value remains nil. That prevents the error |
| @@ -5978,10 +5975,7 @@ and the post-change beginning and end are at the same place.) | |||
| 5978 | 5975 | ||
| 5979 | Buffer changes made while executing the `after-change-functions' | 5976 | Buffer changes made while executing the `after-change-functions' |
| 5980 | don't call any before-change or after-change functions. | 5977 | don't call any before-change or after-change functions. |
| 5981 | That's because these variables are temporarily set to nil. | 5978 | That's because `inhibit-modification-hooks' is temporarily set non-nil. |
| 5982 | As a result, a hook function cannot straightforwardly alter the | ||
| 5983 | value of these variables. See the Emacs Lisp manual for a way of | ||
| 5984 | accomplishing an equivalent result by using other variables. | ||
| 5985 | 5979 | ||
| 5986 | If an unhandled error happens in running these functions, | 5980 | If an unhandled error happens in running these functions, |
| 5987 | the variable's value remains nil. That prevents the error | 5981 | the variable's value remains nil. That prevents the error |
diff --git a/src/callproc.c b/src/callproc.c index 29e13bbc4a7..ee0872b5562 100644 --- a/src/callproc.c +++ b/src/callproc.c | |||
| @@ -254,21 +254,16 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) | |||
| 254 | if (!NILP (Vcoding_system_for_write)) | 254 | if (!NILP (Vcoding_system_for_write)) |
| 255 | val = Vcoding_system_for_write; | 255 | val = Vcoding_system_for_write; |
| 256 | else if (! must_encode) | 256 | else if (! must_encode) |
| 257 | val = Qnil; | 257 | val = Qraw_text; |
| 258 | else | 258 | else |
| 259 | { | 259 | { |
| 260 | args2 = (Lisp_Object *) alloca ((nargs + 1) * sizeof *args2); | 260 | args2 = (Lisp_Object *) alloca ((nargs + 1) * sizeof *args2); |
| 261 | args2[0] = Qcall_process; | 261 | args2[0] = Qcall_process; |
| 262 | for (i = 0; i < nargs; i++) args2[i + 1] = args[i]; | 262 | for (i = 0; i < nargs; i++) args2[i + 1] = args[i]; |
| 263 | coding_systems = Ffind_operation_coding_system (nargs + 1, args2); | 263 | coding_systems = Ffind_operation_coding_system (nargs + 1, args2); |
| 264 | if (CONSP (coding_systems)) | 264 | val = CONSP (coding_systems) ? XCDR (coding_systems) : Qnil; |
| 265 | val = XCDR (coding_systems); | ||
| 266 | else if (CONSP (Vdefault_process_coding_system)) | ||
| 267 | val = XCDR (Vdefault_process_coding_system); | ||
| 268 | else | ||
| 269 | val = Qnil; | ||
| 270 | } | 265 | } |
| 271 | val = coding_inherit_eol_type (val, Qnil); | 266 | val = complement_process_encoding_system (val); |
| 272 | setup_coding_system (Fcheck_coding_system (val), &argument_coding); | 267 | setup_coding_system (Fcheck_coding_system (val), &argument_coding); |
| 273 | coding_attrs = CODING_ID_ATTRS (argument_coding.id); | 268 | coding_attrs = CODING_ID_ATTRS (argument_coding.id); |
| 274 | if (NILP (CODING_ATTR_ASCII_COMPAT (coding_attrs))) | 269 | if (NILP (CODING_ATTR_ASCII_COMPAT (coding_attrs))) |
| @@ -912,20 +907,16 @@ usage: (call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &r | |||
| 912 | if (!NILP (Vcoding_system_for_write)) | 907 | if (!NILP (Vcoding_system_for_write)) |
| 913 | val = Vcoding_system_for_write; | 908 | val = Vcoding_system_for_write; |
| 914 | else if (NILP (current_buffer->enable_multibyte_characters)) | 909 | else if (NILP (current_buffer->enable_multibyte_characters)) |
| 915 | val = Qnil; | 910 | val = Qraw_text; |
| 916 | else | 911 | else |
| 917 | { | 912 | { |
| 918 | args2 = (Lisp_Object *) alloca ((nargs + 1) * sizeof *args2); | 913 | args2 = (Lisp_Object *) alloca ((nargs + 1) * sizeof *args2); |
| 919 | args2[0] = Qcall_process_region; | 914 | args2[0] = Qcall_process_region; |
| 920 | for (i = 0; i < nargs; i++) args2[i + 1] = args[i]; | 915 | for (i = 0; i < nargs; i++) args2[i + 1] = args[i]; |
| 921 | coding_systems = Ffind_operation_coding_system (nargs + 1, args2); | 916 | coding_systems = Ffind_operation_coding_system (nargs + 1, args2); |
| 922 | if (CONSP (coding_systems)) | 917 | val = CONSP (coding_systems) ? XCDR (coding_systems) : Qnil; |
| 923 | val = XCDR (coding_systems); | ||
| 924 | else if (CONSP (Vdefault_process_coding_system)) | ||
| 925 | val = XCDR (Vdefault_process_coding_system); | ||
| 926 | else | ||
| 927 | val = Qnil; | ||
| 928 | } | 918 | } |
| 919 | val = complement_process_encoding_system (val); | ||
| 929 | 920 | ||
| 930 | { | 921 | { |
| 931 | int count1 = SPECPDL_INDEX (); | 922 | int count1 = SPECPDL_INDEX (); |
diff --git a/src/coding.c b/src/coding.c index d6285ed9245..2cf32360096 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -6016,10 +6016,9 @@ raw_text_coding_system (Lisp_Object coding_system) | |||
| 6016 | } | 6016 | } |
| 6017 | 6017 | ||
| 6018 | 6018 | ||
| 6019 | /* If CODING_SYSTEM doesn't specify end-of-line format but PARENT | 6019 | /* If CODING_SYSTEM doesn't specify end-of-line format, return one of |
| 6020 | does, return one of the subsidiary that has the same eol-spec as | 6020 | the subsidiary that has the same eol-spec as PARENT (if it is not |
| 6021 | PARENT. Otherwise, return CODING_SYSTEM. If PARENT is nil, | 6021 | nil and specifies end-of-line format) or the system's setting |
| 6022 | inherit end-of-line format from the system's setting | ||
| 6023 | (system_eol_type). */ | 6022 | (system_eol_type). */ |
| 6024 | 6023 | ||
| 6025 | Lisp_Object | 6024 | Lisp_Object |
| @@ -6041,6 +6040,8 @@ coding_inherit_eol_type (Lisp_Object coding_system, Lisp_Object parent) | |||
| 6041 | 6040 | ||
| 6042 | parent_spec = CODING_SYSTEM_SPEC (parent); | 6041 | parent_spec = CODING_SYSTEM_SPEC (parent); |
| 6043 | parent_eol_type = AREF (parent_spec, 2); | 6042 | parent_eol_type = AREF (parent_spec, 2); |
| 6043 | if (VECTORP (parent_eol_type)) | ||
| 6044 | parent_eol_type = system_eol_type; | ||
| 6044 | } | 6045 | } |
| 6045 | else | 6046 | else |
| 6046 | parent_eol_type = system_eol_type; | 6047 | parent_eol_type = system_eol_type; |
| @@ -6054,6 +6055,45 @@ coding_inherit_eol_type (Lisp_Object coding_system, Lisp_Object parent) | |||
| 6054 | return coding_system; | 6055 | return coding_system; |
| 6055 | } | 6056 | } |
| 6056 | 6057 | ||
| 6058 | |||
| 6059 | /* Check if text-conversion and eol-conversion of CODING_SYSTEM are | ||
| 6060 | decided for writing to a process. If not, complement them, and | ||
| 6061 | return a new coding system. */ | ||
| 6062 | |||
| 6063 | Lisp_Object | ||
| 6064 | complement_process_encoding_system (Lisp_Object coding_system) | ||
| 6065 | { | ||
| 6066 | Lisp_Object coding_base = Qnil, eol_base = Qnil; | ||
| 6067 | Lisp_Object spec, attrs; | ||
| 6068 | int i; | ||
| 6069 | |||
| 6070 | for (i = 0; i < 3; i++) | ||
| 6071 | { | ||
| 6072 | if (i == 1) | ||
| 6073 | coding_system = CDR_SAFE (Vdefault_process_coding_system); | ||
| 6074 | else if (i == 2) | ||
| 6075 | coding_system = preferred_coding_system (); | ||
| 6076 | spec = CODING_SYSTEM_SPEC (coding_system); | ||
| 6077 | if (NILP (spec)) | ||
| 6078 | continue; | ||
| 6079 | attrs = AREF (spec, 0); | ||
| 6080 | if (NILP (coding_base) && ! EQ (CODING_ATTR_TYPE (attrs), Qundecided)) | ||
| 6081 | coding_base = CODING_ATTR_BASE_NAME (attrs); | ||
| 6082 | if (NILP (eol_base) && ! VECTORP (AREF (spec, 2))) | ||
| 6083 | eol_base = coding_system; | ||
| 6084 | if (! NILP (coding_base) && ! NILP (eol_base)) | ||
| 6085 | break; | ||
| 6086 | } | ||
| 6087 | |||
| 6088 | if (i > 0) | ||
| 6089 | /* The original CODING_SYSTEM didn't specify text-conversion or | ||
| 6090 | eol-conversion. Be sure that we return a fully complemented | ||
| 6091 | coding system. */ | ||
| 6092 | coding_system = coding_inherit_eol_type (coding_base, eol_base); | ||
| 6093 | return coding_system; | ||
| 6094 | } | ||
| 6095 | |||
| 6096 | |||
| 6057 | /* Emacs has a mechanism to automatically detect a coding system if it | 6097 | /* Emacs has a mechanism to automatically detect a coding system if it |
| 6058 | is one of Emacs' internal format, ISO2022, SJIS, and BIG5. But, | 6098 | is one of Emacs' internal format, ISO2022, SJIS, and BIG5. But, |
| 6059 | it's impossible to distinguish some coding systems accurately | 6099 | it's impossible to distinguish some coding systems accurately |
diff --git a/src/coding.h b/src/coding.h index 0caa5b2f96f..7233726a250 100644 --- a/src/coding.h +++ b/src/coding.h | |||
| @@ -707,6 +707,7 @@ extern Lisp_Object code_convert_string_norecord (Lisp_Object, Lisp_Object, | |||
| 707 | int); | 707 | int); |
| 708 | extern Lisp_Object raw_text_coding_system (Lisp_Object); | 708 | extern Lisp_Object raw_text_coding_system (Lisp_Object); |
| 709 | extern Lisp_Object coding_inherit_eol_type (Lisp_Object, Lisp_Object); | 709 | extern Lisp_Object coding_inherit_eol_type (Lisp_Object, Lisp_Object); |
| 710 | extern Lisp_Object complement_process_encoding_system (Lisp_Object); | ||
| 710 | 711 | ||
| 711 | extern int decode_coding_gap (struct coding_system *, | 712 | extern int decode_coding_gap (struct coding_system *, |
| 712 | EMACS_INT, EMACS_INT); | 713 | EMACS_INT, EMACS_INT); |
diff --git a/src/dbusbind.c b/src/dbusbind.c index 99a157fbc76..683b7cb583b 100644 --- a/src/dbusbind.c +++ b/src/dbusbind.c | |||
| @@ -900,6 +900,9 @@ DEFUN ("dbus-init-bus", Fdbus_init_bus, Sdbus_init_bus, 1, 1, 0, | |||
| 900 | /* Add bus to list of registered buses. */ | 900 | /* Add bus to list of registered buses. */ |
| 901 | Vdbus_registered_buses = Fcons (bus, Vdbus_registered_buses); | 901 | Vdbus_registered_buses = Fcons (bus, Vdbus_registered_buses); |
| 902 | 902 | ||
| 903 | /* We do not want to abort. */ | ||
| 904 | putenv ("DBUS_FATAL_WARNINGS=0"); | ||
| 905 | |||
| 903 | /* Return. */ | 906 | /* Return. */ |
| 904 | return Qnil; | 907 | return Qnil; |
| 905 | } | 908 | } |
| @@ -2160,12 +2163,11 @@ be called when the D-Bus reply message arrives. */); | |||
| 2160 | doc: /* If non-nil, debug messages of D-Bus bindings are raised. */); | 2163 | doc: /* If non-nil, debug messages of D-Bus bindings are raised. */); |
| 2161 | #ifdef DBUS_DEBUG | 2164 | #ifdef DBUS_DEBUG |
| 2162 | Vdbus_debug = Qt; | 2165 | Vdbus_debug = Qt; |
| 2163 | /* We can also set environment DBUS_VERBOSE=1 in order to see more | 2166 | /* We can also set environment variable DBUS_VERBOSE=1 in order to |
| 2164 | traces. */ | 2167 | see more traces. This requires libdbus-1 to be configured with |
| 2168 | --enable-verbose-mode. */ | ||
| 2165 | #else | 2169 | #else |
| 2166 | Vdbus_debug = Qnil; | 2170 | Vdbus_debug = Qnil; |
| 2167 | /* We do not want to abort. */ | ||
| 2168 | setenv ("DBUS_FATAL_WARNINGS", "0", 1); | ||
| 2169 | #endif | 2171 | #endif |
| 2170 | 2172 | ||
| 2171 | Fprovide (intern_c_string ("dbusbind"), Qnil); | 2173 | Fprovide (intern_c_string ("dbusbind"), Qnil); |
diff --git a/src/keyboard.c b/src/keyboard.c index 9af26cd427d..b284244ac81 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -3952,6 +3952,11 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 3952 | /* One way or another, wait until input is available; then, if | 3952 | /* One way or another, wait until input is available; then, if |
| 3953 | interrupt handlers have not read it, read it now. */ | 3953 | interrupt handlers have not read it, read it now. */ |
| 3954 | 3954 | ||
| 3955 | #ifdef HAVE_DBUS | ||
| 3956 | /* Read D-Bus messages. */ | ||
| 3957 | xd_read_queued_messages (); | ||
| 3958 | #endif /* HAVE_DBUS */ | ||
| 3959 | |||
| 3955 | /* Note SIGIO has been undef'd if FIONREAD is missing. */ | 3960 | /* Note SIGIO has been undef'd if FIONREAD is missing. */ |
| 3956 | #ifdef SIGIO | 3961 | #ifdef SIGIO |
| 3957 | gobble_input (0); | 3962 | gobble_input (0); |
diff --git a/src/process.c b/src/process.c index 370fb673e84..e1515065957 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -1670,6 +1670,11 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) | |||
| 1670 | val = XCDR (Vdefault_process_coding_system); | 1670 | val = XCDR (Vdefault_process_coding_system); |
| 1671 | } | 1671 | } |
| 1672 | XPROCESS (proc)->encode_coding_system = val; | 1672 | XPROCESS (proc)->encode_coding_system = val; |
| 1673 | /* Note: At this momemnt, the above coding system may leave | ||
| 1674 | text-conversion or eol-conversion unspecified. They will be | ||
| 1675 | decided after we read output from the process and decode it by | ||
| 1676 | some coding system, or just before we actually send a text to | ||
| 1677 | the process. */ | ||
| 1673 | } | 1678 | } |
| 1674 | 1679 | ||
| 1675 | 1680 | ||
| @@ -1712,6 +1717,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) | |||
| 1712 | tem = Fsubstring (tem, make_number (2), Qnil); | 1717 | tem = Fsubstring (tem, make_number (2), Qnil); |
| 1713 | 1718 | ||
| 1714 | { | 1719 | { |
| 1720 | Lisp_Object arg_encoding = Qnil; | ||
| 1715 | struct gcpro gcpro1; | 1721 | struct gcpro gcpro1; |
| 1716 | GCPRO1 (tem); | 1722 | GCPRO1 (tem); |
| 1717 | 1723 | ||
| @@ -1729,9 +1735,14 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) | |||
| 1729 | tem = Fcons (args[i], tem); | 1735 | tem = Fcons (args[i], tem); |
| 1730 | CHECK_STRING (XCAR (tem)); | 1736 | CHECK_STRING (XCAR (tem)); |
| 1731 | if (STRING_MULTIBYTE (XCAR (tem))) | 1737 | if (STRING_MULTIBYTE (XCAR (tem))) |
| 1732 | XSETCAR (tem, | 1738 | { |
| 1733 | code_convert_string_norecord | 1739 | if (NILP (arg_encoding)) |
| 1734 | (XCAR (tem), XPROCESS (proc)->encode_coding_system, 1)); | 1740 | arg_encoding = (complement_process_encoding_system |
| 1741 | (XPROCESS (proc)->encode_coding_system)); | ||
| 1742 | XSETCAR (tem, | ||
| 1743 | code_convert_string_norecord | ||
| 1744 | (XCAR (tem), arg_encoding, 1)); | ||
| 1745 | } | ||
| 1735 | } | 1746 | } |
| 1736 | 1747 | ||
| 1737 | UNGCPRO; | 1748 | UNGCPRO; |
| @@ -5529,12 +5540,21 @@ send_process (volatile Lisp_Object proc, const unsigned char *volatile buf, | |||
| 5529 | && !NILP (XBUFFER (object)->enable_multibyte_characters)) | 5540 | && !NILP (XBUFFER (object)->enable_multibyte_characters)) |
| 5530 | || EQ (object, Qt)) | 5541 | || EQ (object, Qt)) |
| 5531 | { | 5542 | { |
| 5543 | p->encode_coding_system | ||
| 5544 | = complement_process_encoding_system (p->encode_coding_system); | ||
| 5532 | if (!EQ (Vlast_coding_system_used, p->encode_coding_system)) | 5545 | if (!EQ (Vlast_coding_system_used, p->encode_coding_system)) |
| 5533 | /* The coding system for encoding was changed to raw-text | 5546 | { |
| 5534 | because we sent a unibyte text previously. Now we are | 5547 | /* The coding system for encoding was changed to raw-text |
| 5535 | sending a multibyte text, thus we must encode it by the | 5548 | because we sent a unibyte text previously. Now we are |
| 5536 | original coding system specified for the current process. */ | 5549 | sending a multibyte text, thus we must encode it by the |
| 5537 | setup_coding_system (p->encode_coding_system, coding); | 5550 | original coding system specified for the current process. |
| 5551 | |||
| 5552 | Another reason we comming here is that the coding system | ||
| 5553 | was just complemented and new one was returned by | ||
| 5554 | complement_process_encoding_system. */ | ||
| 5555 | setup_coding_system (p->encode_coding_system, coding); | ||
| 5556 | Vlast_coding_system_used = p->encode_coding_system; | ||
| 5557 | } | ||
| 5538 | coding->src_multibyte = 1; | 5558 | coding->src_multibyte = 1; |
| 5539 | } | 5559 | } |
| 5540 | else | 5560 | else |
diff --git a/src/xfont.c b/src/xfont.c index 0a7f4a3c97f..d4c6af17c49 100644 --- a/src/xfont.c +++ b/src/xfont.c | |||
| @@ -841,7 +841,7 @@ xfont_open (FRAME_PTR f, Lisp_Object entity, int pixel_size) | |||
| 841 | 841 | ||
| 842 | val = Ffont_get (font_object, QCavgwidth); | 842 | val = Ffont_get (font_object, QCavgwidth); |
| 843 | if (INTEGERP (val)) | 843 | if (INTEGERP (val)) |
| 844 | font->average_width = XINT (val); | 844 | font->average_width = XINT (val) / 10; |
| 845 | if (font->average_width < 0) | 845 | if (font->average_width < 0) |
| 846 | font->average_width = - font->average_width; | 846 | font->average_width = - font->average_width; |
| 847 | if (font->average_width == 0 | 847 | if (font->average_width == 0 |