aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Verona2013-04-10 08:30:26 +0200
committerJoakim Verona2013-04-10 08:30:26 +0200
commita1002a150a8497832b98f167cb4ecd807f1684e7 (patch)
treeda28ae5ac8a521b688e0d8eb60e9ea287edcdd5c
parentb7ef53c752790136ca12dcca9e291bf88c0e5bee (diff)
parentb60e25d6bc17deb6b553afb2cebe96e79dfadab5 (diff)
downloademacs-a1002a150a8497832b98f167cb4ecd807f1684e7.tar.gz
emacs-a1002a150a8497832b98f167cb4ecd807f1684e7.zip
auto upstream
-rwxr-xr-xautogen/configure2
-rw-r--r--etc/ChangeLog8
-rw-r--r--etc/NEWS5
-rw-r--r--etc/PROBLEMS5
-rw-r--r--etc/themes/tsdh-dark-theme.el3
-rw-r--r--lisp/ChangeLog11
-rw-r--r--lisp/pcmpl-x.el10
-rw-r--r--lisp/progmodes/sh-script.el23
-rw-r--r--lisp/simple.el4
-rw-r--r--src/ChangeLog5
-rw-r--r--src/minibuf.c8
-rw-r--r--test/ChangeLog4
-rw-r--r--test/automated/add-log-tests.el84
13 files changed, 161 insertions, 11 deletions
diff --git a/autogen/configure b/autogen/configure
index db574207d75..d4df3a49174 100755
--- a/autogen/configure
+++ b/autogen/configure
@@ -9842,7 +9842,7 @@ fi
9842 W32_RES="emacs.res" 9842 W32_RES="emacs.res"
9843 # Tell the linker that emacs.res is an object (which we compile from 9843 # Tell the linker that emacs.res is an object (which we compile from
9844 # the rc file), not a linker script. 9844 # the rc file), not a linker script.
9845 W32_RES_LINK="-Wl,-bpe-i386 -Wl,emacs.res" 9845 W32_RES_LINK="-Wl,emacs.res"
9846fi 9846fi
9847 9847
9848 9848
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 85b365695fd..493095e9621 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,11 @@
12013-04-09 Tassilo Horn <tsdh@gnu.org>
2
3 * themes/tsdh-dark-theme.el (tsdh-dark): Add some more faces.
4
52013-04-09 Masatake YAMATO <yamato@redhat.com>
6
7 * NEWS: Mention `sh-mode' own `add-log-current-defun-function'.
8
12013-04-07 Jan Djärv <jan.h.d@swipnet.se> 92013-04-07 Jan Djärv <jan.h.d@swipnet.se>
2 10
3 * PROBLEMS: Mention Ubuntu warnings about libdbusmenu. 11 * PROBLEMS: Mention Ubuntu warnings about libdbusmenu.
diff --git a/etc/NEWS b/etc/NEWS
index d893f496ef0..6014ee36219 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -84,6 +84,11 @@ Eg View mode, etc.
84 84
85** New command `kmacro-to-register' to store keyboard macros in registers. 85** New command `kmacro-to-register' to store keyboard macros in registers.
86 86
87** Shell Script mode
88
89*** `sh-mode' now has the mode own `add-log-current-defun-function'.
90You can pick the name of the function and the variables with `C-x 4 a'.
91
87 92
88* Changes in Specialized Modes and Packages in Emacs 24.4 93* Changes in Specialized Modes and Packages in Emacs 24.4
89 94
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index bc86c7cb373..0cfc0ad0c14 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -1412,17 +1412,16 @@ When you start Emacs you may see something like this:
1412(emacs:2286): LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertion 1412(emacs:2286): LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertion
1413`GTK_IS_MENU_SHELL(menu)' failed 1413`GTK_IS_MENU_SHELL(menu)' failed
1414 1414
1415This happens if the Emacs binary has been renamed. The cause it the Ubuntu 1415This happens if the Emacs binary has been renamed. The cause is the Ubuntu
1416appmenu concept. It tries to track Emacs menus and show them in the top 1416appmenu concept. It tries to track Emacs menus and show them in the top
1417panel, instead of in each Emacs window. This is not properly implemented, 1417panel, instead of in each Emacs window. This is not properly implemented,
1418so it fails for Emacs. The order of menus is wrong, and things like copy/paste 1418so it fails for Emacs. The order of menus is wrong, and things like copy/paste
1419that depends on what state Emacs is in, is usually wrong (i.e. paste disabled 1419that depend on what state Emacs is in are usually wrong (i.e. paste disabled
1420even if you should be able to paste, and similar). 1420even if you should be able to paste, and similar).
1421 1421
1422You can get back menus on each frame by starting emacs like this: 1422You can get back menus on each frame by starting emacs like this:
1423% env UBUNTU_MENUPROXY= emacs 1423% env UBUNTU_MENUPROXY= emacs
1424 1424
1425
1426* Runtime problems on character terminals 1425* Runtime problems on character terminals
1427 1426
1428** The meta key does not work on xterm. 1427** The meta key does not work on xterm.
diff --git a/etc/themes/tsdh-dark-theme.el b/etc/themes/tsdh-dark-theme.el
index 011133808a2..879f8f10e8a 100644
--- a/etc/themes/tsdh-dark-theme.el
+++ b/etc/themes/tsdh-dark-theme.el
@@ -64,7 +64,10 @@ Used and created by Tassilo Horn.")
64 '(highlight ((t (:background "sea green")))) 64 '(highlight ((t (:background "sea green"))))
65 '(hl-line ((t (:background "grey25")))) 65 '(hl-line ((t (:background "grey25"))))
66 '(hl-paren-face ((t (:weight bold))) t) 66 '(hl-paren-face ((t (:weight bold))) t)
67 '(icomplete-first-match ((t (:foreground "deep sky blue" :weight bold))))
67 '(lusty-file-face ((t (:foreground "SpringGreen1"))) t) 68 '(lusty-file-face ((t (:foreground "SpringGreen1"))) t)
69 '(magit-header ((t (:box 1 :weight bold))))
70 '(magit-section-title ((t (:inherit magit-header :background "dark slate blue"))))
68 '(menu ((t (:background "gray30" :foreground "gray70")))) 71 '(menu ((t (:background "gray30" :foreground "gray70"))))
69 '(minibuffer-prompt ((t (:background "yellow" :foreground "medium blue" :box (:line-width -1 :color "red" :style released-button) :weight bold)))) 72 '(minibuffer-prompt ((t (:background "yellow" :foreground "medium blue" :box (:line-width -1 :color "red" :style released-button) :weight bold))))
70 '(mode-line ((t (:box (:line-width 1 :color "red") :family "DejaVu Sans")))) 73 '(mode-line ((t (:box (:line-width 1 :color "red") :family "DejaVu Sans"))))
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 95aadd40fd6..01887620250 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,14 @@
12013-04-10 Masatake YAMATO <yamato@redhat.com>
2
3 * progmodes/sh-script.el: Implement `sh-mode' own
4 `add-log-current-defun-function' (bug#14112).
5 (sh-current-defun-name): New function.
6 (sh-mode): Use the function.
7
82013-04-09 Bastien Guerry <bzg@gnu.org>
9
10 * simple.el (choose-completion-string): Fix docstring (bug#14163).
11
12013-04-08 Stefan Monnier <monnier@iro.umontreal.ca> 122013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
2 13
3 * emacs-lisp/edebug.el (edebug-mode): Fix typo (bug#14144). 14 * emacs-lisp/edebug.el (edebug-mode): Fix typo (bug#14144).
diff --git a/lisp/pcmpl-x.el b/lisp/pcmpl-x.el
index 6ef592b969d..86d8dc652c3 100644
--- a/lisp/pcmpl-x.el
+++ b/lisp/pcmpl-x.el
@@ -1,23 +1,25 @@
1;;; pcmpl-x.el --- completion for miscellaneous tools -*- lexical-binding: t; -*- 1;;; pcmpl-x.el --- completion for miscellaneous tools -*- lexical-binding: t; -*-
2 2
3;; Copyright (C) 2013 Free Software Foundation, Inc. 3;; Copyright (C) 2013 Free Software Foundation, Inc.
4 4
5;; Author: Leo Liu <sdl.web@gmail.com> 5;; Author: Leo Liu <sdl.web@gmail.com>
6;; Keywords: processes, tools, convenience 6;; Keywords: processes, tools, convenience
7;; Package: pcomplete 7;; Package: pcomplete
8 8
9;; This program is free software; you can redistribute it and/or modify 9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is free software: you can redistribute it and/or modify
10;; it under the terms of the GNU General Public License as published by 12;; it under the terms of the GNU General Public License as published by
11;; the Free Software Foundation, either version 3 of the License, or 13;; the Free Software Foundation, either version 3 of the License, or
12;; (at your option) any later version. 14;; (at your option) any later version.
13 15
14;; This program is distributed in the hope that it will be useful, 16;; GNU Emacs is distributed in the hope that it will be useful,
15;; but WITHOUT ANY WARRANTY; without even the implied warranty of 17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;; GNU General Public License for more details. 19;; GNU General Public License for more details.
18 20
19;; You should have received a copy of the GNU General Public License 21;; You should have received a copy of the GNU General Public License
20;; along with this program. If not, see <http://www.gnu.org/licenses/>. 22;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
21 23
22;;; Code: 24;;; Code:
23 25
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 8f1954402e5..e197f9cfabe 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -353,6 +353,28 @@ See `sh-feature' and `imenu-generic-expression'."
353 :group 'sh-script 353 :group 'sh-script
354 :version "20.4") 354 :version "20.4")
355 355
356(defun sh-current-defun-name ()
357 "Find the name of function or variable at point.
358For use in `add-log-current-defun-function'."
359 (save-excursion
360 (end-of-line)
361 (when (re-search-backward
362 (concat "\\(?:"
363 ;; function FOO
364 ;; function FOO()
365 "^\\s-*function\\s-+\\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*\\(?:()\\)?"
366 "\\)\\|\\(?:"
367 ;; FOO()
368 "^\\s-*\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*()"
369 "\\)\\|\\(?:"
370 ;; FOO=
371 "^\\([[:alpha:]_][[:alnum:]_]*\\)="
372 "\\)")
373 nil t)
374 (or (match-string-no-properties 1)
375 (match-string-no-properties 2)
376 (match-string-no-properties 3)))))
377
356(defvar sh-shell-variables nil 378(defvar sh-shell-variables nil
357 "Alist of shell variable names that should be included in completion. 379 "Alist of shell variable names that should be included in completion.
358These are used for completion in addition to all the variables named 380These are used for completion in addition to all the variables named
@@ -1533,6 +1555,7 @@ with your script for an edit-interpret-debug cycle."
1533 (setq-local skeleton-newline-indent-rigidly t) 1555 (setq-local skeleton-newline-indent-rigidly t)
1534 (setq-local defun-prompt-regexp 1556 (setq-local defun-prompt-regexp
1535 (concat "^\\(function[ \t]\\|[[:alnum:]]+[ \t]+()[ \t]+\\)")) 1557 (concat "^\\(function[ \t]\\|[[:alnum:]]+[ \t]+()[ \t]+\\)"))
1558 (setq-local add-log-current-defun-function #'sh-current-defun-name)
1536 ;; Parse or insert magic number for exec, and set all variables depending 1559 ;; Parse or insert magic number for exec, and set all variables depending
1537 ;; on the shell thus determined. 1560 ;; on the shell thus determined.
1538 (sh-set-shell 1561 (sh-set-shell
diff --git a/lisp/simple.el b/lisp/simple.el
index 9baa1b7c884..5adb634e195 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -6628,7 +6628,9 @@ the default method of inserting the completion in BUFFER.")
6628(defun choose-completion-string (choice &optional 6628(defun choose-completion-string (choice &optional
6629 buffer base-position insert-function) 6629 buffer base-position insert-function)
6630 "Switch to BUFFER and insert the completion choice CHOICE. 6630 "Switch to BUFFER and insert the completion choice CHOICE.
6631BASE-POSITION, says where to insert the completion." 6631BASE-POSITION says where to insert the completion.
6632INSERT-FUNCTION says how to insert the completion and falls
6633back on `completion-list-insert-choice-function' when nil."
6632 6634
6633 ;; If BUFFER is the minibuffer, exit the minibuffer 6635 ;; If BUFFER is the minibuffer, exit the minibuffer
6634 ;; unless it is reading a file name and CHOICE is a directory, 6636 ;; unless it is reading a file name and CHOICE is a directory,
diff --git a/src/ChangeLog b/src/ChangeLog
index 04dcee7b6eb..402792b5460 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
4 tables (bug#14054).
5
12013-04-08 Stefan Monnier <monnier@iro.umontreal.ca> 62013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
2 7
3 * window.c (select_window): Don't record_buffer while the invariant is 8 * window.c (select_window): Don't record_buffer while the invariant is
diff --git a/src/minibuf.c b/src/minibuf.c
index 68c39310f01..4cc1f8d435a 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -1800,17 +1800,21 @@ the values STRING, PREDICATE and `lambda'. */)
1800 { 1800 {
1801 struct Lisp_Hash_Table *h = XHASH_TABLE (collection); 1801 struct Lisp_Hash_Table *h = XHASH_TABLE (collection);
1802 i = hash_lookup (h, string, NULL); 1802 i = hash_lookup (h, string, NULL);
1803 Lisp_Object key = Qnil;
1803 if (i >= 0) 1804 if (i >= 0)
1804 tem = HASH_KEY (h, i); 1805 tem = HASH_KEY (h, i);
1805 else 1806 else
1806 for (i = 0; i < HASH_TABLE_SIZE (h); ++i) 1807 for (i = 0; i < HASH_TABLE_SIZE (h); ++i)
1807 if (!NILP (HASH_HASH (h, i)) 1808 if (!NILP (HASH_HASH (h, i))
1809 && (key = HASH_KEY (h, i),
1810 SYMBOLP (key) ? key = Fsymbol_name (key) : key,
1811 STRINGP (key))
1808 && EQ (Fcompare_strings (string, make_number (0), Qnil, 1812 && EQ (Fcompare_strings (string, make_number (0), Qnil,
1809 HASH_KEY (h, i), make_number (0) , Qnil, 1813 key, make_number (0) , Qnil,
1810 completion_ignore_case ? Qt : Qnil), 1814 completion_ignore_case ? Qt : Qnil),
1811 Qt)) 1815 Qt))
1812 { 1816 {
1813 tem = HASH_KEY (h, i); 1817 tem = key;
1814 break; 1818 break;
1815 } 1819 }
1816 if (!STRINGP (tem)) 1820 if (!STRINGP (tem))
diff --git a/test/ChangeLog b/test/ChangeLog
index cd4414cd079..bf68984e9e8 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
12013-04-09 Masatake YAMATO <yamato@redhat.com>
2
3 * automated/add-log-tests.el: New file. (Bug#14112)
4
12013-03-30 Fabián Ezequiel Gallina <fabian@anue.biz> 52013-03-30 Fabián Ezequiel Gallina <fabian@anue.biz>
2 6
3 * automated/python-tests.el (python-indent-block-enders): New test. 7 * automated/python-tests.el (python-indent-block-enders): New test.
diff --git a/test/automated/add-log-tests.el b/test/automated/add-log-tests.el
new file mode 100644
index 00000000000..28029e18b99
--- /dev/null
+++ b/test/automated/add-log-tests.el
@@ -0,0 +1,84 @@
1;;; add-log-tests.el --- Test suite for add-log.
2
3;; Copyright (C) 2013 Free Software Foundation, Inc.
4
5;; Author: Masatake YAMATO <yamato@redhat.com>
6;; Keywords: vc tools
7
8;; This file is part of GNU Emacs.
9
10;; GNU Emacs is free software: you can redistribute it and/or modify
11;; it under the terms of the GNU General Public License as published by
12;; the Free Software Foundation, either version 3 of the License, or
13;; (at your option) any later version.
14
15;; GNU Emacs is distributed in the hope that it will be useful,
16;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;; GNU General Public License for more details.
19
20;; You should have received a copy of the GNU General Public License
21;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
22
23;;; Code:
24
25(require 'add-log)
26
27(defmacro add-log-current-defun-deftest (name doc major-mode
28 content marker expected-defun)
29 "Generate an ert test for mode-own `add-log-current-defun-function'.
30Run `add-log-current-defun' at the point where MARKER specifies in a
31buffer which content is CONTENT under MAJOR-MODE. Then it compares the
32result with EXPECTED-DEFUN."
33 (let ((xname (intern (concat "add-log-current-defun-test-"
34 (symbol-name name)
35 ))))
36 `(ert-deftest ,xname ()
37 ,doc
38 (with-temp-buffer
39 (insert ,content)
40 (goto-char (point-min))
41 (funcall ',major-mode)
42 (should (equal (when (search-forward ,marker nil t)
43 (replace-match "" nil t)
44 (add-log-current-defun))
45 ,expected-defun))))))
46
47(add-log-current-defun-deftest
48 sh-func1
49 "Test sh-current-defun-name can find function."
50 sh-mode "
51function foo
52{
53 ><
54}" "><" "foo")
55
56(add-log-current-defun-deftest
57 sh-func2
58 "Test sh-current-defun-name can find function."
59 sh-mode "
60foo()
61{
62 ><
63}" "><" "foo")
64
65(add-log-current-defun-deftest
66 sh-func3
67 "Test sh-current-defun-name can find function."
68 sh-mode "
69function foo()
70{
71 ><
72}" "><" "foo")
73
74(add-log-current-defun-deftest
75 sh-var
76 "Test sh-current-defun-name can find variabe definition."
77 sh-mode "
78PATH=a:/ab:/usr/abc
79DIR=/pr><oc"
80"><" "DIR")
81
82(provide 'add-log-tests)
83
84;;; add-log-tests.el ends here