diff options
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 37 | ||||
| -rw-r--r-- | lisp/emacs-lisp/advice.el | 13 | ||||
| -rw-r--r-- | lisp/emacs-lisp/nadvice.el | 11 | ||||
| -rw-r--r-- | lisp/gnus/ChangeLog | 17 | ||||
| -rw-r--r-- | lisp/gnus/nnimap.el | 5 | ||||
| -rw-r--r-- | lisp/progmodes/sql.el | 68 | ||||
| -rw-r--r-- | lisp/progmodes/which-func.el | 2 |
7 files changed, 103 insertions, 50 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d4a81bffd9c..f324ebbad51 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,29 @@ | |||
| 1 | 2013-01-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * emacs-lisp/nadvice.el (advice--tweak): Make it possible for `tweak' | ||
| 4 | to return an explicit nil. | ||
| 5 | (advice--remove-function): Change accordingly. | ||
| 6 | |||
| 7 | * emacs-lisp/advice.el (ad-preactivate-advice): Adjust the cleanup to | ||
| 8 | the use of nadvice.el. | ||
| 9 | |||
| 10 | * progmodes/which-func.el (which-function): Silence imenu errors | ||
| 11 | (bug#13433). | ||
| 12 | |||
| 13 | 2013-01-15 Michael R. Mauger <mmaug@yahoo.com> | ||
| 14 | |||
| 15 | * progmodes/sql.el: (sql-imenu-generic-expression): | ||
| 16 | (sql-mode-font-lock-object-name): Match schema qualified names. | ||
| 17 | (sql-connect): Use string keys. | ||
| 18 | (sql-product-interactive): Wait for interpreter prompt. | ||
| 19 | (sql-comint-oracle): Set process coding based on NLS_LANG. | ||
| 20 | |||
| 21 | 2013-01-15 Michael R. Mauger <mmaug@yahoo.com> | ||
| 22 | |||
| 23 | * progmodes/sql.el (sql-output-to-send): Remove, unused. | ||
| 24 | (sql-interactive-remove-continuation-prompt): | ||
| 25 | (sql-send-magic-terminator, sql-interactive-mode): Remove references. | ||
| 26 | |||
| 1 | 2013-01-14 Leo Liu <sdl.web@gmail.com> | 27 | 2013-01-14 Leo Liu <sdl.web@gmail.com> |
| 2 | 28 | ||
| 3 | * calendar/calendar.el (calendar-redraw): Sync window-point and point. | 29 | * calendar/calendar.el (calendar-redraw): Sync window-point and point. |
| @@ -10,22 +36,21 @@ | |||
| 10 | 36 | ||
| 11 | 2013-01-13 Fabián Ezequiel Gallina <fgallina@cuca> | 37 | 2013-01-13 Fabián Ezequiel Gallina <fgallina@cuca> |
| 12 | 38 | ||
| 13 | * progmodes/python.el (python-nav-end-of-statement): Fix | 39 | * progmodes/python.el (python-nav-end-of-statement): |
| 14 | cornercase when handling multiline strings. | 40 | Fix cornercase when handling multiline strings. |
| 15 | 41 | ||
| 16 | 2013-01-13 Richard Stallman <rms@gnu.org> | 42 | 2013-01-13 Richard Stallman <rms@gnu.org> |
| 17 | 43 | ||
| 18 | * mail/sendmail.el (mail-position-on-field): Add doc string. | 44 | * mail/sendmail.el (mail-position-on-field): Add doc string. |
| 19 | 45 | ||
| 20 | * mail/rmailmm.el (rmail-insert-mime-forwarded-message): Get | 46 | * mail/rmailmm.el (rmail-insert-mime-forwarded-message): |
| 21 | current message boundaries and pass them to | 47 | Get current message boundaries and pass them to |
| 22 | message-forward-make-body-mime. Minor style changes. | 48 | message-forward-make-body-mime. Minor style changes. |
| 23 | 49 | ||
| 24 | 2013-01-13 Eli Zaretskii <eliz@gnu.org> | 50 | 2013-01-13 Eli Zaretskii <eliz@gnu.org> |
| 25 | 51 | ||
| 26 | * cus-start.el (all): Avoid warnings about | 52 | * cus-start.el (all): Avoid warnings about |
| 27 | scroll-bar-adjust-thumb-portion on platforms where it is not | 53 | scroll-bar-adjust-thumb-portion on platforms where it is not defined. |
| 28 | defined. | ||
| 29 | 54 | ||
| 30 | 2013-01-11 Jan Djärv <jan.h.d@swipnet.se> | 55 | 2013-01-11 Jan Djärv <jan.h.d@swipnet.se> |
| 31 | 56 | ||
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el index 07340f06a13..3d03e894534 100644 --- a/lisp/emacs-lisp/advice.el +++ b/lisp/emacs-lisp/advice.el | |||
| @@ -2866,10 +2866,8 @@ advised definition from scratch." | |||
| 2866 | 2866 | ||
| 2867 | (defun ad-preactivate-advice (function advice class position) | 2867 | (defun ad-preactivate-advice (function advice class position) |
| 2868 | "Preactivate FUNCTION and returns the constructed cache." | 2868 | "Preactivate FUNCTION and returns the constructed cache." |
| 2869 | (let* ((function-defined-p (fboundp function)) | 2869 | (let* ((advicefunname (ad-get-advice-info-field function 'advicefunname)) |
| 2870 | (old-definition | 2870 | (old-advice (symbol-function advicefunname)) |
| 2871 | (if function-defined-p | ||
| 2872 | (symbol-function function))) | ||
| 2873 | (old-advice-info (ad-copy-advice-info function)) | 2871 | (old-advice-info (ad-copy-advice-info function)) |
| 2874 | (ad-advised-functions ad-advised-functions)) | 2872 | (ad-advised-functions ad-advised-functions)) |
| 2875 | (unwind-protect | 2873 | (unwind-protect |
| @@ -2883,10 +2881,9 @@ advised definition from scratch." | |||
| 2883 | (list (ad-get-cache-definition function) | 2881 | (list (ad-get-cache-definition function) |
| 2884 | (ad-get-cache-id function)))) | 2882 | (ad-get-cache-id function)))) |
| 2885 | (ad-set-advice-info function old-advice-info) | 2883 | (ad-set-advice-info function old-advice-info) |
| 2886 | ;; Don't `fset' function to nil if it was previously unbound: | 2884 | (advice-remove function advicefunname) |
| 2887 | (if function-defined-p | 2885 | (fset advicefunname old-advice) |
| 2888 | (fset function old-definition) | 2886 | (if old-advice (advice-add function :around advicefunname))))) |
| 2889 | (fmakunbound function))))) | ||
| 2890 | 2887 | ||
| 2891 | 2888 | ||
| 2892 | ;; @@ Activation and definition handling: | 2889 | ;; @@ Activation and definition handling: |
diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el index 1715763d482..b0711fed26c 100644 --- a/lisp/emacs-lisp/nadvice.el +++ b/lisp/emacs-lisp/nadvice.el | |||
| @@ -173,20 +173,21 @@ WHERE is a symbol to select an entry in `advice--where-alist'." | |||
| 173 | (let ((first (advice--car flist)) | 173 | (let ((first (advice--car flist)) |
| 174 | (rest (advice--cdr flist)) | 174 | (rest (advice--cdr flist)) |
| 175 | (props (advice--props flist))) | 175 | (props (advice--props flist))) |
| 176 | (or (funcall tweaker first rest props) | 176 | (let ((val (funcall tweaker first rest props))) |
| 177 | (if val (car val) | ||
| 177 | (let ((nrest (advice--tweak rest tweaker))) | 178 | (let ((nrest (advice--tweak rest tweaker))) |
| 178 | (if (eq rest nrest) flist | 179 | (if (eq rest nrest) flist |
| 179 | (advice--make-1 (aref flist 1) (aref flist 3) | 180 | (advice--make-1 (aref flist 1) (aref flist 3) |
| 180 | first nrest props))))))) | 181 | first nrest props)))))))) |
| 181 | 182 | ||
| 182 | ;;;###autoload | 183 | ;;;###autoload |
| 183 | (defun advice--remove-function (flist function) | 184 | (defun advice--remove-function (flist function) |
| 184 | (advice--tweak flist | 185 | (advice--tweak flist |
| 185 | (lambda (first rest props) | 186 | (lambda (first rest props) |
| 186 | (if (or (not first) | 187 | (cond ((not first) rest) |
| 187 | (equal function first) | 188 | ((or (equal function first) |
| 188 | (equal function (cdr (assq 'name props)))) | 189 | (equal function (cdr (assq 'name props)))) |
| 189 | rest)))) | 190 | (list rest)))))) |
| 190 | 191 | ||
| 191 | (defvar advice--buffer-local-function-sample nil) | 192 | (defvar advice--buffer-local-function-sample nil) |
| 192 | 193 | ||
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 2b09a1f456c..733f1d26510 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,7 +1,12 @@ | |||
| 1 | 2013-01-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * nnimap.el (nnimap-keepalive): Don't throw an error if there's no more | ||
| 4 | imap process running. | ||
| 5 | |||
| 1 | 2013-01-14 Julien Danjou <julien@danjou.info> | 6 | 2013-01-14 Julien Danjou <julien@danjou.info> |
| 2 | 7 | ||
| 3 | * gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): Compare | 8 | * gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): |
| 4 | addresses against addresses, not against the full From field. | 9 | Compare addresses against addresses, not against the full From field. |
| 5 | 10 | ||
| 6 | 2013-01-13 Richard Stallman <rms@gnu.org> | 11 | 2013-01-13 Richard Stallman <rms@gnu.org> |
| 7 | 12 | ||
| @@ -178,8 +183,8 @@ | |||
| 178 | the `face' property with a list whose car is the face specified in the | 183 | the `face' property with a list whose car is the face specified in the |
| 179 | format string and whose cdr is (nil). | 184 | format string and whose cdr is (nil). |
| 180 | * lisp/gnus-util.el | 185 | * lisp/gnus-util.el |
| 181 | (gnus-put-text-property-excluding-characters-with-faces): Change | 186 | (gnus-put-text-property-excluding-characters-with-faces): |
| 182 | accordingly. | 187 | Change accordingly. |
| 183 | (gnus-get-text-property-excluding-characters-with-faces): New function. | 188 | (gnus-get-text-property-excluding-characters-with-faces): New function. |
| 184 | * lisp/gnus-sum.el (gnus-summary-highlight-line): | 189 | * lisp/gnus-sum.el (gnus-summary-highlight-line): |
| 185 | * lisp/gnus-salt.el (gnus-tree-highlight-node): | 190 | * lisp/gnus-salt.el (gnus-tree-highlight-node): |
| @@ -227,8 +232,8 @@ | |||
| 227 | 232 | ||
| 228 | 2012-12-22 Philipp Haselwarter <philipp@haselwarter.org> | 233 | 2012-12-22 Philipp Haselwarter <philipp@haselwarter.org> |
| 229 | 234 | ||
| 230 | * gnus-sync.el (gnus-sync-file-encrypt-to, gnus-sync-save): Set | 235 | * gnus-sync.el (gnus-sync-file-encrypt-to, gnus-sync-save): |
| 231 | epa-file-encrypt-to from variable to avoid querying. | 236 | Set epa-file-encrypt-to from variable to avoid querying. |
| 232 | 237 | ||
| 233 | 2012-12-14 Akinori MUSHA <knu@iDaemons.org> (tiny change) | 238 | 2012-12-14 Akinori MUSHA <knu@iDaemons.org> (tiny change) |
| 234 | 239 | ||
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index ea579fa3a2b..9c18bc2cff0 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el | |||
| @@ -339,7 +339,8 @@ textual parts.") | |||
| 339 | (nnimap-last-command-time nnimap-object))) | 339 | (nnimap-last-command-time nnimap-object))) |
| 340 | ;; More than five minutes since the last command. | 340 | ;; More than five minutes since the last command. |
| 341 | (* 5 60))) | 341 | (* 5 60))) |
| 342 | (nnimap-send-command "NOOP"))))))) | 342 | (ignore-errors ;E.g. "buffer foo has no process". |
| 343 | (nnimap-send-command "NOOP")))))))) | ||
| 343 | 344 | ||
| 344 | (defun nnimap-open-connection (buffer) | 345 | (defun nnimap-open-connection (buffer) |
| 345 | ;; Be backwards-compatible -- the earlier value of nnimap-stream was | 346 | ;; Be backwards-compatible -- the earlier value of nnimap-stream was |
| @@ -367,7 +368,7 @@ textual parts.") | |||
| 367 | (defun nnimap-open-connection-1 (buffer) | 368 | (defun nnimap-open-connection-1 (buffer) |
| 368 | (unless nnimap-keepalive-timer | 369 | (unless nnimap-keepalive-timer |
| 369 | (setq nnimap-keepalive-timer (run-at-time (* 60 15) (* 60 15) | 370 | (setq nnimap-keepalive-timer (run-at-time (* 60 15) (* 60 15) |
| 370 | 'nnimap-keepalive))) | 371 | #'nnimap-keepalive))) |
| 371 | (with-current-buffer (nnimap-make-process-buffer buffer) | 372 | (with-current-buffer (nnimap-make-process-buffer buffer) |
| 372 | (let* ((coding-system-for-read 'binary) | 373 | (let* ((coding-system-for-read 'binary) |
| 373 | (coding-system-for-write 'binary) | 374 | (coding-system-for-write 'binary) |
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el index 453386cdba5..781aa241802 100644 --- a/lisp/progmodes/sql.el +++ b/lisp/progmodes/sql.el | |||
| @@ -723,15 +723,15 @@ this variable is nil, that buffer is shown using | |||
| 723 | 723 | ||
| 724 | (defvar sql-imenu-generic-expression | 724 | (defvar sql-imenu-generic-expression |
| 725 | ;; Items are in reverse order because they are rendered in reverse. | 725 | ;; Items are in reverse order because they are rendered in reverse. |
| 726 | '(("Rules/Defaults" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*\\(?:rule\\|default\\)\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\s-+\\(\\w+\\)" 1) | 726 | '(("Rules/Defaults" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*\\(?:rule\\|default\\)\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\s-+\\(\\(?:\\w+\\s-*[.]\\s-*\\)*\\w+\\)" 1) |
| 727 | ("Sequences" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*sequence\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\w+\\)" 1) | 727 | ("Sequences" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*sequence\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\(?:\\w+\\s-*[.]\\s-*\\)*\\w+\\)" 1) |
| 728 | ("Triggers" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*trigger\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\w+\\)" 1) | 728 | ("Triggers" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*trigger\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\(?:\\w+\\s-*[.]\\s-*\\)*\\w+\\)" 1) |
| 729 | ("Functions" "^\\s-*\\(?:create\\s-+\\(?:\\w+\\s-+\\)*\\)?function\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\w+\\)" 1) | 729 | ("Functions" "^\\s-*\\(?:create\\s-+\\(?:\\w+\\s-+\\)*\\)?function\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\(?:\\w+\\s-*[.]\\s-*\\)*\\w+\\)" 1) |
| 730 | ("Procedures" "^\\s-*\\(?:create\\s-+\\(?:\\w+\\s-+\\)*\\)?proc\\(?:edure\\)?\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\w+\\)" 1) | 730 | ("Procedures" "^\\s-*\\(?:create\\s-+\\(?:\\w+\\s-+\\)*\\)?proc\\(?:edure\\)?\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\(?:\\w+\\s-*[.]\\s-*\\)*\\w+\\)" 1) |
| 731 | ("Packages" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*package\\s-+\\(?:body\\s-+\\)?\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\w+\\)" 1) | 731 | ("Packages" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*package\\s-+\\(?:body\\s-+\\)?\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\(?:\\w+\\s-*[.]\\s-*\\)*\\w+\\)" 1) |
| 732 | ("Types" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*type\\s-+\\(?:body\\s-+\\)?\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\w+\\)" 1) | 732 | ("Types" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*type\\s-+\\(?:body\\s-+\\)?\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\(?:\\w+\\s-*[.]\\s-*\\)*\\w+\\)" 1) |
| 733 | ("Indexes" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*index\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\w+\\)" 1) | 733 | ("Indexes" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*index\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\(?:\\w+\\s-*[.]\\s-*\\)*\\w+\\)" 1) |
| 734 | ("Tables/Views" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*\\(?:table\\|view\\)\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\w+\\)" 1)) | 734 | ("Tables/Views" "^\\s-*create\\s-+\\(?:\\w+\\s-+\\)*\\(?:table\\|view\\)\\s-+\\(?:if\\s-+not\\s-+exists\\s-+\\)?\\(\\(?:\\w+\\s-*[.]\\s-*\\)*\\w+\\)" 1)) |
| 735 | "Define interesting points in the SQL buffer for `imenu'. | 735 | "Define interesting points in the SQL buffer for `imenu'. |
| 736 | 736 | ||
| 737 | This is used to set `imenu-generic-expression' when SQL mode is | 737 | This is used to set `imenu-generic-expression' when SQL mode is |
| @@ -1313,7 +1313,7 @@ Based on `comint-mode-map'.") | |||
| 1313 | "\\(?:table\\|view\\|\\(?:package\\|type\\)\\(?:\\s-+body\\)?\\|proc\\(?:edure\\)?" | 1313 | "\\(?:table\\|view\\|\\(?:package\\|type\\)\\(?:\\s-+body\\)?\\|proc\\(?:edure\\)?" |
| 1314 | "\\|function\\|trigger\\|sequence\\|rule\\|default\\)\\s-+" | 1314 | "\\|function\\|trigger\\|sequence\\|rule\\|default\\)\\s-+" |
| 1315 | "\\(?:if\\s-+not\\s-+exists\\s-+\\)?" ;; IF NOT EXISTS | 1315 | "\\(?:if\\s-+not\\s-+exists\\s-+\\)?" ;; IF NOT EXISTS |
| 1316 | "\\(\\w+\\)") | 1316 | "\\(\\w+\\(?:\\s-*[.]\\s-*\\w+\\)*\\)") |
| 1317 | 1 'font-lock-function-name-face)) | 1317 | 1 'font-lock-function-name-face)) |
| 1318 | 1318 | ||
| 1319 | "Pattern to match the names of top-level objects. | 1319 | "Pattern to match the names of top-level objects. |
| @@ -3219,9 +3219,6 @@ Every newline in STRING will be preceded with a space and a backslash." | |||
| 3219 | 3219 | ||
| 3220 | Allows the suppression of continuation prompts.") | 3220 | Allows the suppression of continuation prompts.") |
| 3221 | 3221 | ||
| 3222 | (defvar sql-output-by-send nil | ||
| 3223 | "Non-nil if the command in the input was generated by `sql-send-string'.") | ||
| 3224 | |||
| 3225 | (defun sql-input-sender (proc string) | 3222 | (defun sql-input-sender (proc string) |
| 3226 | "Send STRING to PROC after applying filters." | 3223 | "Send STRING to PROC after applying filters." |
| 3227 | 3224 | ||
| @@ -3288,8 +3285,7 @@ to avoid deleting non-prompt output." | |||
| 3288 | 3285 | ||
| 3289 | (if (= sql-output-newline-count 0) | 3286 | (if (= sql-output-newline-count 0) |
| 3290 | (setq sql-output-newline-count nil | 3287 | (setq sql-output-newline-count nil |
| 3291 | oline (concat "\n" oline) | 3288 | oline (concat "\n" oline)) |
| 3292 | sql-output-by-send nil) | ||
| 3293 | 3289 | ||
| 3294 | (setq sql-preoutput-hold oline | 3290 | (setq sql-preoutput-hold oline |
| 3295 | oline "")) | 3291 | oline "")) |
| @@ -3383,8 +3379,7 @@ to avoid deleting non-prompt output." | |||
| 3383 | (setq sql-output-newline-count | 3379 | (setq sql-output-newline-count |
| 3384 | (if sql-output-newline-count | 3380 | (if sql-output-newline-count |
| 3385 | (1+ sql-output-newline-count) | 3381 | (1+ sql-output-newline-count) |
| 3386 | 1))) | 3382 | 1))))) |
| 3387 | (setq sql-output-by-send t))) | ||
| 3388 | 3383 | ||
| 3389 | (defun sql-remove-tabs-filter (str) | 3384 | (defun sql-remove-tabs-filter (str) |
| 3390 | "Replace tab characters with spaces." | 3385 | "Replace tab characters with spaces." |
| @@ -3857,7 +3852,6 @@ you entered, right above the output it created. | |||
| 3857 | (sql-get-product-feature sql-product :prompt-cont-regexp)) | 3852 | (sql-get-product-feature sql-product :prompt-cont-regexp)) |
| 3858 | (make-local-variable 'sql-output-newline-count) | 3853 | (make-local-variable 'sql-output-newline-count) |
| 3859 | (make-local-variable 'sql-preoutput-hold) | 3854 | (make-local-variable 'sql-preoutput-hold) |
| 3860 | (make-local-variable 'sql-output-by-send) | ||
| 3861 | (add-hook 'comint-preoutput-filter-functions | 3855 | (add-hook 'comint-preoutput-filter-functions |
| 3862 | 'sql-interactive-remove-continuation-prompt nil t) | 3856 | 'sql-interactive-remove-continuation-prompt nil t) |
| 3863 | (make-local-variable 'sql-input-ring-separator) | 3857 | (make-local-variable 'sql-input-ring-separator) |
| @@ -3930,7 +3924,7 @@ is specified in the connection settings." | |||
| 3930 | ;; Was one selected | 3924 | ;; Was one selected |
| 3931 | (when connection | 3925 | (when connection |
| 3932 | ;; Get connection settings | 3926 | ;; Get connection settings |
| 3933 | (let ((connect-set (assoc connection sql-connection-alist))) | 3927 | (let ((connect-set (assoc-string connection sql-connection-alist t))) |
| 3934 | ;; Settings are defined | 3928 | ;; Settings are defined |
| 3935 | (if connect-set | 3929 | (if connect-set |
| 3936 | ;; Set the desired parameters | 3930 | ;; Set the desired parameters |
| @@ -4134,9 +4128,17 @@ the call to \\[sql-product-interactive] with | |||
| 4134 | (setq sql-buffer (buffer-name new-sqli-buffer)) | 4128 | (setq sql-buffer (buffer-name new-sqli-buffer)) |
| 4135 | (run-hooks 'sql-set-sqli-hook))) | 4129 | (run-hooks 'sql-set-sqli-hook))) |
| 4136 | 4130 | ||
| 4131 | ;; Make sure the connection is complete | ||
| 4132 | ;; (Sometimes start up can be slow) | ||
| 4133 | ;; and call the login hook | ||
| 4134 | (let ((proc (get-buffer-process new-sqli-buffer))) | ||
| 4135 | (while (and (memq (process-status proc) '(open run)) | ||
| 4136 | (accept-process-output proc 2.5) | ||
| 4137 | (progn (goto-char (point-max)) | ||
| 4138 | (not (looking-back sql-prompt-regexp)))))) | ||
| 4139 | (run-hooks 'sql-login-hook) | ||
| 4137 | ;; All done. | 4140 | ;; All done. |
| 4138 | (message "Login...done") | 4141 | (message "Login...done") |
| 4139 | (run-hooks 'sql-login-hook) | ||
| 4140 | (pop-to-buffer new-sqli-buffer))))) | 4142 | (pop-to-buffer new-sqli-buffer))))) |
| 4141 | (message "No default SQL product defined. Set `sql-product'."))) | 4143 | (message "No default SQL product defined. Set `sql-product'."))) |
| 4142 | 4144 | ||
| @@ -4202,7 +4204,7 @@ The default comes from `process-coding-system-alist' and | |||
| 4202 | ;; is meaningless; database without user/password is meaningless, | 4204 | ;; is meaningless; database without user/password is meaningless, |
| 4203 | ;; because "@param" will ask sqlplus to interpret the script | 4205 | ;; because "@param" will ask sqlplus to interpret the script |
| 4204 | ;; "param". | 4206 | ;; "param". |
| 4205 | (let ((parameter nil)) | 4207 | (let (parameter nlslang coding) |
| 4206 | (if (not (string= "" sql-user)) | 4208 | (if (not (string= "" sql-user)) |
| 4207 | (if (not (string= "" sql-password)) | 4209 | (if (not (string= "" sql-password)) |
| 4208 | (setq parameter (concat sql-user "/" sql-password)) | 4210 | (setq parameter (concat sql-user "/" sql-password)) |
| @@ -4212,7 +4214,29 @@ The default comes from `process-coding-system-alist' and | |||
| 4212 | (if parameter | 4214 | (if parameter |
| 4213 | (setq parameter (nconc (list parameter) options)) | 4215 | (setq parameter (nconc (list parameter) options)) |
| 4214 | (setq parameter options)) | 4216 | (setq parameter options)) |
| 4215 | (sql-comint product parameter))) | 4217 | (sql-comint product parameter) |
| 4218 | ;; Set process coding system to agree with the interpreter | ||
| 4219 | (setq nlslang (or (getenv "NLS_LANG") "") | ||
| 4220 | coding (dolist (cs | ||
| 4221 | ;; Are we missing any common NLS character sets | ||
| 4222 | '(("US8PC437" . cp437) | ||
| 4223 | ("EL8PC737" . cp737) | ||
| 4224 | ("WE8PC850" . cp850) | ||
| 4225 | ("EE8PC852" . cp852) | ||
| 4226 | ("TR8PC857" . cp857) | ||
| 4227 | ("WE8PC858" . cp858) | ||
| 4228 | ("IS8PC861" . cp861) | ||
| 4229 | ("IW8PC1507" . cp862) | ||
| 4230 | ("N8PC865" . cp865) | ||
| 4231 | ("RU8PC866" . cp866) | ||
| 4232 | ("US7ASCII" . us-ascii) | ||
| 4233 | ("UTF8" . utf-8) | ||
| 4234 | ("AL32UTF8" . utf-8) | ||
| 4235 | ("AL16UTF16" . utf-16)) | ||
| 4236 | (or coding 'utf-8)) | ||
| 4237 | (when (string-match (format "\\.%s\\'" (car cs)) nlslang) | ||
| 4238 | (setq coding (cdr cs))))) | ||
| 4239 | (set-buffer-process-coding-system coding coding))) | ||
| 4216 | 4240 | ||
| 4217 | (defun sql-oracle-save-settings (sqlbuf) | 4241 | (defun sql-oracle-save-settings (sqlbuf) |
| 4218 | "Save most SQL*Plus settings so they may be reset by \\[sql-redirect]." | 4242 | "Save most SQL*Plus settings so they may be reset by \\[sql-redirect]." |
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el index adf378f6bc7..edfe368479c 100644 --- a/lisp/progmodes/which-func.el +++ b/lisp/progmodes/which-func.el | |||
| @@ -290,7 +290,7 @@ If no function name is found, return nil." | |||
| 290 | (when (and (null name) | 290 | (when (and (null name) |
| 291 | (boundp 'imenu--index-alist) (null imenu--index-alist) | 291 | (boundp 'imenu--index-alist) (null imenu--index-alist) |
| 292 | (null which-function-imenu-failed)) | 292 | (null which-function-imenu-failed)) |
| 293 | (imenu--make-index-alist t) | 293 | (ignore-errors (imenu--make-index-alist t)) |
| 294 | (unless imenu--index-alist | 294 | (unless imenu--index-alist |
| 295 | (set (make-local-variable 'which-function-imenu-failed) t))) | 295 | (set (make-local-variable 'which-function-imenu-failed) t))) |
| 296 | ;; If we have an index alist, use it. | 296 | ;; If we have an index alist, use it. |