------------------------------------------------------------ revno: 114716 committer: Jan D. branch nick: trunk timestamp: Sat 2013-10-19 10:23:43 +0200 message: * menu-bar.el: Don't make Services menu. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-10-19 02:35:20 +0000 +++ lisp/ChangeLog 2013-10-19 08:23:43 +0000 @@ -1,3 +1,7 @@ +2013-10-19 Jan Djärv + + * menu-bar.el: Don't make Services menu. + 2013-10-19 Rüdiger Sonderfeld * ffap.el: Handle "/usr/include/c++/" directories. === modified file 'lisp/menu-bar.el' --- lisp/menu-bar.el 2013-10-15 18:40:22 +0000 +++ lisp/menu-bar.el 2013-10-19 08:23:43 +0000 @@ -54,9 +54,7 @@ :help "Save unsaved buffers, then exit")) (bindings--define-key global-map [menu-bar hide-app] '(menu-item "Hide" ns-do-hide-emacs - :help "Hide Emacs"))) - (bindings--define-key global-map [menu-bar services] ; Set-up in ns-win. - (cons "Services" (make-sparse-keymap "Services")))) + :help "Hide Emacs")))) ;; This definition is just to show what this looks like. ;; It gets modified in place when menu-bar-update-buffers is called. ------------------------------------------------------------ revno: 114715 author: Rüdiger Sonderfeld committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-10-18 19:35:20 -0700 message: ffap.el: handle "/usr/include/c++/" directories. Ref: http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00387.html * lisp/ffap.el (ffap-alist): Use ffap-c++-mode for c++-mode. (ffap-c++-path): New variable. (ffap-c++-mode): New function. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-10-19 00:39:31 +0000 +++ lisp/ChangeLog 2013-10-19 02:35:20 +0000 @@ -1,3 +1,10 @@ +2013-10-19 Rüdiger Sonderfeld + + * ffap.el: Handle "/usr/include/c++/" directories. + (ffap-alist): Use ffap-c++-mode for c++-mode. + (ffap-c++-path): New variable. + (ffap-c++-mode): New function. + 2013-10-19 Joe Vornehm Jr. (tiny change) * ido.el (dired-other-frame): Only list directories. (Bug#15638) === modified file 'lisp/ffap.el' --- lisp/ffap.el 2013-08-09 23:08:46 +0000 +++ lisp/ffap.el 2013-10-19 02:35:20 +0000 @@ -769,7 +769,7 @@ ;; (lisp-interaction-mode . ffap-el-mode) ; maybe (finder-mode . ffap-el-mode) ; type {C-h p} and try it (help-mode . ffap-el-mode) ; maybe useful - (c++-mode . ffap-c-mode) ; search ffap-c-path + (c++-mode . ffap-c++-mode) ; search ffap-c++-path (cc-mode . ffap-c-mode) ; same ("\\.\\([chCH]\\|cc\\|hh\\)\\'" . ffap-c-mode) ; stdio.h (fortran-mode . ffap-fortran-mode) ; FORTRAN requested by MDB @@ -866,6 +866,28 @@ (defun ffap-c-mode (name) (ffap-locate-file name t ffap-c-path)) +(defvar ffap-c++-path + (let ((c++-include-dir (with-temp-buffer + (when (eq 0 (ignore-errors + (call-process "g++" nil t nil "-v"))) + (goto-char (point-min)) + (if (re-search-forward "--with-gxx-include-dir=\ +\\([^[:space:]]+\\)" + nil 'noerror) + (match-string 1) + (when (re-search-forward "gcc version \ +\\([[:digit:]]+.[[:digit:]]+.[[:digit:]]+\\)" + nil 'noerror) + (expand-file-name (match-string 1) + "/usr/include/c++/"))))))) + (if c++-include-dir + (cons c++-include-dir ffap-c-path) + ffap-c-path)) + "List of directories to search for include files.") + +(defun ffap-c++-mode (name) + (ffap-locate-file name t ffap-c++-path)) + (defvar ffap-fortran-path '("../include" "/usr/include")) (defun ffap-fortran-mode (name) ------------------------------------------------------------ revno: 114714 fixes bug: http://debbugs.gnu.org/15638 author: Joe Vornehm Jr. committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-10-18 20:39:31 -0400 message: * lisp/ido.el (dired-other-frame): Only list directories. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-10-18 10:22:02 +0000 +++ lisp/ChangeLog 2013-10-19 00:39:31 +0000 @@ -1,3 +1,7 @@ +2013-10-19 Joe Vornehm Jr. (tiny change) + + * ido.el (dired-other-frame): Only list directories. (Bug#15638) + 2013-10-18 Michael Albinus * net/tramp-smb.el (tramp-smb-maybe-open-connection): Fix an error === modified file 'lisp/ido.el' --- lisp/ido.el 2013-08-09 00:54:22 +0000 +++ lisp/ido.el 2013-10-19 00:39:31 +0000 @@ -4740,6 +4740,7 @@ (put 'ibuffer-find-file 'ido 'find-file) (put 'dired 'ido 'dir) (put 'dired-other-window 'ido 'dir) +(put 'dired-other-frame 'ido 'dir) ;; See http://debbugs.gnu.org/11954 for reasons. (put 'dired-do-copy 'ido 'ignore) (put 'dired-do-rename 'ido 'ignore) ------------------------------------------------------------ revno: 114713 committer: Xue Fuqiao branch nick: trunk timestamp: Fri 2013-10-18 22:27:44 +0800 message: Another index for line height. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-10-18 14:22:55 +0000 +++ doc/lispref/ChangeLog 2013-10-18 14:27:44 +0000 @@ -1,6 +1,6 @@ 2013-10-18 Xue Fuqiao - * display.texi (Line Height): Add an index for line height. + * display.texi (Line Height): Add indexes for line height. 2013-10-17 Xue Fuqiao === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2013-10-18 14:22:55 +0000 +++ doc/lispref/display.texi 2013-10-18 14:27:44 +0000 @@ -1847,6 +1847,7 @@ to bring the total line height up to @var{total}. In this case, the other ways to specify the line spacing are ignored. +@cindex height spec Any other kind of property value is a height spec, which translates into a number---the specified line height. There are several ways to write a height spec; here's how each of them translates into a number: ------------------------------------------------------------ revno: 114712 committer: Xue Fuqiao branch nick: trunk timestamp: Fri 2013-10-18 22:22:55 +0800 message: * doc/lispref/display.texi (Line Height): Add an index for line height. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-10-17 13:46:44 +0000 +++ doc/lispref/ChangeLog 2013-10-18 14:22:55 +0000 @@ -1,3 +1,7 @@ +2013-10-18 Xue Fuqiao + + * display.texi (Line Height): Add an index for line height. + 2013-10-17 Xue Fuqiao * display.texi (Width): Fix arguments of ‘truncate-string-to-width’. === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2013-10-17 13:56:37 +0000 +++ doc/lispref/display.texi 2013-10-18 14:22:55 +0000 @@ -1812,6 +1812,7 @@ @node Line Height @section Line Height @cindex line height +@cindex height of a line The total height of each display line consists of the height of the contents of the line, plus optional additional vertical line spacing ------------------------------------------------------------ revno: 114711 committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2013-10-18 16:33:25 +0300 message: Fix clicks on the menu bar when GPM mouse is in use. src/keyboard.c (make_lispy_event): Remove GPM-specific code that handles mouse clicks. Instead, let GPM use the same code as all the other mice use. See the discussion starting at http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00521.html for the details of the problem with the menu bar this fixes. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-10-18 12:57:44 +0000 +++ src/ChangeLog 2013-10-18 13:33:25 +0000 @@ -1,3 +1,11 @@ +2013-10-18 Eli Zaretskii + + * keyboard.c (make_lispy_event): Remove GPM-specific code that + handles mouse clicks. Instead, let GPM use the same code as all + the other mice use. See the discussion starting at + http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00521.html + for the details of the problem with the menu bar this fixes. + 2013-10-18 Dmitry Antipov Remove port-specific display name lists to avoid extra === modified file 'src/keyboard.c' --- src/keyboard.c 2013-10-18 04:27:34 +0000 +++ src/keyboard.c 2013-10-18 13:33:25 +0000 @@ -5547,6 +5547,9 @@ /* A mouse click. Figure out where it is, decide whether it's a press, click or drag, and build the appropriate structure. */ case MOUSE_CLICK_EVENT: +#ifdef HAVE_GPM + case GPM_CLICK_EVENT: +#endif #ifndef USE_TOOLKIT_SCROLL_BARS case SCROLL_BAR_CLICK_EVENT: #endif @@ -5560,7 +5563,11 @@ position = Qnil; /* Build the position as appropriate for this mouse click. */ - if (event->kind == MOUSE_CLICK_EVENT) + if (event->kind == MOUSE_CLICK_EVENT +#ifdef HAVE_GPM + || event->kind == GPM_CLICK_EVENT +#endif + ) { struct frame *f = XFRAME (event->frame_or_window); int row, column; @@ -6025,55 +6032,6 @@ case CONFIG_CHANGED_EVENT: return list3 (Qconfig_changed_event, event->arg, event->frame_or_window); -#ifdef HAVE_GPM - case GPM_CLICK_EVENT: - { - struct frame *f = XFRAME (event->frame_or_window); - Lisp_Object head, position; - Lisp_Object *start_pos_ptr; - Lisp_Object start_pos; - int button = event->code; - - if (button >= ASIZE (button_down_location)) - { - ptrdiff_t incr = button - ASIZE (button_down_location) + 1; - button_down_location = larger_vector (button_down_location, - incr, -1); - mouse_syms = larger_vector (mouse_syms, incr, -1); - } - - start_pos_ptr = aref_addr (button_down_location, button); - start_pos = *start_pos_ptr; - - position = make_lispy_position (f, event->x, event->y, - event->timestamp); - - if (event->modifiers & down_modifier) - *start_pos_ptr = Fcopy_alist (position); - else if (event->modifiers & (up_modifier | drag_modifier)) - { - if (!CONSP (start_pos)) - return Qnil; - event->modifiers &= ~up_modifier; - } - - head = modify_event_symbol (button, - event->modifiers, - Qmouse_click, Vlispy_mouse_stem, - NULL, - &mouse_syms, - ASIZE (mouse_syms)); - - if (event->modifiers & drag_modifier) - return list3 (head, start_pos, position); - else if (event->modifiers & double_modifier) - return list3 (head, position, make_number (2)); - else if (event->modifiers & triple_modifier) - return list3 (head, position, make_number (3)); - else - return list2 (head, position); - } -#endif /* HAVE_GPM */ /* The 'kind' field of the event is something we don't recognize. */ default: ------------------------------------------------------------ revno: 114710 committer: Dmitry Antipov branch nick: trunk timestamp: Fri 2013-10-18 16:57:44 +0400 message: Remove port-specific display name lists to avoid extra complexity and data duplication with display info lists. * xterm.h (x_display_name_list): Remove declaration. * xterm.c (x_display_name_list): Remove. (x_term_init, x_delete_display, syms_of_xterm): Adjust users. * xfns.c (x_display_info_for_name, Fx_display_list): Likewise. Use x_display_list where appropriate. * w32term.h (w32_display_name_list): Remove declaration. * w32term.c (w32_display_name_list): Remove. (w32_initialize_display_info, x_delete_display, syms_of_w32term): Adjust users. * w32fns.c (x_display_info_for_name, Fx_display_list): Likewise. Use x_display_list where appropriate. * nsterm.h (ns_display_name_list): Remove declaration. * nsterm.m (ns_display_name_list): Remove. (ns_term_init, syms_of_nsterm): Adjust users. * nsfns.m (ns_display_info_for_name, Fx_display_list): Likewise. Use x_display_list where appropriate. * termhooks.h (TERMINAL_FONT_CACHE): New macro. * alloc.c (toplevel) [HAVE_WINDOW_SYSTEM]: Include TERM_HEADER. (mark_terminals): Mark per-terminal font cache. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-10-18 04:27:34 +0000 +++ src/ChangeLog 2013-10-18 12:57:44 +0000 @@ -1,3 +1,27 @@ +2013-10-18 Dmitry Antipov + + Remove port-specific display name lists to avoid extra + complexity and data duplication with display info lists. + * xterm.h (x_display_name_list): Remove declaration. + * xterm.c (x_display_name_list): Remove. + (x_term_init, x_delete_display, syms_of_xterm): Adjust users. + * xfns.c (x_display_info_for_name, Fx_display_list): + Likewise. Use x_display_list where appropriate. + * w32term.h (w32_display_name_list): Remove declaration. + * w32term.c (w32_display_name_list): Remove. + (w32_initialize_display_info, x_delete_display, syms_of_w32term): + Adjust users. + * w32fns.c (x_display_info_for_name, Fx_display_list): + Likewise. Use x_display_list where appropriate. + * nsterm.h (ns_display_name_list): Remove declaration. + * nsterm.m (ns_display_name_list): Remove. + (ns_term_init, syms_of_nsterm): Adjust users. + * nsfns.m (ns_display_info_for_name, Fx_display_list): + Likewise. Use x_display_list where appropriate. + * termhooks.h (TERMINAL_FONT_CACHE): New macro. + * alloc.c (toplevel) [HAVE_WINDOW_SYSTEM]: Include TERM_HEADER. + (mark_terminals): Mark per-terminal font cache. + 2013-10-17 Barry O'Reilly Don't run timers in input-pending-p. Its new check-timers param === modified file 'src/alloc.c' --- src/alloc.c 2013-10-11 06:32:29 +0000 +++ src/alloc.c 2013-10-18 12:57:44 +0000 @@ -42,6 +42,9 @@ #include "frame.h" #include "blockinput.h" #include "termhooks.h" /* For struct terminal. */ +#ifdef HAVE_WINDOW_SYSTEM +#include TERM_HEADER +#endif /* HAVE_WINDOW_SYSTEM */ #include @@ -6115,6 +6118,9 @@ it might have been marked already. Make sure the image cache gets marked. */ mark_image_cache (t->image_cache); + /* FIXME: currently font cache may grow too large + and probably needs special finalization. */ + mark_object (TERMINAL_FONT_CACHE (t)); #endif /* HAVE_WINDOW_SYSTEM */ if (!VECTOR_MARKED_P (t)) mark_vectorlike ((struct Lisp_Vector *)t); === modified file 'src/nsfns.m' --- src/nsfns.m 2013-10-09 18:50:14 +0000 +++ src/nsfns.m 2013-10-18 12:57:44 +0000 @@ -175,20 +175,13 @@ struct ns_display_info * ns_display_info_for_name (Lisp_Object name) { - Lisp_Object names; struct ns_display_info *dpyinfo; CHECK_STRING (name); - for (dpyinfo = x_display_list, names = ns_display_name_list; - dpyinfo; - dpyinfo = dpyinfo->next, names = XCDR (names)) - { - Lisp_Object tem; - tem = Fstring_equal (XCAR (XCAR (names)), name); - if (!NILP (tem)) - return dpyinfo; - } + for (dpyinfo = x_display_list; dpyinfo; dpyinfo = dpyinfo->next) + if (!NILP (Fstring_equal (XCAR (dpyinfo->name_list_element), name))) + return dpyinfo; error ("Emacs for OpenStep does not yet support multi-display."); @@ -1843,11 +1836,11 @@ doc: /* Return the list of display names that Emacs has connections to. */) (void) { - Lisp_Object tail, result; + Lisp_Object result = Qnil; + struct ns_display_info *ndi; - result = Qnil; - for (tail = ns_display_name_list; CONSP (tail); tail = XCDR (tail)) - result = Fcons (XCAR (XCAR (tail)), result); + for (ndi = x_display_list; ndi; ndi = ndi->next) + result = Fcons (XCAR (ndi->name_list_element), result); return result; } === modified file 'src/nsterm.h' --- src/nsterm.h 2013-10-15 02:45:03 +0000 +++ src/nsterm.h 2013-10-18 12:57:44 +0000 @@ -552,8 +552,7 @@ /* The generic display parameters corresponding to this NS display. */ struct terminal *terminal; - /* This is a cons cell of the form (NAME . FONT-LIST-CACHE). - The same cons cell also appears in ns_display_name_list. */ + /* This is a cons cell of the form (NAME . FONT-LIST-CACHE). */ Lisp_Object name_list_element; /* The number of fonts loaded. */ @@ -624,7 +623,6 @@ /* This is a chain of structures for all the NS displays currently in use. */ extern struct ns_display_info *x_display_list; -extern Lisp_Object ns_display_name_list; extern struct ns_display_info *ns_display_info_for_name (Lisp_Object name); struct ns_output === modified file 'src/nsterm.m' --- src/nsterm.m 2013-10-15 02:45:03 +0000 +++ src/nsterm.m 2013-10-18 12:57:44 +0000 @@ -184,7 +184,6 @@ /* Display variables */ struct ns_display_info *x_display_list; /* Chain of existing displays */ -Lisp_Object ns_display_name_list; long context_menu_value = 0; /* display update */ @@ -4173,10 +4172,7 @@ dpyinfo->next = x_display_list; x_display_list = dpyinfo; - /* Put it on ns_display_name_list */ - ns_display_name_list = Fcons (Fcons (display_name, Qnil), - ns_display_name_list); - dpyinfo->name_list_element = XCAR (ns_display_name_list); + dpyinfo->name_list_element = Fcons (display_name, Qnil); terminal->name = xstrdup (SSDATA (display_name)); @@ -7460,9 +7456,6 @@ "Whether to confirm application quit using dialog."); ns_confirm_quit = Qnil; - staticpro (&ns_display_name_list); - ns_display_name_list = Qnil; - DEFVAR_LISP ("ns-auto-hide-menu-bar", ns_auto_hide_menu_bar, doc: /* Non-nil means that the menu bar is hidden, but appears when the mouse is near. Only works on OSX 10.6 or later. */); === modified file 'src/termhooks.h' --- src/termhooks.h 2013-10-17 06:42:21 +0000 +++ src/termhooks.h 2013-10-18 12:57:44 +0000 @@ -623,6 +623,19 @@ (((d)->type != output_termcap && (d)->type != output_msdos_raw) \ || (d)->display_info.tty->input) +/* Return font cache data for the specified terminal. The historical + name is grossly misleading, actually it is (NAME . FONT-LIST-CACHE). */ +#if defined (HAVE_X_WINDOWS) +#define TERMINAL_FONT_CACHE(t) \ + (t->type == output_x_window ? t->display_info.x->name_list_element : Qnil) +#elif defined (HAVE_NTGUI) +#define TERMINAL_FONT_CACHE(t) \ + (t->type == output_w32 ? t->display_info.w32->name_list_element : Qnil) +#elif defined (HAVE_NS) +#define TERMINAL_FONT_CACHE(t) \ + (t->type == output_ns ? t->display_info.ns->name_list_element : Qnil) +#endif + extern struct terminal *get_terminal (Lisp_Object terminal, bool); extern struct terminal *create_terminal (void); extern void delete_terminal (struct terminal *); === modified file 'src/w32fns.c' --- src/w32fns.c 2013-09-26 07:37:16 +0000 +++ src/w32fns.c 2013-10-18 12:57:44 +0000 @@ -5126,20 +5126,13 @@ struct w32_display_info * x_display_info_for_name (Lisp_Object name) { - Lisp_Object names; struct w32_display_info *dpyinfo; CHECK_STRING (name); - for (dpyinfo = &one_w32_display_info, names = w32_display_name_list; - dpyinfo && !NILP (w32_display_name_list); - dpyinfo = dpyinfo->next, names = XCDR (names)) - { - Lisp_Object tem; - tem = Fstring_equal (XCAR (XCAR (names)), name); - if (!NILP (tem)) - return dpyinfo; - } + for (dpyinfo = &one_w32_display_info; dpyinfo; dpyinfo = dpyinfo->next) + if (!NILP (Fstring_equal (XCAR (dpyinfo->name_list_element), name))) + return dpyinfo; /* Use this general default value to start with. */ Vx_resource_name = Vinvocation_name; @@ -5274,11 +5267,11 @@ doc: /* Return the list of display names that Emacs has connections to. */) (void) { - Lisp_Object tail, result; + Lisp_Object result = Qnil; + struct w32_display_info *wdi; - result = Qnil; - for (tail = w32_display_name_list; CONSP (tail); tail = XCDR (tail)) - result = Fcons (XCAR (XCAR (tail)), result); + for (wdi = x_display_list; wdi; wdi = wdi->next) + result = Fcons (XCAR (wdi->name_list_element), result); return result; } === modified file 'src/w32term.c' --- src/w32term.c 2013-10-14 12:19:21 +0000 +++ src/w32term.c 2013-10-18 12:57:44 +0000 @@ -99,13 +99,6 @@ struct w32_display_info one_w32_display_info; struct w32_display_info *x_display_list; -/* This is a list of cons cells, each of the form (NAME . FONT-LIST-CACHE), - one for each element of w32_display_list and in the same order. - NAME is the name of the frame. - FONT-LIST-CACHE records previous values returned by x-list-fonts. */ -Lisp_Object w32_display_name_list; - - #if _WIN32_WINNT < 0x0500 && !defined(_W64) /* Pre Windows 2000, this was not available, but define it here so that Emacs compiled on such a platform will run on newer versions. @@ -6105,11 +6098,7 @@ memset (dpyinfo, 0, sizeof (*dpyinfo)); - /* Put it on w32_display_name_list. */ - w32_display_name_list = Fcons (Fcons (display_name, Qnil), - w32_display_name_list); - dpyinfo->name_list_element = XCAR (w32_display_name_list); - + dpyinfo->name_list_element = Fcons (display_name, Qnil); dpyinfo->w32_id_name = xmalloc (SCHARS (Vinvocation_name) + SCHARS (Vsystem_name) + 2); sprintf (dpyinfo->w32_id_name, "%s@%s", @@ -6357,27 +6346,7 @@ void x_delete_display (struct w32_display_info *dpyinfo) { - /* Discard this display from w32_display_name_list and w32_display_list. - We can't use Fdelq because that can quit. */ - if (! NILP (w32_display_name_list) - && EQ (XCAR (w32_display_name_list), dpyinfo->name_list_element)) - w32_display_name_list = XCDR (w32_display_name_list); - else - { - Lisp_Object tail; - - tail = w32_display_name_list; - while (CONSP (tail) && CONSP (XCDR (tail))) - { - if (EQ (XCAR (XCDR (tail)), dpyinfo->name_list_element)) - { - XSETCDR (tail, XCDR (XCDR (tail))); - break; - } - tail = XCDR (tail); - } - } - + /* FIXME: the only display info apparently can't be deleted. */ /* free palette table */ { struct w32_palette_entry * plist; @@ -6515,9 +6484,6 @@ void syms_of_w32term (void) { - staticpro (&w32_display_name_list); - w32_display_name_list = Qnil; - DEFSYM (Qvendor_specific_keysyms, "vendor-specific-keysyms"); DEFSYM (Qadded, "added"); === modified file 'src/w32term.h' --- src/w32term.h 2013-09-29 18:38:56 +0000 +++ src/w32term.h 2013-10-18 12:57:44 +0000 @@ -86,8 +86,7 @@ /* The generic display parameters corresponding to this w32 display. */ struct terminal *terminal; - /* This is a cons cell of the form (NAME . FONT-LIST-CACHE). - The same cons cell also appears in x_display_name_list. */ + /* This is a cons cell of the form (NAME . FONT-LIST-CACHE). */ Lisp_Object name_list_element; /* Number of frames that are on this display. */ @@ -216,12 +215,6 @@ extern struct w32_display_info *x_display_list; extern struct w32_display_info one_w32_display_info; -/* This is a list of cons cells, each of the form (NAME . FONT-LIST-CACHE), - one for each element of w32_display_list and in the same order. - NAME is the name of the frame. - FONT-LIST-CACHE records previous values returned by x-list-fonts. */ -extern Lisp_Object w32_display_name_list; - extern struct frame *x_window_to_frame (struct w32_display_info *, HWND); struct w32_display_info *x_display_info_for_name (Lisp_Object); === modified file 'src/xfns.c' --- src/xfns.c 2013-09-22 09:48:21 +0000 +++ src/xfns.c 2013-10-18 12:57:44 +0000 @@ -4242,20 +4242,13 @@ static struct x_display_info * x_display_info_for_name (Lisp_Object name) { - Lisp_Object names; struct x_display_info *dpyinfo; CHECK_STRING (name); - for (dpyinfo = x_display_list, names = x_display_name_list; - dpyinfo; - dpyinfo = dpyinfo->next, names = XCDR (names)) - { - Lisp_Object tem; - tem = Fstring_equal (XCAR (XCAR (names)), name); - if (!NILP (tem)) - return dpyinfo; - } + for (dpyinfo = x_display_list; dpyinfo; dpyinfo = dpyinfo->next) + if (!NILP (Fstring_equal (XCAR (dpyinfo->name_list_element), name))) + return dpyinfo; /* Use this general default value to start with. */ Vx_resource_name = Vinvocation_name; @@ -4338,11 +4331,11 @@ doc: /* Return the list of display names that Emacs has connections to. */) (void) { - Lisp_Object tail, result; + Lisp_Object result = Qnil; + struct x_display_info *xdi; - result = Qnil; - for (tail = x_display_name_list; CONSP (tail); tail = XCDR (tail)) - result = Fcons (XCAR (XCAR (tail)), result); + for (xdi = x_display_list; xdi; xdi = xdi->next) + result = Fcons (XCAR (xdi->name_list_element), result); return result; } === modified file 'src/xterm.c' --- src/xterm.c 2013-10-14 12:19:21 +0000 +++ src/xterm.c 2013-10-18 12:57:44 +0000 @@ -148,13 +148,6 @@ struct x_display_info *x_display_list; -/* This is a list of cons cells, each of the form (NAME - . FONT-LIST-CACHE), one for each element of x_display_list and in - the same order. NAME is the name of the frame. FONT-LIST-CACHE - records previous values returned by x-list-fonts. */ - -Lisp_Object x_display_name_list; - #ifdef USE_X_TOOLKIT /* The application context for Xt use. */ @@ -9894,11 +9887,9 @@ { struct x_display_info *share; - Lisp_Object tail; - for (share = x_display_list, tail = x_display_name_list; share; - share = share->next, tail = XCDR (tail)) - if (same_x_server (SSDATA (XCAR (XCAR (tail))), + for (share = x_display_list; share; share = share->next) + if (same_x_server (SSDATA (XCAR (share->name_list_element)), SSDATA (display_name))) break; if (share) @@ -9944,11 +9935,7 @@ dpyinfo->next = x_display_list; x_display_list = dpyinfo; - /* Put it on x_display_name_list as well, to keep them parallel. */ - x_display_name_list = Fcons (Fcons (display_name, Qnil), - x_display_name_list); - dpyinfo->name_list_element = XCAR (x_display_name_list); - + dpyinfo->name_list_element = Fcons (display_name, Qnil); dpyinfo->display = dpy; /* Set the name of the terminal. */ @@ -10275,27 +10262,6 @@ break; } - /* Discard this display from x_display_name_list and x_display_list. - We can't use Fdelq because that can quit. */ - if (! NILP (x_display_name_list) - && EQ (XCAR (x_display_name_list), dpyinfo->name_list_element)) - x_display_name_list = XCDR (x_display_name_list); - else - { - Lisp_Object tail; - - tail = x_display_name_list; - while (CONSP (tail) && CONSP (XCDR (tail))) - { - if (EQ (XCAR (XCDR (tail)), dpyinfo->name_list_element)) - { - XSETCDR (tail, XCDR (XCDR (tail))); - break; - } - tail = XCDR (tail); - } - } - if (next_noop_dpyinfo == dpyinfo) next_noop_dpyinfo = dpyinfo->next; @@ -10565,9 +10531,6 @@ { x_error_message = NULL; - staticpro (&x_display_name_list); - x_display_name_list = Qnil; - DEFSYM (Qvendor_specific_keysyms, "vendor-specific-keysyms"); DEFSYM (Qlatin_1, "latin-1"); === modified file 'src/xterm.h' --- src/xterm.h 2013-09-29 18:38:56 +0000 +++ src/xterm.h 2013-10-18 12:57:44 +0000 @@ -142,8 +142,7 @@ /* This says how to access this display in Xlib. */ Display *display; - /* This is a cons cell of the form (NAME . FONT-LIST-CACHE). - The same cons cell also appears in x_display_name_list. */ + /* This is a cons cell of the form (NAME . FONT-LIST-CACHE). */ Lisp_Object name_list_element; /* Number of frames that are on this display. */ @@ -412,12 +411,6 @@ /* This is a chain of structures for all the X displays currently in use. */ extern struct x_display_info *x_display_list; -/* This is a list of cons cells, each of the form (NAME . FONT-LIST-CACHE), - one for each element of x_display_list and in the same order. - NAME is the name of the frame. - FONT-LIST-CACHE records previous values returned by x-list-fonts. */ -extern Lisp_Object x_display_name_list; - extern struct x_display_info *x_display_info_for_display (Display *); extern struct frame *x_top_window_to_frame (struct x_display_info *, int); extern struct x_display_info *x_term_init (Lisp_Object, char *, char *); ------------------------------------------------------------ revno: 114709 committer: Michael Albinus branch nick: trunk timestamp: Fri 2013-10-18 12:22:02 +0200 message: * net/tramp-smb.el (tramp-smb-maybe-open-connection): Fix an error introduced on 2013-09-08, which results in an infinite loop requesting a password. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-10-18 08:48:33 +0000 +++ lisp/ChangeLog 2013-10-18 10:22:02 +0000 @@ -1,3 +1,9 @@ +2013-10-18 Michael Albinus + + * net/tramp-smb.el (tramp-smb-maybe-open-connection): Fix an error + introduced on 2013-09-08, which results in an infinite loop + requesting a password. + 2013-10-18 Glenn Morris * progmodes/verilog-mode.el (verilog-case-fold): Add :version. @@ -121,7 +127,7 @@ connection property. * net/tramp-cache.el (top): Suppress traces when reading - presistency file. + persistency file. * net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch): Refactor common code. Improve debug message. === modified file 'lisp/net/tramp-smb.el' --- lisp/net/tramp-smb.el 2013-10-17 19:39:22 +0000 +++ lisp/net/tramp-smb.el 2013-10-18 10:22:02 +0000 @@ -1901,9 +1901,9 @@ (search-forward-regexp tramp-smb-wrong-passwd-regexp nil t)) ;; Disable `auth-source' and `password-cache'. - (tramp-message - vec 3 "Retry connection with new password") (let (auth-sources) + (tramp-message + vec 3 "Retry connection with new password") (tramp-cleanup-connection vec t) (tramp-smb-maybe-open-connection vec argument)) ;; Propagate the error. ------------------------------------------------------------ revno: 114708 committer: Reuben Thomas branch nick: trunk timestamp: Fri 2013-10-18 09:48:33 +0100 message: Remove erroneously-committed merge comment. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-10-18 07:56:45 +0000 +++ lisp/ChangeLog 2013-10-18 08:48:33 +0000 @@ -6976,7 +6976,6 @@ * progmodes/f90.el (f90-imenu-generic-expression): Fix typo in 2013-05-08 change. (Bug#14402) ->>>>>>> MERGE-SOURCE 2013-05-14 Jean-Philippe Gravel * progmodes/gdb-mi.el (gdb-running, gdb-starting): ------------------------------------------------------------ revno: 114707 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-10-18 00:56:45 -0700 message: * lisp/progmodes/verilog-mode.el (verilog-case-fold): Add :version. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-10-18 07:46:36 +0000 +++ lisp/ChangeLog 2013-10-18 07:56:45 +0000 @@ -1,3 +1,7 @@ +2013-10-18 Glenn Morris + + * progmodes/verilog-mode.el (verilog-case-fold): Add :version. + 2013-10-18 Wilson Snyder Sync with upstream verilog-mode revision 1a6ecec7. === modified file 'lisp/progmodes/verilog-mode.el' --- lisp/progmodes/verilog-mode.el 2013-10-18 07:46:36 +0000 +++ lisp/progmodes/verilog-mode.el 2013-10-18 07:56:45 +0000 @@ -1187,6 +1187,7 @@ (defcustom verilog-case-fold t "Non-nil means `verilog-mode' regexps should ignore case. This variable is t for backward compatibility; nil is suggested." + :version "24.4" :group 'verilog-mode :type 'boolean) (put 'verilog-case-fold 'safe-local-variable 'verilog-booleanp)