emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 23.0.50; newsticker buffer doesn't refresh


From: Toby Allsopp
Subject: Re: 23.0.50; newsticker buffer doesn't refresh
Date: Tue, 20 Nov 2007 22:25:37 +1300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.50 (gnu/linux)

Richard Stallman <address@hidden> writes:

>     In the *newsticker* buffer that is now current, movement commands such as
>     n or <down> appear to have no effect, but the effect becomes apparent
>     following a C-l.  Alos, the scroll bar is not rendered properly.
>
> I suspect that this is all caused by a single display bug.
> Can you help determine which change caused the bug to appear?
>
> This is the sort of thing on which various people can work in parallel.
>
> A binary search thru the versions since the last one known not
> to have this bug would do the job.

I have narrowed down the responsible change to between 2007-08-31 and
2007-09-01.

>From src/ChangeLog:

--8<---------------cut here---------------start------------->8---
2007-08-31  Jan Djärv  <address@hidden>

        * gtkutil.c (update_frame_tool_bar): Initialize wbutton to NULL.

2007-08-31  Stefan Monnier  <address@hidden>

        * frame.h:
        * frame.c (Qterm_environment_variable): Remove.
        (syms_of_frame): Don't init and staticpro it.


        * callproc.c (getenv_internal): Remove special case for $TERM.

        * callproc.c (Vinitial_environment): New variable.
        (set_initial_environment): Initialize it.
        (syms_of_callproc): Declare it.
        (child_setup): Don't mess with TERM via Qterm_environment_variable; the
        TERM under which a process runs is never related to the TERM in which
        Emacs is running.
--8<---------------cut here---------------end--------------->8---

I compiled a failing version using --with-x-toolkit=no and this resolved
the problem, so I suspect the gtkutil.c change.

I have attached the output of cvs diff -D 2007-08-31 -D 2007-09-01.

Hopefully this will help to identify what the problem is.

Oh, I should mention that I also tried HEAD again and the problem still
exists.

Regards,
Toby.

Index: etc/NEWS
===================================================================
RCS file: /sources/emacs/emacs/etc/NEWS,v
retrieving revision 1.1545
retrieving revision 1.1550
diff -u -r1.1545 -r1.1550
--- etc/NEWS    30 Aug 2007 05:09:07 -0000      1.1545
+++ etc/NEWS    31 Aug 2007 08:11:26 -0000      1.1550
@@ -191,6 +191,8 @@
 and C-x C-q in wdired-mode exits it with asking a question about
 saving changes.
 
+*** The new command `eshell/info' runs info in an eshell buffer.
+

 * Changes in Emacs 23.1 on non-free operating systems
 
@@ -212,6 +214,9 @@
 
 ** Changes related to multiple tty support.
 
+*** $TERM is now set to `dumb' for subprocesses.  If you want to know the
+$TERM inherited by Emacs you will have to look inside initial-environment.
+
 *** The `window-system' variable has been made frame-local. The new
 `initial-window-system' variable contains the `window-system' value
 for the first frame.
@@ -225,15 +230,23 @@
 *** The function `make-frame-on-display' now works during a tty
 session, and `make-frame-on-tty' works during a graphical session.
 
-*** New functions: frame-tty-name, frame-tty-type, delete-tty,
-suspend-tty, resume-tty, terminal-id, terminal-parameters,
-terminal-parameter, set-terminal-parameter,
-modify-terminal-parameters, environment, let-environment
+*** New functions: `delete-tty', `suspend-tty', `resume-tty'.
+
+*** New functions: `terminal-id', `terminal-parameters',
+`terminal-parameter', `set-terminal-parameter',
+`modify-terminal-parameters'.
+
+*** New functions: `environment', `let-environment'.
+
+*** New variables: `local-key-translation-map', `local-function-key-map'.
+These are in addition to the global key-translation-map and
+function-key-map variables that already existed.
+
+??? How do the new variables relate to the old ones?
 
-*** New variables: local-key-translation-map, local-function-key-map
+*** `initial-environment' holds the environment inherited from Emacs's parent.
 
-*** New frame parameters display-environment-variable and
-term-environment-variable.
+*** New frame parameter `display-environment-variable'.
 
 *** The `keyboard-translate-table' variable and the terminal and
 keyboard coding systems have been made terminal-local.
Index: lisp/ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.11658
retrieving revision 1.11666
diff -u -r1.11658 -r1.11666
--- lisp/ChangeLog      30 Aug 2007 09:48:05 -0000      1.11658
+++ lisp/ChangeLog      31 Aug 2007 10:13:35 -0000      1.11666
@@ -1,3 +1,41 @@
+2007-08-31  Jan Djärv  <address@hidden>
+
+       * term/x-win.el (x-gtk-stock-map): Add etc/images to keys.
+       (x-gtk-map-stock): Use two directory elements when matching
+       file name.
+
+2007-08-31  James Wright  <address@hidden>
+
+       * eshell/em-unix.el (eshell/info): New function.
+
+2007-08-31  Stefan Monnier  <address@hidden>
+
+       * frame.el (frame-initialize, make-frame):
+       * server.el (server-process-filter):
+       * faces.el (tty-set-up-initial-frame-faces): Don't set
+       term-environment-variable since it's not used any more.
+
+       * env.el (setenv): Don't treat $TERM specially.
+
+       * startup.el (normal-top-level): Set $TERM to `dumb' so that unless
+       stated otherwise, subprocesses do not send back escape sequences
+       corresponding to the terminal from which Emacs was started.
+
+2007-08-31  Thien-Thi Nguyen  <address@hidden>
+
+       * calculator.el: Require cl for compilation.
+
+2007-08-30  Daniel Pfeiffer  <address@hidden>
+
+       * outline.el (outline-font-lock-levels): Comment out unused var.
+       (outline-font-lock-face): Wrap around face list to handle any
+       nesting depth gracefully.
+
+2007-08-30  Michael Albinus  <address@hidden>
+
+       * net/ange-ftp.el: Add ange-ftp property to 'set-file-modes and
+       'set-file-times.
+
 2007-08-30  Carsten Dominik  <address@hidden>
 
        * textmodes/org.el (org-export-visible): Fix drawers before export.
@@ -14,8 +52,8 @@
        (org-cycle): Docstring updated.
        (org-todo-keyword-faces): New option.
        (org-get-todo-face): New function.
-       (org-set-font-lock-defaults, org-agenda-highlight-todo): Use
-       `org-get-todo-face'.
+       (org-set-font-lock-defaults, org-agenda-highlight-todo):
+       Use `org-get-todo-face'.
        (org-switch-to-buffer-other-window): New function.
        (org-table-edit-field, org-table-show-reference)
        (org-table-edit-formulas, org-add-log-note)
@@ -24,10 +62,10 @@
        `switch-to-buffer-other-window' to make sure that the temporary
        windows show up on the current frame.
        (org-mhe-get-message-real-folder, org-batch-store-agenda-views)
-       (org-get-entries-from-diary, org-replace-region-by-html): Don't
-       allow pop-up frames.
-       (org-agenda-get-deadlines, org-agenda-get-scheduled): Fixed
-       problems with time-of-day.
+       (org-get-entries-from-diary, org-replace-region-by-html):
+       Don't allow pop-up frames.
+       (org-agenda-get-deadlines, org-agenda-get-scheduled):
+       Fix problems with time-of-day.
        (org-export-get-title-from-subtree): New function.
        (org-agenda-get-scheduled, org-agenda-get-deadlines): Fix problems
        with listing items that are DONE.
@@ -37,15 +75,17 @@
        (org-mode): Hide drawers on startup.
        (org-get-todo-face): New function.
        (org-todo-keyword-faces): New option.
+       (org-set-regexps-and-options): Use `org-remove-keyword-keys'.
+       (org-remove-keyword-keys): New function.
 
 2007-08-30  Jari Aalto  <address@hidden>  (tiny change)
 
-       * progmodes/grep.el (grep-find-ignored-directories): Add
-       monotone _MTN bookkeeping directory in workspaces.  Add
-       RCS control directory.  List items in alphabetical order.
+       * progmodes/grep.el (grep-find-ignored-directories):
+       Add monotone _MTN bookkeeping directory in workspaces.
+       Add RCS control directory.  List items in alphabetical order.
 
        * progmodes/grep.el (grep-files-aliases): Add cc alias.
-       Sort items in alphabetical order. Fix parens.
+       Sort items in alphabetical order.  Fix parens.
 
 2007-08-29  Dan Nicolaescu  <address@hidden>
 
@@ -2900,7 +2940,7 @@
        * net/tramp-util.el:
        * net/tramp-vc.el: Removed.
 
-       * net/ange-ftp.el: Add ange-ftp property to 'start-file-process
+       * net/ange-ftp.el: Add ange-ftp property to 'start-file-process.
        (ange-ftp-file-remote-p): Handle optional parameter CONNECTED.
 
        * net/rcompile.el (remote-compile): Handle Tramp 2.1 arguments.
Index: lisp/calculator.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/calculator.el,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- lisp/calculator.el  26 Jul 2007 05:26:18 -0000      1.29
+++ lisp/calculator.el  31 Aug 2007 01:55:09 -0000      1.30
@@ -5,7 +5,7 @@
 
 ;; Author: Eli Barzilay <address@hidden>
 ;; Keywords: tools, convenience
-;; Time-stamp: <2006-02-06 13:36:00 ttn>
+;; Time-stamp: <2007-08-31 03:00:11 ttn>
 
 ;; This file is part of GNU Emacs.
 
@@ -47,6 +47,7 @@
 ;;; History:
 ;; I hate history.
 
+(eval-when-compile (require 'cl))
 (eval-and-compile
   (if (fboundp 'defgroup) nil
     (defmacro defgroup (&rest forms) nil)
Index: lisp/env.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/env.el,v
retrieving revision 1.40
retrieving revision 1.42
diff -u -r1.40 -r1.42
--- lisp/env.el 29 Aug 2007 05:28:04 -0000      1.40
+++ lisp/env.el 31 Aug 2007 07:35:59 -0000      1.42
@@ -192,12 +192,10 @@
       (setq process-environment (setenv-internal process-environment
                                                 variable value t))
     (setq frame (frame-with-environment frame))
-    (cond 
-     ((string-equal "TERM" variable)
-      (set-frame-parameter frame 'term-environment-variable value))
+    (cond
      ((string-equal "DISPLAY" variable)
       (set-frame-parameter frame 'display-environment-variable value))
-     (t 
+     (t
       (setq process-environment (setenv-internal process-environment
                                                 variable value nil)))))
   value)
@@ -316,5 +314,5 @@
 
 (provide 'env)
 
-;;; arch-tag: b7d6a8f7-bc81-46db-8e39-8d721d4ed0b8
+;; arch-tag: b7d6a8f7-bc81-46db-8e39-8d721d4ed0b8
 ;;; env.el ends here
Index: lisp/faces.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/faces.el,v
retrieving revision 1.374
retrieving revision 1.375
diff -u -r1.374 -r1.375
--- lisp/faces.el       29 Aug 2007 05:28:06 -0000      1.374
+++ lisp/faces.el       31 Aug 2007 07:36:48 -0000      1.375
@@ -1933,8 +1933,6 @@
   (let ((frame (selected-frame)))
     (frame-set-background-mode frame)
     (face-set-after-frame-default frame)
-    (set-frame-parameter frame-initial-frame 'term-environment-variable
-                        (getenv "TERM"))
     (set-frame-parameter frame-initial-frame 'display-environment-variable
                         (getenv "DISPLAY"))))
 
Index: lisp/frame.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/frame.el,v
retrieving revision 1.247
retrieving revision 1.248
diff -u -r1.247 -r1.248
--- lisp/frame.el       29 Aug 2007 05:28:04 -0000      1.247
+++ lisp/frame.el       31 Aug 2007 07:38:22 -0000      1.248
@@ -241,8 +241,6 @@
        ;; Copy the environment of the Emacs process into the new frame.
        (set-frame-parameter frame-initial-frame 'environment
                             (frame-parameter terminal-frame 'environment))
-       (set-frame-parameter frame-initial-frame 'term-environment-variable
-                            (getenv "TERM"))
        (set-frame-parameter frame-initial-frame 'display-environment-variable
                             (getenv "DISPLAY"))
        ;; At this point, we know that we have a frame open, so we
@@ -731,14 +729,11 @@
     ;; Inherit the 'environment and 'client parameters.
     (let ((env (frame-parameter oldframe 'environment))
          (client (frame-parameter oldframe 'client))
-          (termenv (frame-parameter oldframe 'term-environment-variable))
           (displayenv (frame-parameter oldframe 
'display-environment-variable)))
       (if (not (framep env))
          (setq env oldframe))
       (if (and env (not (assq 'environment parameters)))
          (set-frame-parameter frame 'environment env))
-      (if (and termenv (not (assq 'term-environment-variable parameters)))
-         (set-frame-parameter frame 'term-environment-variable termenv))
       (if (and displayenv (not (assq 'display-environment-variable 
parameters)))
          (set-frame-parameter frame 'display-environment-variable displayenv))
       (if (and client (not (assq 'client parameters)))
Index: lisp/outline.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/outline.el,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- lisp/outline.el     26 Jul 2007 05:26:29 -0000      1.31
+++ lisp/outline.el     30 Aug 2007 21:39:20 -0000      1.32
@@ -215,8 +215,8 @@
   [outline-1 outline-2 outline-3 outline-4
    outline-5 outline-6 outline-7 outline-8])
 
-(defvar outline-font-lock-levels nil)
-(make-variable-buffer-local 'outline-font-lock-levels)
+;; (defvar outline-font-lock-levels nil)
+;; (make-variable-buffer-local 'outline-font-lock-levels)
 
 (defun outline-font-lock-face ()
   ;; (save-excursion
@@ -241,9 +241,7 @@
   (save-excursion
     (goto-char (match-beginning 0))
     (looking-at outline-regexp)
-    (condition-case nil
-       (aref outline-font-lock-faces (1- (funcall outline-level)))
-      (error font-lock-warning-face))))
+    (aref outline-font-lock-faces (% (1- (funcall outline-level)) (length 
outline-font-lock-faces)))))
 
 (defvar outline-view-change-hook nil
   "Normal hook to be run after outline visibility changes.")
Index: lisp/server.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/server.el,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -r1.132 -r1.133
--- lisp/server.el      29 Aug 2007 05:28:04 -0000      1.132
+++ lisp/server.el      31 Aug 2007 07:37:33 -0000      1.133
@@ -766,8 +766,6 @@
                          (modify-frame-parameters frame params)
                          (set-frame-parameter frame 
'display-environment-variable 
                                               (server-getenv-from env 
"DISPLAY"))
-                         (set-frame-parameter frame 'term-environment-variable 
-                                              (server-getenv-from env "TERM"))
                          (select-frame frame)
                          (server-client-set client 'frame frame)
                          (server-client-set client 'terminal (frame-terminal 
frame))
@@ -828,8 +826,6 @@
              
                      (set-frame-parameter frame 'display-environment-variable 
                                           (server-getenv-from env "DISPLAY"))
-                     (set-frame-parameter frame 'term-environment-variable 
-                                          (server-getenv-from env "TERM"))
                      (select-frame frame)
                      (server-client-set client 'frame frame)
                      (server-client-set client 'tty (terminal-name frame))
Index: lisp/startup.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/startup.el,v
retrieving revision 1.451
retrieving revision 1.452
diff -u -r1.451 -r1.452
--- lisp/startup.el     29 Aug 2007 05:28:06 -0000      1.451
+++ lisp/startup.el     31 Aug 2007 06:57:24 -0000      1.452
@@ -486,7 +486,12 @@
             (run-hooks 'window-setup-hook))
        (or menubar-bindings-done
            (if (display-popup-menus-p)
-               (precompute-menubar-bindings)))))))
+               (precompute-menubar-bindings)))))
+    ;; Subprocesses of Emacs do not have direct access to the terminal, so
+    ;; unless told otherwise they should only assume a dumb terminal.
+    ;; We are careful to do it late (after term-setup-hook), although the
+    ;; new multi-tty code does not use $TERM any more there anyway.
+    (setenv "TERM" "dumb")))
 
 ;; Precompute the keyboard equivalents in the menu bar items.
 (defun precompute-menubar-bindings ()
Index: lisp/eshell/em-unix.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/eshell/em-unix.el,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- lisp/eshell/em-unix.el      26 Jul 2007 05:26:54 -0000      1.30
+++ lisp/eshell/em-unix.el      31 Aug 2007 08:08:37 -0000      1.31
@@ -168,6 +168,35 @@
 
 (put 'eshell/man 'eshell-no-numeric-conversions t)
 
+(defun eshell/info (&rest args)
+  "Runs the info command in-frame with the same behaviour as command-line 
`info', ie:
+  'info'           => goes to top info window
+  'info arg1'      => IF arg1 is a file, then visits arg1
+  'info arg1'      => OTHERWISE goes to top info window and then menu item arg1
+  'info arg1 arg2' => does action for arg1 (either visit-file or menu-item) 
and then menu item arg2
+  etc."
+  (require 'info)
+  (let ((file (cond
+                ((not (stringp (car args)))
+                 nil)
+                ((file-exists-p (expand-file-name (car args)))
+                 (expand-file-name (car args)))
+                ((file-exists-p (concat (expand-file-name (car args)) ".info"))
+                 (concat (expand-file-name (car args)) ".info")))))
+
+    ;; If the first arg is a file, then go to that file's Top node
+    ;; Otherwise, go to the global directory
+    (if file
+      (progn
+        (setq args (cdr args))
+        (Info-find-node file "Top"))
+      (Info-directory))
+
+    ;; Treat all remaining args as menu references
+    (while args
+      (Info-menu (car args))
+      (setq args (cdr args)))))
+
 (defun eshell-remove-entries (path files &optional top-level)
   "From PATH, remove all of the given FILES, perhaps interactively."
   (while files
Index: lisp/net/ange-ftp.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/net/ange-ftp.el,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -r1.90 -r1.91
--- lisp/net/ange-ftp.el        6 Aug 2007 07:22:20 -0000       1.90
+++ lisp/net/ange-ftp.el        30 Aug 2007 19:58:28 -0000      1.91
@@ -4372,12 +4372,18 @@
 ;; Treat each name as its own truename.
 (put 'file-truename 'ange-ftp 'identity)
 
+;; We must return non-nil in order to mask our inability to do the job.
+;; Otherwise there are errors when applied to the target file during
+;; copying from a (localhost) Tramp file.
+(put 'set-file-modes 'ange-ftp 'ignore)
+(put 'set-file-times 'ange-ftp 'ignore)
+
 ;; Turn off RCS/SCCS processing to save time.
 ;; This returns nil for any file name as argument.
 (put 'vc-registered 'ange-ftp 'null)
 
 ;; We can handle process-file in a restricted way (just for chown).
-;; Nothing possible for start-file-process.
+;; Nothing possible for `start-file-process'.
 (put 'process-file 'ange-ftp 'ange-ftp-process-file)
 (put 'start-file-process 'ange-ftp 'ignore)
 (put 'shell-command 'ange-ftp 'ange-ftp-shell-command)
Index: lisp/term/x-win.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/term/x-win.el,v
retrieving revision 1.207
retrieving revision 1.208
diff -u -r1.207 -r1.208
--- lisp/term/x-win.el  29 Aug 2007 06:00:11 -0000      1.207
+++ lisp/term/x-win.el  31 Aug 2007 10:13:26 -0000      1.208
@@ -401,6 +401,7 @@
 (defconst x-pointer-ur-angle 148)
 (defconst x-pointer-watch 150)
 (defconst x-pointer-xterm 152)
+(defconst x-pointer-invisible 255)

 ;;
 ;; Available colors
@@ -2578,27 +2579,27 @@
 
 (defcustom x-gtk-stock-map
   '(
-    ("new" . "gtk-new")
-    ("open" . "gtk-open")
-    ("diropen" . "gtk-directory")
-    ("close" . "gtk-close")
-    ("save" . "gtk-save")
-    ("saveas" . "gtk-save-as")
-    ("undo" . "gtk-undo")
-    ("cut" . "gtk-cut")
-    ("copy" . "gtk-copy")
-    ("paste" . "gtk-paste")
-    ("search" . "gtk-find")
-    ("print" . "gtk-print")
-    ("preferences" . "gtk-preferences")
-    ("help" . "gtk-help")
-    ("left-arrow" . "gtk-go-back")
-    ("right-arrow" . "gtk-go-forward")
-    ("home" . "gtk-home")
-    ("jump-to" . "gtk-jump-to")
-    ("index" . "gtk-index")
-    ("search" . "gtk-find")
-    ("exit" . "gtk-quit"))
+    ("etc/images/new" . "gtk-new")
+    ("etc/images/open" . "gtk-open")
+    ("etc/images/diropen" . "gtk-directory")
+    ("etc/images/close" . "gtk-close")
+    ("etc/images/save" . "gtk-save")
+    ("etc/images/saveas" . "gtk-save-as")
+    ("etc/images/undo" . "gtk-undo")
+    ("etc/images/cut" . "gtk-cut")
+    ("etc/images/copy" . "gtk-copy")
+    ("etc/images/paste" . "gtk-paste")
+    ("etc/images/search" . "gtk-find")
+    ("etc/images/print" . "gtk-print")
+    ("etc/images/preferences" . "gtk-preferences")
+    ("etc/images/help" . "gtk-help")
+    ("etc/images/left-arrow" . "gtk-go-back")
+    ("etc/images/right-arrow" . "gtk-go-forward")
+    ("etc/images/home" . "gtk-home")
+    ("etc/images/jump-to" . "gtk-jump-to")
+    ("etc/images/index" . "gtk-index")
+    ("etc/images/search" . "gtk-find")
+    ("etc/images/exit" . "gtk-quit"))
   "How icons for tool bars are mapped to Gtk+ stock items.
 Emacs must be compiled with the Gtk+ toolkit for this to have any effect."
   :version "23.1"
@@ -2607,10 +2608,10 @@
 
 (defun x-gtk-map-stock (file)
   "Map icon with file name FILE to a Gtk+ stock name, using `x-gtk-stock-map'."
-  (let ((value (and file
-                   (assoc-string (file-name-sans-extension 
-                                  (file-name-nondirectory file))
-                                 x-gtk-stock-map))))
+  (let* ((file-sans (file-name-sans-extension file))
+        (key (and (string-match "/\\([^/]+/[^/]+/[^/]+$\\)" file-sans)
+                  (match-string 1 file-sans)))
+        (value (assoc-string (or key file-sans) x-gtk-stock-map)))
     (and value (cdr value))))
 
 ;; arch-tag: f1501302-db8b-4d95-88e3-116697d89f78
Index: lisp/textmodes/org.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/textmodes/org.el,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -r1.150 -r1.151
--- lisp/textmodes/org.el       30 Aug 2007 09:48:23 -0000      1.150
+++ lisp/textmodes/org.el       30 Aug 2007 13:56:28 -0000      1.151
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 5.07
+;; Version: 5.08
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -3827,7 +3827,7 @@
                             kws0)
                kwsa (if kwsa (append '((:startgroup)) kwsa '((:endgroup))))
                hw (car kws1)
-               dws (if sep (cdr sep) (last kws1))
+               dws (if sep (org-remove-keyword-keys (cdr sep)) (last kws1))
                tail (list inter hw (car dws) (org-last dws)))
          (add-to-list 'org-todo-heads hw 'append)
          (push kws1 org-todo-sets)
@@ -3936,6 +3936,12 @@
 
     (org-set-font-lock-defaults)))
 
+(defun org-remove-keyword-keys (list)
+  (mapcar (lambda (x)
+           (if (string-match "(.)$" x)
+               (substring x 0 (match-beginning 0))
+             x))
+         list))
 
 ;;; Some variables ujsed in various places
 
Index: src/ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/src/ChangeLog,v
retrieving revision 1.5813
retrieving revision 1.5816
diff -u -r1.5813 -r1.5816
--- src/ChangeLog       29 Aug 2007 22:19:43 -0000      1.5813
+++ src/ChangeLog       31 Aug 2007 10:17:15 -0000      1.5816
@@ -1,3 +1,23 @@
+2007-08-31  Jan Djärv  <address@hidden>
+
+       * gtkutil.c (update_frame_tool_bar): Initialize wbutton to NULL.
+
+2007-08-31  Stefan Monnier  <address@hidden>
+
+       * frame.h:
+       * frame.c (Qterm_environment_variable): Remove.
+       (syms_of_frame): Don't init and staticpro it.
+
+
+       * callproc.c (getenv_internal): Remove special case for $TERM.
+
+       * callproc.c (Vinitial_environment): New variable.
+       (set_initial_environment): Initialize it.
+       (syms_of_callproc): Declare it.
+       (child_setup): Don't mess with TERM via Qterm_environment_variable; the
+       TERM under which a process runs is never related to the TERM in which
+       Emacs is running.
+
 2007-08-29  Dan Nicolaescu  <address@hidden>
 
        * config.in (HAVE_WINDOW_SYSTEM): Don't undef MULTI_KBOARD here...
@@ -825,8 +845,7 @@
        For consistency, run after_insert_file_functions iff something
        got inserted.  Move signal_after_change and update_compositions
        after code running after_insert_file_functions.  Make sure that
-       undo_list doesn't record intermediate steps of the decoding
-       process.
+       undo_list doesn't record intermediate steps of the decoding process.
 
 2007-08-07  YAMAMOTO Mitsuharu  <address@hidden>
 
@@ -1015,8 +1034,8 @@
 2007-07-17  Glenn Morris  <address@hidden>
 
        * abbrev.c (abbrev_check_chars): New function.
-       (Fdefine_global_abbrev, Fdefine_mode_abbrev): Call
-       abbrev_check_chars to check abbrev characters are word
+       (Fdefine_global_abbrev, Fdefine_mode_abbrev):
+       Call abbrev_check_chars to check abbrev characters are word
        constituents.  Doc fix.
 
 2007-07-17  Stefan Monnier  <address@hidden>
Index: src/callproc.c
===================================================================
RCS file: /sources/emacs/emacs/src/callproc.c,v
retrieving revision 1.224
retrieving revision 1.227
diff -u -r1.224 -r1.227
--- src/callproc.c      29 Aug 2007 05:27:51 -0000      1.224
+++ src/callproc.c      31 Aug 2007 07:33:10 -0000      1.227
@@ -113,7 +113,7 @@
 
 Lisp_Object Vshell_file_name;
 
-Lisp_Object Vprocess_environment;
+Lisp_Object Vprocess_environment, Vinitial_environment;
 
 #ifdef DOS_NT
 Lisp_Object Qbuffer_file_type;
@@ -1245,8 +1245,6 @@
 {
   char **env;
   char *pwd_var;
-  char *term_var;
-  char *display_var;
 #ifdef WINDOWSNT
   int cpid;
   HANDLE handles[3];
@@ -1330,7 +1328,6 @@
     Lisp_Object local = selected_frame; /* get_frame_param (XFRAME 
(Fframe_with_environment (selected_frame)), */
 /*                                          Qenvironment); */
 
-    Lisp_Object term;
     Lisp_Object display;
     
     new_length = 0;
@@ -1347,33 +1344,19 @@
       new_length++;
 #endif
 
-    /* Add TERM and DISPLAY from the frame local values. */
-    term = get_frame_param (XFRAME (local), Qterm_environment_variable);
-    if (! NILP (term))
-      new_length++;
-
+    /* Add DISPLAY from the frame local values. */
     display = get_frame_param (XFRAME (local), Qdisplay_environment_variable);
     if (! NILP (display))
       new_length++;
 
     /* new_length + 2 to include PWD and terminating 0.  */
     env = new_env = (char **) alloca ((new_length + 2) * sizeof (char *));
-
     /* If we have a PWD envvar, pass one down,
        but with corrected value.  */
     if (egetenv ("PWD"))
       *new_env++ = pwd_var;
  
-    if (! NILP (term))
-      {
-       int vlen = strlen ("TERM=") + strlen (SDATA (term)) + 1;
-       char *vdata = (char *) alloca (vlen);
-       strcpy (vdata, "TERM=");
-       strcat (vdata, SDATA (term));
-       new_env = add_env (env, new_env, vdata);
-      }
-
-    if (! NILP (display))
+    if (STRINGP (display))
       {
        int vlen = strlen ("DISPLAY=") + strlen (SDATA (display)) + 1;
        char *vdata = (char *) alloca (vlen);
@@ -1387,8 +1370,7 @@
         CONSP (tem) && STRINGP (XCAR (tem));
         tem = XCDR (tem))
       {
-       if ((strcmp (SDATA (XCAR (tem)), "TERM") != 0)
-           && (strcmp (SDATA (XCAR (tem)), "DISPLAY") != 0))
+       if (strcmp (SDATA (XCAR (tem)), "DISPLAY") != 0)
          new_env = add_env (env, new_env, SDATA (XCAR (tem)));
       }
 
@@ -1537,9 +1519,9 @@
      Lisp_Object frame;
 {
   Lisp_Object scan;
-  Lisp_Object term;
   Lisp_Object display;
-  
+
+  /* FIXME: Code duplication.  */
 
   if (NILP (frame))
     {
@@ -1574,15 +1556,7 @@
       frame = selected_frame;
     }
 
-  /* For TERM and DISPLAY first try to get the values from the frame. */
-  term = get_frame_param (XFRAME (frame), Qterm_environment_variable);
-  if (strcmp (var, "TERM") == 0)
-    if (! NILP (term))
-      {
-         *value    = (char *) SDATA (term);
-         *valuelen = SBYTES (term);
-         return 1;
-      }
+  /* For DISPLAY first try to get the values from the frame. */
   display = get_frame_param (XFRAME (frame), Qdisplay_environment_variable);
   if (strcmp (var, "DISPLAY") == 0)
     if (! NILP (display))
@@ -1833,7 +1807,6 @@
 set_initial_environment ()
 {
   register char **envp;
-  Lisp_Object env = Vprocess_environment;
 #ifndef CANNOT_DUMP
   if (initialized)
 #endif
@@ -1842,6 +1815,9 @@
        Vprocess_environment = Fcons (build_string (*envp),
                                      Vprocess_environment);
       store_frame_param (SELECTED_FRAME(), Qenvironment, Vprocess_environment);
+      /* Ideally, the `copy' shouldn't be necessary, but it seems it's frequent
+        to use `delete' and friends on process-environment.  */
+      Vinitial_environment = Fcopy_sequence (Vprocess_environment);
     }
 }
 
@@ -1901,6 +1877,12 @@
 This is used by `call-process-region'.  */);
   /* This variable is initialized in init_callproc.  */
 
+  DEFVAR_LISP ("initial-environment", &Vinitial_environment,
+              doc: /* List of environment variables inherited from the parent 
process.
+Each element should be a string of the form ENVVARNAME=VALUE.
+The elements must normally be decoded (using `locale-coding-system') for use.  
*/);
+  Vinitial_environment = Qnil;
+
   DEFVAR_LISP ("process-environment", &Vprocess_environment,
               doc: /* List of overridden environment variables for 
subprocesses to inherit.
 Each element should be a string of the form ENVVARNAME=VALUE.
Index: src/frame.c
===================================================================
RCS file: /sources/emacs/emacs/src/frame.c,v
retrieving revision 1.345
retrieving revision 1.346
diff -u -r1.345 -r1.346
--- src/frame.c 29 Aug 2007 21:47:40 -0000      1.345
+++ src/frame.c 31 Aug 2007 07:34:50 -0000      1.346
@@ -111,7 +111,6 @@
 Lisp_Object Qtty, Qtty_type;
 Lisp_Object Qwindow_system;
 Lisp_Object Qenvironment;
-Lisp_Object Qterm_environment_variable;
 Lisp_Object Qdisplay_environment_variable;
 
 Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth;
@@ -4357,8 +4356,6 @@
   Qenvironment = intern ("environment");
   staticpro (&Qenvironment);
 
-  Qterm_environment_variable = intern ("term-environment-variable");
-  staticpro (&Qterm_environment_variable);
   Qdisplay_environment_variable = intern ("display-environment-variable");
   staticpro (&Qdisplay_environment_variable);
 
Index: src/frame.h
===================================================================
RCS file: /sources/emacs/emacs/src/frame.h,v
retrieving revision 1.121
retrieving revision 1.122
diff -u -r1.121 -r1.122
--- src/frame.h 29 Aug 2007 05:27:54 -0000      1.121
+++ src/frame.h 31 Aug 2007 07:33:44 -0000      1.122
@@ -780,7 +780,6 @@
 extern Lisp_Object Qtty, Qtty_type;
 extern Lisp_Object Qterminal, Qterminal_live_p;
 extern Lisp_Object Qenvironment;
-extern Lisp_Object Qterm_environment_variable;
 extern Lisp_Object Qdisplay_environment_variable;
 
 extern struct frame *last_nonminibuf_frame;
Index: src/gtkutil.c
===================================================================
RCS file: /sources/emacs/emacs/src/gtkutil.c,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -r1.113 -r1.114
--- src/gtkutil.c       29 Aug 2007 05:27:55 -0000      1.113
+++ src/gtkutil.c       31 Aug 2007 10:17:02 -0000      1.114
@@ -3810,7 +3810,7 @@
       GtkStockItem stock_item;
       char *stock_name = NULL;
       Lisp_Object rtl;
-      GtkWidget *wbutton;
+      GtkWidget *wbutton = NULL;
       GtkWidget *weventbox;
       Lisp_Object func = intern ("x-gtk-map-stock");
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]