--- /dev/null
- ;; Take the "name" component of the object into acount. ObjA/C/B is of the form
+;;; ediff-mult.el --- support for multi-file/multi-buffer processing in Ediff
+
+;; Copyright (C) 1995-2011 Free Software Foundation, Inc.
+
+;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
+;; Package: ediff
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Users are encouraged to add functionality to this file.
+;; The present file contains all the infrastructure needed for that.
+;;
+;; Generally, to implement a new multisession capability within Ediff,
+;; you need to tell it
+;;
+;; 1. How to display the session group buffer.
+;; This function must indicate which Ediff sessions are active (+) and
+;; which are finished (-).
+;; See ediff-redraw-directory-group-buffer for an example.
+;; In all likelihood, ediff-redraw-directory-group-buffer can be used
+;; directly or after a small modification.
+;; 2. What action to take when the user clicks button 2 or types v,e, or
+;; RET. See ediff-filegroup-action.
+;; 3. Provide a list of pairs or triples of file names (or buffers,
+;; depending on the particular Ediff operation you want to invoke)
+;; in the following format:
+;; (HEADER (nil nil (obj1 nil) (obj2 nil) (obj3 nil))
+;; (...) ...)
+;; The function ediff-make-new-meta-list-element can be used to create
+;; 2nd and subsequent elements of that list (i.e., after the
+;; description header). See ediff-make-new-meta-list-element for the
+;; explanation of the two nil placeholders in such elements.
+;;
+;; There is API for extracting the components of the members of the
+;; above list. Search for `API for ediff-meta-list' for details.
+;;
+;; HEADER must be a list of SIX elements (nil or string):
+;; (regexp metaobj1 metaobj2 metaobj3 merge-save-buffer
+;; comparison-function)
+;; The function ediff-redraw-registry-buffer displays the
+;; 1st - 4th of these in the registry buffer.
+;; For some jobs some of the members of the header might be nil.
+;; The meaning of metaobj1, metaobj2, and metaobj3 depend on the job.
+;; Typically these are directories where the files to be compared are
+;; found.
+;; Also, keep in mind that the function ediff-prepare-meta-buffer
+;; (which see) prepends the session group buffer to the descriptor, so
+;; the descriptor becomes 7-long.
+;; Ediff expects that your function (in 2 above) will arrange to
+;; replace this prepended nil (via setcar) with the actual ediff
+;; control buffer associated with an appropriate Ediff session.
+;; This is arranged through internal startup hooks that can be passed
+;; to any of Ediff major entries (such as ediff-files, epatch, etc.).
+;; See how this is done in ediff-filegroup-action.
+;;
+;; Session descriptions are of the form
+;; (nil nil (obj1 . nil) (obj2 . nil) (obj3 . nil))
+;; which describe the objects relevant to the session.
+;; Use ediff-make-new-meta-list-element to create these things.
+;; Usually obj1/2/3 are names of files, but they may also be other
+;; things for some jobs. For instance, obj3 is nil for jobs that
+;; involve only two files. For patch jobs, obj2 and obj3 are markers
+;; that specify the patch corresponding to the file
+;; (whose name is obj1).
+;; The nil's are placeholders, which are used internally by ediff.
+;; 4. Write a function that makes a call to ediff-prepare-meta-buffer
+;; passing all this info.
+;; You may be able to use ediff-directories-internal as a template.
+;; 5. If you intend to add several related pieces of functionality,
+;; you may want to keep the function in 4 as an internal version
+;; and then write several top-level interactive functions that call it
+;; with different parameters.
+;; See how ediff-directories, ediff-merge-directories, and
+;; ediff-merge-directories-with-ancestor all use
+;; ediff-directories-internal.
+;;
+;; A useful addition here could be session groups selected by patterns
+;; (which are different in each directory). For instance, one may want to
+;; compare files of the form abc{something}.c to files old{something}.d
+;; which may be in the same or different directories. Or, one may want to
+;; compare all files of the form {something} to files of the form {something}~.
+;;
+;; Implementing this requires writing a collating function, which should pair
+;; up appropriate files. It will also require a generalization of the
+;; functions that do the layout of the meta- and differences buffers and of
+;; ediff-filegroup-action.
+
+;;; Code:
+
+
+(provide 'ediff-mult)
+
+(defgroup ediff-mult nil
+ "Multi-file and multi-buffer processing in Ediff."
+ :prefix "ediff-"
+ :group 'ediff)
+
+
+;; compiler pacifier
+(eval-when-compile
+ (require 'ediff-ptch)
+ (require 'ediff))
+;; end pacifier
+
+(require 'ediff-init)
+
+;; meta-buffer
+(ediff-defvar-local ediff-meta-buffer nil "")
+(ediff-defvar-local ediff-parent-meta-buffer nil "")
+;; the registry buffer
+(defvar ediff-registry-buffer nil)
+
+(defconst ediff-meta-buffer-brief-message "Ediff Session Group Panel: %s
+
+ Type ? to show useful commands in this buffer
+
+")
+
+(defconst ediff-meta-buffer-verbose-message "Ediff Session Group Panel: %s
+
+Useful commands (type ? to hide them and free up screen):
+ button2, v, or RET over session record: start that Ediff session
+ M:\tin sessions invoked from here, brings back this group panel
+ R:\tdisplay the registry of active Ediff sessions
+ h:\tmark session for hiding (toggle)
+ x:\thide marked sessions; with prefix arg: unhide
+ m:\tmark session for a non-hiding operation (toggle)
+ uh/um:\tunmark all sessions marked for hiding/operation
+ n,SPC:\tnext session
+ p,DEL:\tprevious session
+ E:\tbrowse Ediff on-line manual
+ T:\ttoggle truncation of long file names
+ q:\tquit this session group
+")
+
+(ediff-defvar-local ediff-meta-buffer-map nil
+ "The keymap for the meta buffer.")
+(defvar ediff-dir-diffs-buffer-map (make-sparse-keymap)
+ "The keymap to be installed in the buffer showing differences between
+directories.")
+
+;; Variable specifying the action to take when the use invokes ediff in the
+;; meta buffer. This is usually ediff-registry-action or ediff-filegroup-action
+(ediff-defvar-local ediff-meta-action-function nil "")
+;; Tells ediff-update-meta-buffer how to redraw it
+(ediff-defvar-local ediff-meta-redraw-function nil "")
+;; Tells ediff-filegroup-action and similar procedures how to invoke Ediff for
+;; the sessions in a given session group
+(ediff-defvar-local ediff-session-action-function nil "")
+
+(ediff-defvar-local ediff-metajob-name nil "")
+
+;; buffer used to collect custom diffs from individual sessions in the group
+(ediff-defvar-local ediff-meta-diff-buffer nil "")
+
+;; t means recurse into subdirs when deciding which files have same contents
+(ediff-defvar-local ediff-recurse-to-subdirectories nil "")
+
+;; history var to use for filtering groups of files
+(defvar ediff-filtering-regexp-history nil "")
+
+(defcustom ediff-default-filtering-regexp nil
+ "The default regular expression used as a filename filter in multifile comparisons.
+Should be a sexp. For instance (car ediff-filtering-regexp-history) or nil."
+ :type 'sexp
+ :group 'ediff-mult)
+
+;; This has the form ((meta-buf regexp dir1 dir2 dir3 merge-auto-store-dir)
+;; (ctl-buf session-status (file1 . eq-status) (file2 . eq-status) (file3
+;; . eq-status)) (ctl-buf session-status (file1 . eq-status) (file2
+;; . eq-status)) ...)
+;; If ctl-buf is nil, the file-pair hasn't processed yet. If it is
+;; killed-buffer object, the file pair has been processed. If it is a live
+;; buffer, this means ediff is still working on the pair.
+;; Eq-status of a file is t if the file equals some other file in the same
+;; group.
+(ediff-defvar-local ediff-meta-list nil "")
+
+(ediff-defvar-local ediff-meta-session-number nil "")
+
+
+;; the difference list between directories in a directory session group
+(ediff-defvar-local ediff-dir-difference-list nil "")
+(ediff-defvar-local ediff-dir-diffs-buffer nil "")
+
+;; The registry of Ediff sessions. A list of control buffers.
+(defvar ediff-session-registry nil)
+
+(defcustom ediff-meta-truncate-filenames t
+ "If non-nil, truncate long file names in the session group buffers.
+This can be toggled with `ediff-toggle-filename-truncation'."
+ :type 'boolean
+ :group 'ediff-mult)
+
+(defcustom ediff-meta-mode-hook nil
+ "Hooks run just after setting up meta mode."
+ :type 'hook
+ :group 'ediff-mult)
+
+(defcustom ediff-registry-setup-hook nil
+ "Hooks run just after the registry control panel is set up."
+ :type 'hook
+ :group 'ediff-mult)
+
+(defcustom ediff-before-session-group-setup-hooks nil
+ "Hooks to run before Ediff arranges the window for group-level operations.
+It is used by commands such as `ediff-directories'.
+This hook can be used to save the previous window config, which can be restored
+on `ediff-quit', `ediff-suspend', or `ediff-quit-session-group-hook'."
+ :type 'hook
+ :group 'ediff-hook)
+(defcustom ediff-after-session-group-setup-hook nil
+ "Hooks run just after a meta-buffer controlling a session group, such as
+ediff-directories, is run."
+ :type 'hook
+ :group 'ediff-mult)
+(defcustom ediff-quit-session-group-hook nil
+ "Hooks run just before exiting a session group."
+ :type 'hook
+ :group 'ediff-mult)
+(defcustom ediff-show-registry-hook nil
+ "Hooks run just after the registry buffer is shown."
+ :type 'hook
+ :group 'ediff-mult)
+(defcustom ediff-show-session-group-hook '(delete-other-windows)
+ "Hooks run just after a session group buffer is shown."
+ :type 'hook
+ :group 'ediff-mult)
+(defcustom ediff-meta-buffer-keymap-setup-hook nil
+ "Hooks run just after setting up the `ediff-meta-buffer-map'.
+This keymap controls key bindings in the meta buffer and is a local variable.
+This means that you can set different bindings for different kinds of meta
+buffers."
+ :type 'hook
+ :group 'ediff-mult)
+
+;; Buffer holding the multi-file patch. Local to the meta buffer
+(ediff-defvar-local ediff-meta-patchbufer nil "")
+
+;;; API for ediff-meta-list
+
+;; A meta-list is either ediff-meta-list, which contains a header and the list
+;; of ediff sessions or ediff-dir-difference-list, which is a header followed
+;; by the list of differences among the directories (i.e., files that are not
+;; in all directories). The header is the same in all meta lists, but the rest
+;; is different.
+;; Structure of the meta-list:
+;; (HEADER SESSION1 SESSION2 ...)
+;; HEADER: (GROUP-BUF REGEXP OBJA OBJB OBJC SAVE-DIR COMPARISON-FUNC)
+;; OBJA - first directory
+;; OBJB - second directory
+;; OBJC - third directory
+;; SESSION1/2/... are described below
+;; group buffer/regexp
+(defsubst ediff-get-group-buffer (meta-list)
+ (nth 0 (car meta-list)))
+
+(defsubst ediff-get-group-regexp (meta-list)
+ (nth 1 (car meta-list)))
+;; group objects
+(defsubst ediff-get-group-objA (meta-list)
+ (nth 2 (car meta-list)))
+(defsubst ediff-get-group-objB (meta-list)
+ (nth 3 (car meta-list)))
+(defsubst ediff-get-group-objC (meta-list)
+ (nth 4 (car meta-list)))
+(defsubst ediff-get-group-merge-autostore-dir (meta-list)
+ (nth 5 (car meta-list)))
+(defsubst ediff-get-group-comparison-func (meta-list)
+ (nth 6 (car meta-list)))
+
+;; ELT is a session meta descriptor (what is being preserved as
+;; 'ediff-meta-info)
+;; The structure is: (SESSION-CTL-BUFFER STATUS OBJA OBJB OBJC)
+;; STATUS is ?I (hidden or invalid), ?* (marked for operation), ?H (hidden)
+;; nil (nothing)
+;; OBJA/B/C is (FILENAME EQSTATUS)
+;; EQSTATUS is ?= or nil (?= means that this file is equal to some other
+;; file in this session)
+;; session buffer
+(defsubst ediff-get-session-buffer (elt)
+ (nth 0 elt))
+(defsubst ediff-get-session-status (elt)
+ (nth 1 elt))
+(defsubst ediff-set-session-status (session-info new-status)
+ (setcar (cdr session-info) new-status))
+;; session objects
+(defsubst ediff-get-session-objA (elt)
+ (nth 2 elt))
+(defsubst ediff-get-session-objB (elt)
+ (nth 3 elt))
+(defsubst ediff-get-session-objC (elt)
+ (nth 4 elt))
++;; Take the "name" component of the object into account. ObjA/C/B is of the form
+;; (name . equality-indicator)
+(defsubst ediff-get-session-objA-name (elt)
+ (car (nth 2 elt)))
+(defsubst ediff-get-session-objB-name (elt)
+ (car (nth 3 elt)))
+(defsubst ediff-get-session-objC-name (elt)
+ (car (nth 4 elt)))
+;; equality indicators
+(defsubst ediff-get-file-eqstatus (elt)
+ (nth 1 elt))
+(defsubst ediff-set-file-eqstatus (elt value)
+ (setcar (cdr elt) value))
+
+;; Create a new element for the meta list out of obj1/2/3, which usually are
+;; files
+;;
+;; The first nil in such an element is later replaced with the session buffer.
+;; The second nil is reserved for session status.
+;;
+;; Also, session objects A/B/C are turned into lists of the form (obj nil).
+;; This nil is a placeholder for eq-indicator. It is either nil or =.
+;; If it is discovered that this file is = to some other
+;; file in the same session, eq-indicator is changed to `='.
+;; Currently, the eq-indicator is used only for 2 and 3-file jobs.
+(defun ediff-make-new-meta-list-element (obj1 obj2 obj3)
+ (list nil nil (list obj1 nil) (list obj2 nil) (list obj3 nil)))
+
+;; Constructs a meta list header.
+;; OBJA, OBJB, OBJC are usually directories involved, but can be different for
+;; different jobs. For instance, multifile patch has only OBJA, which is the
+;; patch buffer.
+(defun ediff-make-new-meta-list-header (regexp
+ objA objB objC
+ merge-auto-store-dir
+ comparison-func)
+ (list regexp objA objB objC merge-auto-store-dir comparison-func))
+
+;; The activity marker is either or + (active session, i.e., ediff is currently
+;; run in it), or - (finished session, i.e., we've ran ediff in it and then
+;; exited). Return nil, if session is neither active nor finished
+(defun ediff-get-session-activity-marker (session)
+ (let ((session-buf (ediff-get-session-buffer session)))
+ (cond ((null session-buf) nil) ; virgin session
+ ((ediff-buffer-live-p session-buf) ?+) ;active session
+ (t ?-))))
+
+;; checks if the session is a meta session
+(defun ediff-meta-session-p (session-info)
+ (and (stringp (ediff-get-session-objA-name session-info))
+ (file-directory-p (ediff-get-session-objA-name session-info))
+ (stringp (ediff-get-session-objB-name session-info))
+ (file-directory-p (ediff-get-session-objB-name session-info))
+ (if (stringp (ediff-get-session-objC-name session-info))
+ (file-directory-p (ediff-get-session-objC-name session-info)) t)))
+
+
+(ediff-defvar-local ediff-verbose-help-enabled nil
+ "If t, display redundant help in ediff-directories and other meta buffers.
+Toggled by ediff-toggle-verbose-help-meta-buffer" )
+
+;; Toggle verbose help in meta-buffers
+;; TODO: Someone who understands all this can make it better.
+(defun ediff-toggle-verbose-help-meta-buffer ()
+ "Toggle showing tediously verbose help in meta buffers."
+ (interactive)
+ (setq ediff-verbose-help-enabled (not ediff-verbose-help-enabled))
+ (ediff-update-meta-buffer (current-buffer) 'must-redraw))
+
+;; set up the keymap in the meta buffer
+(defun ediff-setup-meta-map ()
+ (setq ediff-meta-buffer-map (make-sparse-keymap))
+ (suppress-keymap ediff-meta-buffer-map)
+ (define-key ediff-meta-buffer-map "?" 'ediff-toggle-verbose-help-meta-buffer)
+ (define-key ediff-meta-buffer-map "q" 'ediff-quit-meta-buffer)
+ (define-key ediff-meta-buffer-map "T" 'ediff-toggle-filename-truncation)
+ (define-key ediff-meta-buffer-map "R" 'ediff-show-registry)
+ (define-key ediff-meta-buffer-map "E" 'ediff-documentation)
+ (define-key ediff-meta-buffer-map "v" ediff-meta-action-function)
+ (define-key ediff-meta-buffer-map "\C-m" ediff-meta-action-function)
+ (define-key ediff-meta-buffer-map " " 'ediff-next-meta-item)
+ (define-key ediff-meta-buffer-map "n" 'ediff-next-meta-item)
+ (define-key ediff-meta-buffer-map "\C-?" 'ediff-previous-meta-item)
+ (define-key ediff-meta-buffer-map "p" 'ediff-previous-meta-item)
+ (define-key ediff-meta-buffer-map [delete] 'ediff-previous-meta-item)
+ (define-key ediff-meta-buffer-map [backspace] 'ediff-previous-meta-item)
+
+ (let ((menu-map (make-sparse-keymap "Ediff-Meta")))
+ (define-key ediff-meta-buffer-map [menu-bar ediff-meta-mode]
+ (cons "Ediff-Meta" menu-map))
+ (define-key menu-map [ediff-quit-meta-buffer]
+ '(menu-item "Quit" ediff-quit-meta-buffer
+ :help "Quit the meta buffer"))
+ (define-key menu-map [ediff-toggle-filename-truncation]
+ '(menu-item "Truncate filenames" ediff-toggle-filename-truncation
+ :help "Toggle truncation of long file names in session group buffers"
+ :button (:toggle . ediff-meta-truncate-filenames)))
+ (define-key menu-map [ediff-show-registry]
+ '(menu-item "Display Ediff Registry" ediff-show-registry
+ :help "Display Ediff's registry"))
+ (define-key menu-map [ediff-documentation]
+ '(menu-item "Show Manual" ediff-documentation
+ :help "Display Ediff's manual"))
+
+ (or (ediff-one-filegroup-metajob)
+ (progn
+ (define-key ediff-meta-buffer-map "=" nil)
+ (define-key ediff-meta-buffer-map "==" 'ediff-meta-mark-equal-files)
+ (define-key ediff-meta-buffer-map "=m" 'ediff-meta-mark-equal-files)
+ (define-key ediff-meta-buffer-map "=h" 'ediff-meta-mark-equal-files)))
+
+
+ (define-key menu-map [ediff-next-meta-item]
+ '(menu-item "Next" ediff-next-meta-item
+ :help "Move to the next item in Ediff registry or session group buffer"))
+ (define-key menu-map [ediff-previous-meta-item]
+ '(menu-item "Previous" ediff-previous-meta-item
+ :help "Move to the previous item in Ediff registry or session group buffer")))
+
+
+ (if ediff-no-emacs-help-in-control-buffer
+ (define-key ediff-meta-buffer-map "\C-h" 'ediff-previous-meta-item))
+ (if (featurep 'emacs)
+ (define-key ediff-meta-buffer-map [mouse-2] ediff-meta-action-function)
+ (define-key ediff-meta-buffer-map [button2] ediff-meta-action-function))
+
+ (use-local-map ediff-meta-buffer-map)
+ ;; modify ediff-meta-buffer-map here
+ (run-hooks 'ediff-meta-buffer-keymap-setup-hook))
+
+
+(defun ediff-meta-mode ()
+ "This mode controls all operations on Ediff session groups.
+It is entered through one of the following commands:
+ `ediff-directories'
+ `edirs'
+ `ediff-directories3'
+ `edirs3'
+ `ediff-merge-directories'
+ `edirs-merge'
+ `ediff-merge-directories-with-ancestor'
+ `edirs-merge-with-ancestor'
+ `ediff-directory-revisions'
+ `edir-revisions'
+ `ediff-merge-directory-revisions'
+ `edir-merge-revisions'
+ `ediff-merge-directory-revisions-with-ancestor'
+ `edir-merge-revisions-with-ancestor'
+
+Commands:
+\\{ediff-meta-buffer-map}"
+ ;; FIXME: Use define-derived-mode.
+ (kill-all-local-variables)
+ (setq major-mode 'ediff-meta-mode)
+ (setq mode-name "MetaEdiff")
+ ;; don't use run-mode-hooks here!
+ (run-hooks 'ediff-meta-mode-hook))
+
+
+;; the keymap for the buffer showing directory differences
+(suppress-keymap ediff-dir-diffs-buffer-map)
+(define-key ediff-dir-diffs-buffer-map "q" 'ediff-bury-dir-diffs-buffer)
+(define-key ediff-dir-diffs-buffer-map " " 'next-line)
+(define-key ediff-dir-diffs-buffer-map "n" 'next-line)
+(define-key ediff-dir-diffs-buffer-map "\C-?" 'previous-line)
+(define-key ediff-dir-diffs-buffer-map "p" 'previous-line)
+(define-key ediff-dir-diffs-buffer-map "C" 'ediff-dir-diff-copy-file)
+(if (featurep 'emacs)
+ (define-key ediff-dir-diffs-buffer-map [mouse-2] 'ediff-dir-diff-copy-file)
+ (define-key ediff-dir-diffs-buffer-map [button2] 'ediff-dir-diff-copy-file))
+(define-key ediff-dir-diffs-buffer-map [delete] 'previous-line)
+(define-key ediff-dir-diffs-buffer-map [backspace] 'previous-line)
+
+(defun ediff-next-meta-item (count)
+ "Move to the next item in Ediff registry or session group buffer.
+Moves in circular fashion. With numeric prefix arg, skip this many items."
+ (interactive "p")
+ (or count (setq count 1))
+ (let (overl)
+ (while (< 0 count)
+ (setq count (1- count))
+ (ediff-next-meta-item1)
+ (setq overl (ediff-get-meta-overlay-at-pos (point)))
+ ;; skip invisible ones
+ (while (and overl (ediff-overlay-get overl 'invisible))
+ (ediff-next-meta-item1)
+ (setq overl (ediff-get-meta-overlay-at-pos (point)))))))
+
+;; Move to the next meta item
+(defun ediff-next-meta-item1 ()
+ (let (pos)
+ (setq pos (ediff-next-meta-overlay-start (point)))
+ (if pos (goto-char pos))
+ (if (eq ediff-metajob-name 'ediff-registry)
+ (if (and (ediff-get-meta-info (current-buffer) pos 'noerror)
+ (search-forward "*Ediff" nil t))
+ (skip-chars-backward "a-zA-Z*"))
+ (if (> (skip-chars-forward "-+?H* \t0-9") 0)
+ (backward-char 1)))))
+
+
+(defun ediff-previous-meta-item (count)
+ "Move to the previous item in Ediff registry or session group buffer.
+Moves in circular fashion. With numeric prefix arg, skip this many items."
+ (interactive "p")
+ (or count (setq count 1))
+ (let (overl)
+ (while (< 0 count)
+ (setq count (1- count))
+ (ediff-previous-meta-item1)
+ (setq overl (ediff-get-meta-overlay-at-pos (point)))
+ ;; skip invisible ones
+ (while (and overl (ediff-overlay-get overl 'invisible))
+ (ediff-previous-meta-item1)
+ (setq overl (ediff-get-meta-overlay-at-pos (point)))))))
+
+(defun ediff-previous-meta-item1 ()
+ (let (pos)
+ (setq pos (ediff-previous-meta-overlay-start (point)))
+;;; ;; skip deleted
+;;; (while (ediff-get-session-status
+;;; (ediff-get-meta-info (current-buffer) pos 'noerror))
+;;; (setq pos (ediff-previous-meta-overlay-start pos)))
+
+ (if pos (goto-char pos))
+ (if (eq ediff-metajob-name 'ediff-registry)
+ (if (and (ediff-get-meta-info (current-buffer) pos 'noerror)
+ (search-forward "*Ediff" nil t))
+ (skip-chars-backward "a-zA-Z*"))
+ (if (> (skip-chars-forward "-+?H* \t0-9") 0)
+ (backward-char 1)))
+ ))
+
+(defsubst ediff-add-slash-if-directory (dir file)
+ (if (file-directory-p (concat dir file))
+ (file-name-as-directory file)
+ file))
+
+(defun ediff-toggle-filename-truncation ()
+ "Toggle truncation of long file names in session group buffers.
+Set `ediff-meta-truncate-filenames' variable if you want to change the default
+behavior."
+ (interactive)
+ (setq ediff-meta-truncate-filenames (not ediff-meta-truncate-filenames))
+ (ediff-update-meta-buffer (current-buffer) 'must-redraw))
+
+
+;; These are used to encode membership of files in directory1/2/3
+;; Membership code of a file is a product of codes for the directories where
+;; this file is in
+(defvar ediff-membership-code1 2)
+(defvar ediff-membership-code2 3)
+(defvar ediff-membership-code3 5)
+(defvar ediff-product-of-memcodes (* ediff-membership-code1
+ ediff-membership-code2
+ ediff-membership-code3))
+
+;; DIR1, DIR2, DIR3 are directories. DIR3 can be nil.
+;; OUTPUT-DIR is a directory for auto-storing the results of merge jobs.
+;; Can be nil.
+;; REGEXP is nil or a filter regexp; only file names that match the regexp
+;; are considered.
+;; If a file is a directory in dir1 but not dir2 (or vice versa), it is not
+;; included in the intersection. However, a regular file that is a dir in dir3
+;; is included, since dir3 files are supposed to be ancestors for merging.
+;; If COMPARISON-FUNC is given, use it. Otherwise, use string=
+;;
+;; Returns a list of the form:
+;; (COMMON-PART DIFF-LIST)
+;; COMMON-PART is car and DIFF-LIST is cdr.
+;;
+;; COMMON-PART is of the form:
+;; (META-HEADER (f1 f2 f3) (f1 f2 f3) ...)
+;; f3 can be nil if intersecting only 2 directories.
+;; Each triple (f1 f2 f3) represents the files to be compared in the
+;; corresponding ediff subsession.
+;;
+;; DIFF-LIST is of the form:
+;; (META-HEADER (file . num) (file . num)...)
+;; where num encodes the set of dirs where the file is found:
+;; 2 - only dir1; 3 - only dir2; 5 - only dir3; 6 - dir1&2; 10 - dir1&3; etc.
+;; META-HEADER:
+;; Contains the meta info about this ediff operation
+;; (regexp dir1 dir2 dir3 merge-auto-store-dir comparison-func)
+;; Later the meta-buffer is prepended to this list.
+;;
+;; Some operations might use a different meta header. For instance,
+;; ediff-multifile-patch doesn't have dir2 and dir3, and regexp,
+;; comparison-func don't apply.
+;;
+(defun ediff-intersect-directories (jobname
+ regexp dir1 dir2
+ &optional
+ dir3 merge-autostore-dir comparison-func)
+ (setq comparison-func (or comparison-func 'string=))
+ (let (lis1 lis2 lis3 common auxdir1 auxdir2 auxdir3 common-part difflist)
+
+ (setq auxdir1 (file-name-as-directory dir1)
+ lis1 (directory-files auxdir1 nil regexp)
+ lis1 (delete "." lis1)
+ lis1 (delete ".." lis1)
+ lis1 (mapcar
+ (lambda (elt)
+ (ediff-add-slash-if-directory auxdir1 elt))
+ lis1)
+ auxdir2 (file-name-as-directory dir2)
+ lis2 (directory-files auxdir2 nil regexp)
+ lis2 (delete "." lis2)
+ lis2 (delete ".." lis2)
+ lis2 (mapcar
+ (lambda (elt)
+ (ediff-add-slash-if-directory auxdir2 elt))
+ lis2))
+
+ (if (stringp dir3)
+ (setq auxdir3 (file-name-as-directory dir3)
+ lis3 (directory-files auxdir3 nil regexp)
+ lis3 (delete "." lis3)
+ lis3 (delete ".." lis3)
+ lis3 (mapcar
+ (lambda (elt)
+ (ediff-add-slash-if-directory auxdir3 elt))
+ lis3)))
+
+ (if (ediff-nonempty-string-p merge-autostore-dir)
+ (setq merge-autostore-dir
+ (file-name-as-directory merge-autostore-dir)))
+ (setq common (ediff-intersection lis1 lis2 comparison-func))
+
+ ;; In merge with ancestor jobs, we don't intersect with lis3.
+ ;; If there is no ancestor, we'll offer to merge without the ancestor.
+ ;; So, we intersect with lis3 only when we are doing 3-way file comparison
+ (if (and lis3 (ediff-comparison-metajob3 jobname))
+ (setq common (ediff-intersection common lis3 comparison-func)))
+
+ ;; copying is needed because sort sorts via side effects
+ (setq common (sort (ediff-copy-list common) 'string-lessp))
+
+ ;; compute difference list
+ (setq difflist (ediff-set-difference
+ (ediff-union (ediff-union lis1 lis2 comparison-func)
+ lis3
+ comparison-func)
+ common
+ comparison-func)
+ difflist (delete "." difflist)
+ ;; copying is needed because sort sorts via side effects
+ difflist (sort (ediff-copy-list (delete ".." difflist))
+ 'string-lessp))
+
+ (setq difflist (mapcar (lambda (elt) (cons elt 1)) difflist))
+
+ ;; check for files belonging to lis1/2/3
+ ;; Each elt is of the norm (file . number)
+ ;; Number encodes the directories to which file belongs.
+ ;; It is a product of a subset of ediff-membership-code1=2,
+ ;; ediff-membership-code2=3, and ediff-membership-code3=5.
+ ;; If file belongs to dir 1 only, the membership code is 2.
+ ;; If it is in dir1 and dir3, then the membership code is 2*5=10;
+ ;; if it is in dir1 and dir2, then the membership code is 2*3=6, etc.
+ (mapc (lambda (elt)
+ (if (member (car elt) lis1)
+ (setcdr elt (* (cdr elt) ediff-membership-code1)))
+ (if (member (car elt) lis2)
+ (setcdr elt (* (cdr elt) ediff-membership-code2)))
+ (if (member (car elt) lis3)
+ (setcdr elt (* (cdr elt) ediff-membership-code3)))
+ )
+ difflist)
+ (setq difflist (cons
+ ;; diff metalist header
+ (ediff-make-new-meta-list-header regexp
+ auxdir1 auxdir2 auxdir3
+ merge-autostore-dir
+ comparison-func)
+ difflist))
+
+ (setq common-part
+ (cons
+ ;; metalist header
+ (ediff-make-new-meta-list-header regexp
+ auxdir1 auxdir2 auxdir3
+ merge-autostore-dir
+ comparison-func)
+ (mapcar
+ (lambda (elt)
+ (ediff-make-new-meta-list-element
+ (expand-file-name (concat auxdir1 elt))
+ (expand-file-name (concat auxdir2 elt))
+ (if lis3
+ (progn
+ ;; The following is done because: In merging with
+ ;; ancestor, we don't intersect with lis3. So, it is
+ ;; possible that elt is a file in auxdir1/2 but a
+ ;; directory in auxdir3 Or elt may not exist in auxdir3 at
+ ;; all. In the first case, we add a slash at the end. In
+ ;; the second case, we insert nil.
+ (setq elt (ediff-add-slash-if-directory auxdir3 elt))
+ (if (file-exists-p (concat auxdir3 elt))
+ (expand-file-name (concat auxdir3 elt)))))))
+ common)))
+ ;; return result
+ (cons common-part difflist)
+ ))
+
+;; find directory files that are under revision. Include subdirectories, since
+;; we may visit them recursively. DIR1 is the directory to inspect.
+;; MERGE-AUTOSTORE-DIR is the directory where to auto-store the results of
+;; merges. Can be nil.
+(defun ediff-get-directory-files-under-revision (jobname
+ regexp dir1
+ &optional merge-autostore-dir)
+ (let (lis1 elt common auxdir1)
+ (setq auxdir1 (file-name-as-directory dir1)
+ lis1 (directory-files auxdir1 nil regexp))
+
+ (if (ediff-nonempty-string-p merge-autostore-dir)
+ (setq merge-autostore-dir
+ (file-name-as-directory merge-autostore-dir)))
+
+ (while lis1
+ (setq elt (car lis1)
+ lis1 (cdr lis1))
+ ;; take files under revision control
+ (cond ((file-directory-p (concat auxdir1 elt))
+ (setq common
+ (cons (ediff-add-slash-if-directory auxdir1 elt) common)))
+ ((and (featurep 'vc-hooks) (vc-backend (concat auxdir1 elt)))
+ (setq common (cons elt common)))
+ ;; The following two are needed only if vc-hooks isn't loaded.
+ ;; They won't recognize CVS files.
+ ((file-exists-p (concat auxdir1 elt ",v"))
+ (setq common (cons elt common)))
+ ((file-exists-p (concat auxdir1 "RCS/" elt ",v"))
+ (setq common (cons elt common)))
+ ) ; cond
+ ) ; while
+
+ (setq common (delete "./" common)
+ common (delete "../" common)
+ common (delete "RCS" common)
+ common (delete "CVS" common)
+ )
+
+ ;; copying is needed because sort sorts via side effects
+ (setq common (sort (ediff-copy-list common) 'string-lessp))
+
+ ;; return result
+ (cons
+ ;; header -- has 6 elements. Meta buffer is prepended later by
+ ;; ediff-prepare-meta-buffer
+ (ediff-make-new-meta-list-header regexp
+ auxdir1 nil nil
+ merge-autostore-dir nil)
+ (mapcar (lambda (elt) (ediff-make-new-meta-list-element
+ (expand-file-name (concat auxdir1 elt)) nil nil))
+ common))
+ ))
+
+
+;; If file groups selected by patterns will ever be implemented, this
+;; comparison function might become useful.
+;;;; uses external variables PAT1 PAT2 to compare str1/2
+;;;; patterns must be of the form ???*???? where ??? are strings of chars
+;;;; containing no *.
+;;(defun ediff-pattern= (str1 str2)
+;; (let (pos11 pos12 pos21 pos22 len1 len2)
+;; (setq pos11 0
+;; len (length epat1)
+;; pos12 len)
+;; (while (and (< pos11 len) (not (= (aref epat1 pos11) ?*)))
+;; (setq pos11 (1+ pos11)))
+;; (while (and (> pos12 0) (not (= (aref epat1 (1- pos12)) ?*)))
+;; (setq pos12 (1- pos12)))
+;;
+;; (setq pos21 0
+;; len (length epat2)
+;; pos22 len)
+;; (while (and (< pos21 len) (not (= (aref epat2 pos21) ?*)))
+;; (setq pos21 (1+ pos21)))
+;; (while (and (> pos22 0) (not (= (aref epat2 (1- pos22)) ?*)))
+;; (setq pos22 (1- pos22)))
+;;
+;; (if (and (> (length str1) pos12) (>= pos12 pos11) (> pos11 -1)
+;; (> (length str2) pos22) (>= pos22 pos21) (> pos21 -1))
+;; (string= (substring str1 pos11 pos12)
+;; (substring str2 pos21 pos22)))
+;; ))
+
+
+;; Prepare meta-buffer in accordance with the argument-function and
+;; redraw-function. Must return the created meta-buffer.
+(defun ediff-prepare-meta-buffer (action-func meta-list
+ meta-buffer-name redraw-function
+ jobname &optional startup-hooks)
+ (let* ((meta-buffer-name
+ (ediff-unique-buffer-name meta-buffer-name "*"))
+ (meta-buffer (get-buffer-create meta-buffer-name)))
+ (ediff-with-current-buffer meta-buffer
+
+ ;; comes first
+ (ediff-meta-mode)
+
+ (setq ediff-meta-action-function action-func
+ ediff-meta-redraw-function redraw-function
+ ediff-metajob-name jobname
+ ediff-meta-buffer meta-buffer)
+
+ ;; comes after ediff-meta-action-function is set
+ (ediff-setup-meta-map)
+
+ (if (eq ediff-metajob-name 'ediff-registry)
+ (progn
+ (setq ediff-registry-buffer meta-buffer
+ ediff-meta-list meta-list)
+ ;; this func is used only from registry buffer, not from other
+ ;; meta-buffs.
+ (define-key
+ ediff-meta-buffer-map "M" 'ediff-show-meta-buff-from-registry))
+ ;; Initialize the meta list -- we don't do this for registry.
+ (setq ediff-meta-list
+ ;; add meta-buffer to the list header
+ (cons (cons meta-buffer (car meta-list))
+ (cdr meta-list))))
+
+ (or (eq meta-buffer ediff-registry-buffer)
+ (setq ediff-session-registry
+ (cons meta-buffer ediff-session-registry)))
+
+ ;; redraw-function uses ediff-meta-list
+ (funcall redraw-function ediff-meta-list)
+
+ ;; set read-only/non-modified
+ (setq buffer-read-only t)
+ (set-buffer-modified-p nil)
+
+ (run-hooks 'startup-hooks)
+
+ ;; Arrange to show directory contents differences
+ ;; Must be after run startup-hooks, since ediff-dir-difference-list is
+ ;; set inside these hooks
+ (if (eq action-func 'ediff-filegroup-action)
+ (progn
+ ;; put meta buffer in (car ediff-dir-difference-list)
+ (setq ediff-dir-difference-list
+ (cons (cons meta-buffer (car ediff-dir-difference-list))
+ (cdr ediff-dir-difference-list)))
+
+ (or (ediff-one-filegroup-metajob jobname)
+ (ediff-draw-dir-diffs ediff-dir-difference-list))
+ (define-key
+ ediff-meta-buffer-map "h" 'ediff-mark-for-hiding-at-pos)
+ (define-key ediff-meta-buffer-map "x" 'ediff-hide-marked-sessions)
+ (define-key
+ ediff-meta-buffer-map "m" 'ediff-mark-for-operation-at-pos)
+ (define-key ediff-meta-buffer-map "u" nil)
+ (define-key
+ ediff-meta-buffer-map "um" 'ediff-unmark-all-for-operation)
+ (define-key
+ ediff-meta-buffer-map "uh" 'ediff-unmark-all-for-hiding)
+
+ (define-key ediff-meta-buffer-map
+ [menu-bar ediff-meta-mode ediff-hide-marked-sessions]
+ '(menu-item "Hide marked" ediff-hide-marked-sessions
+ :help "Hide marked sessions. With prefix arg, unhide"))
+
+ (define-key ediff-meta-buffer-map
+ [menu-bar ediff-meta-mode ediff-mark-for-hiding-at-pos]
+ '(menu-item "Mark for hiding" ediff-mark-for-hiding-at-pos
+ :help "Mark session for hiding. With prefix arg, unmark"))
+
+ (define-key ediff-meta-buffer-map
+ [menu-bar ediff-meta-mode ediff-mark-for-operation-at-pos]
+ '(menu-item "Mark for group operation" ediff-mark-for-operation-at-pos
+ :help "Mark session for a group operation. With prefix arg, unmark"))
+
+ (define-key ediff-meta-buffer-map
+ [menu-bar ediff-meta-mode ediff-unmark-all-for-hiding]
+ '(menu-item "Unmark all for hiding" ediff-unmark-all-for-hiding
+ :help "Unmark all sessions marked for hiding"))
+
+ (define-key ediff-meta-buffer-map
+ [menu-bar ediff-meta-mode ediff-unmark-all-for-operation]
+ '(menu-item "Unmark all for group operation" ediff-unmark-all-for-operation
+ :help "Unmark all sessions marked for operation"))
+
+ (cond ((ediff-collect-diffs-metajob jobname)
+ (define-key ediff-meta-buffer-map
+ [menu-bar ediff-meta-mode ediff-collect-custom-diffs]
+ '(menu-item "Collect diffs" ediff-collect-custom-diffs
+ :help "Collect custom diffs of marked sessions in buffer `*Ediff Multifile Diffs*'"))
+ (define-key
+ ediff-meta-buffer-map "P" 'ediff-collect-custom-diffs))
+ ((ediff-patch-metajob jobname)
+ (define-key ediff-meta-buffer-map
+ [menu-bar ediff-meta-mode ediff-meta-show-patch]
+ '(menu-item "Show multi-file patch" ediff-meta-show-patch
+ :help "Show the multi-file patch associated with this group session"))
+ (define-key
+ ediff-meta-buffer-map "P" 'ediff-meta-show-patch)))
+ (define-key ediff-meta-buffer-map "^" 'ediff-up-meta-hierarchy)
+ (define-key ediff-meta-buffer-map "D" 'ediff-show-dir-diffs)
+
+ (define-key ediff-meta-buffer-map
+ [menu-bar ediff-meta-mode ediff-up-meta-hierarchy]
+ '(menu-item "Go to parent session" ediff-up-meta-hierarchy
+ :help "Go to the parent session group buffer"))
+
+ (define-key ediff-meta-buffer-map
+ [menu-bar ediff-meta-mode ediff-show-dir-diffs]
+ '(menu-item "Diff directories" ediff-show-dir-diffs
+ :help "Display differences among the directories involved in session group"))))
+
+ (if (eq ediff-metajob-name 'ediff-registry)
+ (run-hooks 'ediff-registry-setup-hook)
+ (run-hooks 'ediff-after-session-group-setup-hook))
+ ) ; eval in meta-buffer
+ meta-buffer))
+
+;; Insert the activity marker for session SESSION in the meta buffer at point
+;; The activity marker is either SPC (untouched session), or + (active session,
+;; i.e., ediff is currently run in it), or - (finished session, i.e., we've ran
+;; ediff in it and then exited)
+(defun ediff-insert-session-activity-marker-in-meta-buffer (session)
+ (insert
+ (cond ((ediff-get-session-activity-marker session))
+ ;; virgin session
+ (t " "))))
+
+;; Insert session status at point. Status is either ?H (marked for hiding), or
+;; ?I (hidden or invalid), or ?* (meaning marked for an operation; currently,
+;; such op can only be checking for equality)), or SPC (meaning neither marked
+;; nor invalid)
+(defun ediff-insert-session-status-in-meta-buffer (session)
+ (insert
+ (cond ((ediff-get-session-status session)) ; session has status: ?H, ?I, ?*
+ ;; normal session, no marks or hidings
+ (t " "))))
+
+;; If NEW-MARKER is non-nil, use it to substitute the current activity marker
+;; in the meta buffer. If nil, use SPC
+(defun ediff-replace-session-activity-marker-in-meta-buffer (point new-marker)
+ (let* ((overl (ediff-get-meta-overlay-at-pos point))
+ (session-info (ediff-overlay-get overl 'ediff-meta-info))
+ (activity-marker (ediff-get-session-activity-marker session-info))
+ buffer-read-only)
+ (or new-marker activity-marker (setq new-marker ?\s))
+ (goto-char (ediff-overlay-start overl))
+ (if (eq (char-after (point)) new-marker)
+ () ; if marker shown in buffer is the same as new-marker, do nothing
+ (insert new-marker)
+ (delete-char 1)
+ (set-buffer-modified-p nil))))
+
+;; If NEW-STATUS is non-nil, use it to substitute the current status marker in
+;; the meta buffer. If nil, use SPC
+(defun ediff-replace-session-status-in-meta-buffer (point new-status)
+ (let* ((overl (ediff-get-meta-overlay-at-pos point))
+ (session-info (ediff-overlay-get overl 'ediff-meta-info))
+ (status (ediff-get-session-status session-info))
+ buffer-read-only)
+ (setq new-status (or new-status status ?\s))
+ (goto-char (ediff-overlay-start overl))
+ (forward-char 1) ; status is the second char in session record
+ (if (eq (char-after (point)) new-status)
+ () ; if marker shown in buffer is the same as new-marker, do nothing
+ (insert new-status)
+ (delete-char 1)
+ (set-buffer-modified-p nil))))
+
+;; insert all file info in meta buffer for a given session
+(defun ediff-insert-session-info-in-meta-buffer (session-info sessionNum)
+ (let ((f1 (ediff-get-session-objA session-info))
+ (f2 (ediff-get-session-objB session-info))
+ (f3 (ediff-get-session-objC session-info))
+ (pt (point))
+ (hidden (eq (ediff-get-session-status session-info) ?I)))
+ ;; insert activity marker, i.e., SPC, - or +
+ (ediff-insert-session-activity-marker-in-meta-buffer session-info)
+ ;; insert session status, i.e., *, H
+ (ediff-insert-session-status-in-meta-buffer session-info)
+ (insert " Session " (int-to-string sessionNum) ":\n")
+ (ediff-meta-insert-file-info1 f1)
+ (ediff-meta-insert-file-info1 f2)
+ (ediff-meta-insert-file-info1 f3)
+ (ediff-set-meta-overlay pt (point) session-info sessionNum hidden)))
+
+
+;; this is a setup function for ediff-directories
+;; must return meta-buffer
+(defun ediff-redraw-directory-group-buffer (meta-list)
+ ;; extract directories
+ (let ((meta-buf (ediff-get-group-buffer meta-list))
+ (empty t)
+ (sessionNum 0)
+ regexp elt merge-autostore-dir
+ point tmp-list buffer-read-only)
+ (ediff-with-current-buffer meta-buf
+ (setq point (point))
+ (erase-buffer)
+ ;; delete phony overlays that used to represent sessions before the buff
+ ;; was redrawn
+ (if (featurep 'xemacs)
+ (map-extents 'delete-extent)
+ (mapc 'delete-overlay (overlays-in 1 1)))
+
+ (setq regexp (ediff-get-group-regexp meta-list)
+ merge-autostore-dir
+ (ediff-get-group-merge-autostore-dir meta-list))
+
+ (if ediff-verbose-help-enabled
+ (progn
+ (insert (format ediff-meta-buffer-verbose-message
+ (ediff-abbrev-jobname ediff-metajob-name)))
+
+ (cond ((ediff-collect-diffs-metajob)
+ (insert
+ " P:\tcollect custom diffs of all marked sessions\n"))
+ ((ediff-patch-metajob)
+ (insert
+ " P:\tshow patch appropriately for the context (session or group)\n")))
+ (insert
+ " ^:\tshow parent session group\n")
+ (or (ediff-one-filegroup-metajob)
+ (insert
+ " D:\tshow differences among directories\n"
+ " ==:\tfor each session, show which files are identical\n"
+ " =h:\tlike ==, but also marks sessions for hiding\n"
+ " =m:\tlike ==, but also marks sessions for operation\n\n")))
+ (insert (format ediff-meta-buffer-brief-message
+ (ediff-abbrev-jobname ediff-metajob-name))))
+
+ (insert "\n")
+ (if (and (stringp regexp) (> (length regexp) 0))
+ (insert
+ (format "*** Filter-through regular expression: %s\n" regexp)))
+ (ediff-insert-dirs-in-meta-buffer meta-list)
+ (if (and ediff-autostore-merges (ediff-merge-metajob)
+ (ediff-nonempty-string-p merge-autostore-dir))
+ (insert (format
+ "\nMerge results are automatically stored in:\n\t%s\n"
+ merge-autostore-dir)))
+ (insert "\n
+ Size Last modified Name
+ ----------------------------------------------
+
+")
+
+ ;; discard info on directories and regexp
+ (setq meta-list (cdr meta-list)
+ tmp-list meta-list)
+ (while (and tmp-list empty)
+ (if (and (car tmp-list)
+ (not (eq (ediff-get-session-status (car tmp-list)) ?I)))
+ (setq empty nil))
+ (setq tmp-list (cdr tmp-list)))
+
+ (if empty
+ (insert
+ " ****** ****** This session group has no members\n"))
+
+ ;; now organize file names like this:
+ ;; use-mark sizeA dateA sizeB dateB filename
+ ;; make sure directories are displayed with a trailing slash.
+ (while meta-list
+ (setq elt (car meta-list)
+ meta-list (cdr meta-list)
+ sessionNum (1+ sessionNum))
+ (if (eq (ediff-get-session-status elt) ?I)
+ ()
+ (ediff-insert-session-info-in-meta-buffer elt sessionNum)))
+ (set-buffer-modified-p nil)
+ (goto-char point)
+ meta-buf)))
+
+(defun ediff-update-markers-in-dir-meta-buffer (meta-list)
+ (let ((meta-buf (ediff-get-group-buffer meta-list))
+ session-info point overl buffer-read-only)
+ (ediff-with-current-buffer meta-buf
+ (setq point (point))
+ (goto-char (point-min))
+ (ediff-next-meta-item1)
+ (while (not (bobp))
+ (setq session-info (ediff-get-meta-info meta-buf (point) 'no-error)
+ overl (ediff-get-meta-overlay-at-pos (point)))
+ (if session-info
+ (progn
+ (cond ((eq (ediff-get-session-status session-info) ?I)
+ ;; Do hiding
+ (if overl (ediff-overlay-put overl 'invisible t)))
+ ((and (eq (ediff-get-session-status session-info) ?H)
+ overl (ediff-overlay-get overl 'invisible))
+ ;; Do unhiding
+ (ediff-overlay-put overl 'invisible nil))
+ (t (ediff-replace-session-activity-marker-in-meta-buffer
+ (point)
+ (ediff-get-session-activity-marker session-info))
+ (ediff-replace-session-status-in-meta-buffer
+ (point)
+ (ediff-get-session-status session-info))))))
+ (ediff-next-meta-item1) ; advance to the next item
+ ) ; end while
+ (set-buffer-modified-p nil)
+ (goto-char point))
+ meta-buf))
+
+(defun ediff-update-session-marker-in-dir-meta-buffer (session-num)
+ (let (buffer-meta-overlays session-info overl buffer-read-only)
+ (setq overl
+ (if (featurep 'xemacs)
+ (map-extents
+ (lambda (ext maparg)
+ (if (and
+ (ediff-overlay-get ext 'ediff-meta-info)
+ (eq (ediff-overlay-get ext 'ediff-meta-session-number)
+ session-num))
+ ext)))
+ ;; Emacs doesn't have map-extents, so try harder
+ ;; Splice overlay lists to get all buffer overlays
+ (setq buffer-meta-overlays (overlay-lists)
+ buffer-meta-overlays (append (car buffer-meta-overlays)
+ (cdr buffer-meta-overlays)))
+ (car
+ (delq nil
+ (mapcar
+ (lambda (overl)
+ (if (and
+ (ediff-overlay-get overl 'ediff-meta-info)
+ (eq (ediff-overlay-get
+ overl 'ediff-meta-session-number)
+ session-num))
+ overl))
+ buffer-meta-overlays)))))
+ (or overl
+ (error
+ "Bug in ediff-update-session-marker-in-dir-meta-buffer: no overlay with given number %S"
+ session-num))
+ (setq session-info (ediff-overlay-get overl 'ediff-meta-info))
+ (goto-char (ediff-overlay-start overl))
+ (ediff-replace-session-activity-marker-in-meta-buffer
+ (point)
+ (ediff-get-session-activity-marker session-info))
+ (ediff-replace-session-status-in-meta-buffer
+ (point)
+ (ediff-get-session-status session-info)))
+ (ediff-next-meta-item1))
+
+
+
+;; Check if this is a problematic session.
+;; Return nil if not. Otherwise, return symbol representing the problem
+;; At present, problematic sessions occur only in -with-ancestor comparisons
+;; when the ancestor is a directory rather than a file, or when there is no
+;; suitable ancestor file in the ancestor directory
+(defun ediff-problematic-session-p (session)
+ (let ((f1 (ediff-get-session-objA-name session))
+ (f2 (ediff-get-session-objB-name session))
+ (f3 (ediff-get-session-objC-name session)))
+ (cond ((and (stringp f1) (not (file-directory-p f1))
+ (stringp f2) (not (file-directory-p f2))
+ ;; either invalid file name or a directory
+ (or (not (stringp f3)) (file-directory-p f3))
+ (ediff-ancestor-metajob))
+ ;; more may be added later
+ 'ancestor-is-dir)
+ (t nil))))
+
+(defun ediff-meta-insert-file-info1 (fileinfo)
+ (let ((fname (car fileinfo))
+ (feq (ediff-get-file-eqstatus fileinfo))
+ (max-filename-width (if ediff-meta-truncate-filenames
+ (- (window-width) 41)
+ 500))
+ file-modtime file-size)
+ (cond ((not (stringp fname)) (setq file-size -2)) ; file doesn't exits
+ ((ediff-listable-file fname)
+ (if (file-exists-p fname)
+ ;; set real size and modtime
+ (setq file-size (ediff-file-size fname)
+ file-modtime (ediff-file-modtime fname))
+ (setq file-size -2))) ; file doesn't exist
+ ( t (setq file-size -1))) ; remote file
+ (if (stringp fname)
+ (insert
+ (format
+ "%s %s %-20s %s\n"
+ (if feq "=" " ") ; equality indicator
+ (format "%10s" (cond ((= file-size -1) "--")
+ ((< file-size -1) "--")
+ (t file-size)))
+ (cond ((= file-size -1) "*remote file*")
+ ((< file-size -1) "*file doesn't exist*")
+ (t (ediff-format-date (decode-time file-modtime))))
+
+ ;; dir names in meta lists have training slashes, so we just
+ ;; abbreviate the file name, if file exists
+ (if (and (not (stringp fname)) (< file-size -1))
+ "-------" ; file doesn't exist
+ (ediff-truncate-string-left
+ (ediff-abbreviate-file-name fname)
+ max-filename-width)))))))
+
+(defconst ediff-months '((1 . "Jan") (2 . "Feb") (3 . "Mar") (4 . "Apr")
+ (5 . "May") (6 . "Jun") (7 . "Jul") (8 . "Aug")
+ (9 . "Sep") (10 . "Oct") (11 . "Nov") (12 . "Dec"))
+ "Months' associative array.")
+
+;; returns 2char string
+(defsubst ediff-fill-leading-zero (num)
+ (if (< num 10)
+ (format "0%d" num)
+ (number-to-string num)))
+
+;; TIME is like the output of decode-time
+(defun ediff-format-date (time)
+ (format "%s %2d %4d %s:%s:%s"
+ (cdr (assoc (nth 4 time) ediff-months)) ; month
+ (nth 3 time) ; day
+ (nth 5 time) ; year
+ (ediff-fill-leading-zero (nth 2 time)) ; hour
+ (ediff-fill-leading-zero (nth 1 time)) ; min
+ (ediff-fill-leading-zero (nth 0 time)) ; sec
+ ))
+
+;; Draw the directories
+(defun ediff-insert-dirs-in-meta-buffer (meta-list)
+ (let* ((dir1 (ediff-abbreviate-file-name (ediff-get-group-objA meta-list)))
+ (dir2 (ediff-get-group-objB meta-list))
+ (dir2 (if (stringp dir2) (ediff-abbreviate-file-name dir2)))
+ (dir3 (ediff-get-group-objC meta-list))
+ (dir3 (if (stringp dir3) (ediff-abbreviate-file-name dir3))))
+ (insert "*** Directory A: " dir1 "\n")
+ (if dir2 (insert "*** Directory B: " dir2 "\n"))
+ (if dir3 (insert "*** Directory C: " dir3 "\n"))
+ (insert "\n")))
+
+(defun ediff-draw-dir-diffs (diff-list &optional buf-name)
+ (if (null diff-list) (error "Lost difference info on these directories"))
+ (setq buf-name
+ (or buf-name
+ (ediff-unique-buffer-name "*Ediff File Group Differences" "*")))
+ (let* ((regexp (ediff-get-group-regexp diff-list))
+ (dir1 (ediff-abbreviate-file-name (ediff-get-group-objA diff-list)))
+ (dir2 (ediff-abbreviate-file-name (ediff-get-group-objB diff-list)))
+ (dir3 (ediff-get-group-objC diff-list))
+ (dir3 (if (stringp dir3) (ediff-abbreviate-file-name dir3)))
+ (meta-buf (ediff-get-group-buffer diff-list))
+ (underline (make-string 26 ?-))
+ file membership-code saved-point
+ buffer-read-only)
+ ;; skip the directory part
+ (setq diff-list (cdr diff-list))
+ (setq ediff-dir-diffs-buffer (get-buffer-create buf-name))
+ (ediff-with-current-buffer ediff-dir-diffs-buffer
+ (setq saved-point (point))
+ (use-local-map ediff-dir-diffs-buffer-map)
+ (erase-buffer)
+ (setq ediff-meta-buffer meta-buf)
+ (insert "\t\t*** Directory Differences ***\n")
+ (insert "
+Useful commands:
+ C,button2: over file name -- copy this file to directory that doesn't have it
+ q: hide this buffer
+ n,SPC: next line
+ p,DEL: previous line\n\n")
+
+ (insert (format "\n*** Directory A: %s\n" dir1))
+ (if dir2 (insert (format "*** Directory B: %s\n" dir2)))
+ (if dir3 (insert (format "*** Directory C: %s\n" dir3)))
+ (if (and (stringp regexp) (> (length regexp) 0))
+ (insert
+ (format "*** Filter-through regular expression: %s\n" regexp)))
+ (insert "\n")
+ (insert (format "\n%-27s%-26s" "Directory A" "Directory B"))
+ (if dir3
+ (insert (format " %-25s\n" "Directory C"))
+ (insert "\n"))
+ (insert (format "%s%s" underline underline))
+ (if (stringp dir3)
+ (insert (format "%s\n\n" underline))
+ (insert "\n\n"))
+
+ (if (null diff-list)
+ (insert "\n\t*** No differences ***\n"))
+
+ (while diff-list
+ (setq file (car (car diff-list))
+ membership-code (cdr (car diff-list))
+ diff-list (cdr diff-list))
+ (if (= (mod membership-code ediff-membership-code1) 0) ; dir1
+ (let ((beg (point)))
+ (insert (format "%-27s"
+ (ediff-truncate-string-left
+ (ediff-abbreviate-file-name
+ (if (file-directory-p (concat dir1 file))
+ (file-name-as-directory file)
+ file))
+ 24)))
+ ;; format of meta info in the dir-diff-buffer:
+ ;; (filename-tail filename-full otherdir1 otherdir2 otherdir3)
+ (ediff-set-meta-overlay
+ beg (point)
+ (list meta-buf file (concat dir1 file) dir1 dir2 dir3)))
+ (insert (format "%-27s" "---")))
+ (if (= (mod membership-code ediff-membership-code2) 0) ; dir2
+ (let ((beg (point)))
+ (insert (format "%-26s"
+ (ediff-truncate-string-left
+ (ediff-abbreviate-file-name
+ (if (file-directory-p (concat dir2 file))
+ (file-name-as-directory file)
+ file))
+ 24)))
+ (ediff-set-meta-overlay
+ beg (point)
+ (list meta-buf file (concat dir2 file) dir1 dir2 dir3)))
+ (insert (format "%-26s" "---")))
+ (if (stringp dir3)
+ (if (= (mod membership-code ediff-membership-code3) 0) ; dir3
+ (let ((beg (point)))
+ (insert (format " %-25s"
+ (ediff-truncate-string-left
+ (ediff-abbreviate-file-name
+ (if (file-directory-p (concat dir3 file))
+ (file-name-as-directory file)
+ file))
+ 24)))
+ (ediff-set-meta-overlay
+ beg (point)
+ (list meta-buf file (concat dir3 file) dir1 dir2 dir3)))
+ (insert (format " %-25s" "---"))))
+ (insert "\n"))
+ (setq buffer-read-only t)
+ (set-buffer-modified-p nil)
+ (goto-char saved-point)) ; end eval in diff buffer
+ ))
+
+(defun ediff-bury-dir-diffs-buffer ()
+ "Bury the directory difference buffer. Display the meta buffer instead."
+ (interactive)
+ ;; ediff-meta-buffer is set in ediff-draw-dir-diffs so the directory
+ ;; difference buffer remembers the meta buffer
+ (let ((buf ediff-meta-buffer)
+ wind)
+ (ediff-kill-buffer-carefully ediff-dir-diffs-buffer)
+ (if (setq wind (ediff-get-visible-buffer-window buf))
+ (select-window wind)
+ (set-window-buffer (selected-window) buf))))
+
+;; executes in dir session group buffer
+;; show buffer differences
+(defun ediff-show-dir-diffs ()
+ "Display differences among the directories involved in session group."
+ (interactive)
+ (if (ediff-one-filegroup-metajob)
+ (error "This command is inapplicable in the present context"))
+ (or (ediff-buffer-live-p ediff-dir-diffs-buffer)
+ (ediff-draw-dir-diffs ediff-dir-difference-list))
+ (let ((buf ediff-dir-diffs-buffer))
+ (other-window 1)
+ (set-window-buffer (selected-window) buf)
+ (goto-char (point-min))))
+
+;; Format of meta info in dir-diff-buffer:
+;; (filename-tail filename-full otherdir1 otherdir2)
+(defun ediff-dir-diff-copy-file ()
+ "Copy file described at point to directories where this file is missing."
+ (interactive)
+ (let* ((pos (ediff-event-point last-command-event))
+ (info (ediff-get-meta-info (current-buffer) pos 'noerror))
+ (meta-buf (car info))
+ (file-tail (nth 1 info))
+ (file-abs (nth 2 info))
+ (otherdir1 (nth 3 info))
+ (otherfile1 (if otherdir1 (concat otherdir1 file-tail)))
+ (otherdir2 (nth 4 info))
+ (otherfile2 (if otherdir2 (concat otherdir2 file-tail)))
+ (otherdir3 (nth 5 info))
+ (otherfile3 (if otherdir3 (concat otherdir3 file-tail)))
+ meta-list dir-diff-list
+ )
+ (if (null info)
+ (error "No file suitable for copying described at this location"))
+ (ediff-with-current-buffer meta-buf
+ (setq meta-list ediff-meta-list
+ dir-diff-list ediff-dir-difference-list))
+
+ ;; copy file to directories where it doesn't exist, update
+ ;; ediff-dir-difference-list and redisplay
+ (mapc
+ (lambda (otherfile-struct)
+ (let ((otherfile (car otherfile-struct))
+ (file-mem-code (cdr otherfile-struct)))
+ (if otherfile
+ (or (file-exists-p otherfile)
+ (if (y-or-n-p
+ (format "Copy %s to %s? " file-abs otherfile))
+ (let* ((file-diff-record (assoc file-tail dir-diff-list))
+ (new-mem-code
+ (* (cdr file-diff-record) file-mem-code)))
+ (copy-file file-abs otherfile)
+ (setcdr file-diff-record new-mem-code)
+ (ediff-draw-dir-diffs dir-diff-list (buffer-name))
+ (sit-for 0)
+ ;; if file is in all three dirs or in two dirs and only
+ ;; two dirs are involved, delete this file's record
+ (if (or (= new-mem-code ediff-product-of-memcodes)
+ (and (> new-mem-code ediff-membership-code3)
+ (null otherfile3)))
+ (delq file-diff-record dir-diff-list))
+ ))))
+ ))
+ ;; 2,3,5 are numbers used to encode membership of a file in
+ ;; dir1/2/3. See ediff-intersect-directories.
+ (list (cons otherfile1 2) (cons otherfile2 3) (cons otherfile3 5)))
+
+ (if (and (file-exists-p otherfile1)
+ (file-exists-p otherfile2)
+ (or (not otherfile3) (file-exists-p otherfile3)))
+ ;; update ediff-meta-list by direct modification
+ (nconc meta-list
+ (list (ediff-make-new-meta-list-element
+ (expand-file-name otherfile1)
+ (expand-file-name otherfile2)
+ (if otherfile3
+ (expand-file-name otherfile3)))))
+ )
+ (ediff-update-meta-buffer meta-buf 'must-redraw)
+ ))
+
+(defun ediff-up-meta-hierarchy ()
+ "Go to the parent session group buffer."
+ (interactive)
+ (if (ediff-buffer-live-p ediff-parent-meta-buffer)
+ (ediff-show-meta-buffer
+ ediff-parent-meta-buffer ediff-meta-session-number)
+ (error "This session group has no parent")))
+
+
+;; argument is ignored
+(defun ediff-redraw-registry-buffer (&optional ignore)
+ (ediff-with-current-buffer ediff-registry-buffer
+ (let ((point (point))
+ elt bufAname bufBname bufCname cur-diff total-diffs pt
+ job-name meta-list registry-list buffer-read-only)
+ (erase-buffer)
+ ;; delete phony overlays that used to represent sessions before the buff
+ ;; was redrawn
+ (if (featurep 'xemacs)
+ (map-extents 'delete-extent)
+ (mapc 'delete-overlay (overlays-in 1 1)))
+
+ (insert "This is a registry of all active Ediff sessions.
+
+Useful commands:
+ button2, `v', RET over a session record: switch to that session
+ M over a session record: display the associated session group
+ R in any Ediff session: display session registry
+ n,SPC: next session
+ p,DEL: previous session
+ E: browse Ediff on-line manual
+ q: bury registry
+
+
+\t\tActive Ediff Sessions:
+\t\t----------------------
+
+")
+ ;; purge registry list from dead buffers
+ (mapc (lambda (elt)
+ (if (not (ediff-buffer-live-p elt))
+ (setq ediff-session-registry
+ (delq elt ediff-session-registry))))
+ ediff-session-registry)
+
+ (if (null ediff-session-registry)
+ (insert " ******* No active Ediff sessions *******\n"))
+
+ (setq registry-list ediff-session-registry)
+ (while registry-list
+ (setq elt (car registry-list)
+ registry-list (cdr registry-list))
+
+ (if (ediff-buffer-live-p elt)
+ (if (ediff-with-current-buffer elt
+ (setq job-name ediff-metajob-name
+ meta-list ediff-meta-list)
+ (and ediff-metajob-name
+ (not (eq ediff-metajob-name 'ediff-registry))))
+ (progn
+ (setq pt (point))
+ (insert (format " *group*\t%s: %s\n"
+ (buffer-name elt)
+ (ediff-abbrev-jobname job-name)))
+ (insert (format "\t\t %s %s %s\n"
+ (ediff-abbreviate-file-name
+ (ediff-get-group-objA meta-list))
+ (ediff-abbreviate-file-name
+ (if (stringp
+ (ediff-get-group-objB meta-list))
+ (ediff-get-group-objB meta-list)
+ ""))
+ (ediff-abbreviate-file-name
+ (if (stringp
+ (ediff-get-group-objC meta-list))
+ (ediff-get-group-objC meta-list)
+ ""))))
+ (ediff-set-meta-overlay pt (point) elt))
+ (progn
+ (ediff-with-current-buffer elt
+ (setq bufAname (if (ediff-buffer-live-p ediff-buffer-A)
+ (buffer-name ediff-buffer-A)
+ "!!!killed buffer!!!")
+ bufBname (if (ediff-buffer-live-p ediff-buffer-B)
+ (buffer-name ediff-buffer-B)
+ "!!!killed buffer!!!")
+ bufCname (cond ((not (ediff-3way-job))
+ "")
+ ((ediff-buffer-live-p ediff-buffer-C)
+ (buffer-name ediff-buffer-C))
+ (t "!!!killed buffer!!!")))
+ (setq total-diffs (format "%-4d" ediff-number-of-differences)
+ cur-diff
+ (cond ((= ediff-current-difference -1) " _")
+ ((= ediff-current-difference
+ ediff-number-of-differences)
+ " $")
+ (t (format
+ "%4d" (1+ ediff-current-difference))))
+ job-name ediff-job-name))
+ ;; back in the meta buf
+ (setq pt (point))
+ (insert cur-diff "/" total-diffs "\t"
+ (buffer-name elt)
+ (format ": %s" (ediff-abbrev-jobname job-name)))
+ (insert
+ "\n\t\t " bufAname " " bufBname " " bufCname "\n")
+ (ediff-set-meta-overlay pt (point) elt))))
+ ) ; while
+ (set-buffer-modified-p nil)
+ (goto-char point)
+ )))
+
+;; Sets overlay around a meta record with 'ediff-meta-info property PROP
+;; If optional SESSION-NUMBER, make it a property of the overlay,
+;; ediff-meta-session-number
+;; PROP is either the ctl or meta buffer (used when we work with the registry)
+;; or a session meta descriptor of the form
+;; (SESSION-CTL-BUFFER STATUS OBJA OBJB OBJC)
+(defun ediff-set-meta-overlay (b e prop &optional session-number hidden)
+ (let (overl)
+ (setq overl (ediff-make-overlay b e))
+ (if (featurep 'emacs)
+ (ediff-overlay-put overl 'mouse-face 'highlight)
+ (ediff-overlay-put overl 'highlight t))
+ (ediff-overlay-put overl 'ediff-meta-info prop)
+ (ediff-overlay-put overl 'invisible hidden)
+ (ediff-overlay-put overl 'follow-link t)
+ (if (numberp session-number)
+ (ediff-overlay-put overl 'ediff-meta-session-number session-number))))
+
+(defun ediff-mark-for-hiding-at-pos (unmark)
+ "Mark session for hiding. With prefix arg, unmark."
+ (interactive "P")
+ (let* ((pos (ediff-event-point last-command-event))
+ (meta-buf (ediff-event-buffer last-command-event))
+ ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
+ (info (ediff-get-meta-info meta-buf pos))
+ (session-number (ediff-get-session-number-at-pos pos)))
+ (ediff-mark-session-for-hiding info unmark)
+ (ediff-next-meta-item 1)
+ (save-excursion
+ (ediff-update-meta-buffer meta-buf nil session-number))
+ ))
+
+;; Returns whether session was marked or unmarked
+(defun ediff-mark-session-for-hiding (info unmark)
+ (let ((session-buf (ediff-get-session-buffer info))
+ ignore)
+ (cond ((eq unmark 'mark) (setq unmark nil))
+ ((eq (ediff-get-session-status info) ?H) (setq unmark t))
+ (unmark ; says unmark, but the marker is different from H
+ (setq ignore t)))
+ (cond (ignore)
+ (unmark (ediff-set-session-status info nil))
+;;; (if (ediff-buffer-live-p session-buf)
+;;; (error "Can't hide active session, %s" (buffer-name session-buf)))
+ (t (ediff-set-session-status info ?H))))
+ unmark)
+
+
+(defun ediff-mark-for-operation-at-pos (unmark)
+ "Mark session for a group operation. With prefix arg, unmark."
+ (interactive "P")
+ (let* ((pos (ediff-event-point last-command-event))
+ (meta-buf (ediff-event-buffer last-command-event))
+ ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
+ (info (ediff-get-meta-info meta-buf pos))
+ (session-number (ediff-get-session-number-at-pos pos)))
+ (ediff-mark-session-for-operation info unmark)
+ (ediff-next-meta-item 1)
+ (save-excursion
+ (ediff-update-meta-buffer meta-buf nil session-number))
+ ))
+
+
+;; returns whether session was unmarked.
+;; remember: this is a toggle op
+(defun ediff-mark-session-for-operation (info unmark)
+ (let (ignore)
+ (cond ((eq unmark 'mark) (setq unmark nil))
+ ((eq (ediff-get-session-status info) ?*) (setq unmark t))
+ (unmark ; says unmark, but the marker is different from *
+ (setq ignore t)))
+ (cond (ignore)
+ (unmark (ediff-set-session-status info nil))
+ (t (ediff-set-session-status info ?*))))
+ unmark)
+
+
+(defun ediff-hide-marked-sessions (unhide)
+ "Hide marked sessions. With prefix arg, unhide."
+ (interactive "P")
+ (let ((grp-buf (ediff-get-group-buffer ediff-meta-list))
+ (meta-list (cdr ediff-meta-list))
+ (from (if unhide ?I ?H))
+ (to (if unhide ?H ?I))
+ (numMarked 0)
+ active-sessions-exist session-buf elt)
+ (while meta-list
+ (setq elt (car meta-list)
+ meta-list (cdr meta-list)
+ session-buf (ediff-get-session-buffer elt))
+
+ (if (eq (ediff-get-session-status elt) from)
+ (progn
+ (setq numMarked (1+ numMarked))
+ (if (and (eq to ?I) (buffer-live-p session-buf))
+ ;; shouldn't hide active sessions
+ (setq active-sessions-exist t)
+ (ediff-set-session-status elt to)))))
+ (if (> numMarked 0)
+ (ediff-update-meta-buffer grp-buf 'must-redraw)
+ (beep)
+ (if unhide
+ (message "Nothing to reveal...")
+ (message "Nothing to hide...")))
+ (if active-sessions-exist
+ (message "Note: Ediff didn't hide active sessions!"))
+ ))
+
+;; Apply OPERATION to marked sessions. Operation expects one argument of type
+;; meta-list member (not the first one), i.e., a regular session description.
+;; Returns number of marked sessions on which operation was performed
+(defun ediff-operate-on-marked-sessions (operation)
+ (let ((grp-buf (ediff-get-group-buffer ediff-meta-list))
+ (meta-list (cdr ediff-meta-list))
+ (marksym ?*)
+ (numMarked 0)
+ (sessionNum 0)
+ (diff-buffer ediff-meta-diff-buffer)
+ session-buf elt)
+ (while meta-list
+ (setq elt (car meta-list)
+ meta-list (cdr meta-list)
+ sessionNum (1+ sessionNum))
+ (cond ((eq (ediff-get-session-status elt) marksym)
+ (save-excursion
+ (setq numMarked (1+ numMarked))
+ (funcall operation elt sessionNum)))
+ ;; The following goes into a session represented by a subdirectory
+ ;; and applies operation to marked sessions there
+ ((and (ediff-meta-session-p elt)
+ (ediff-buffer-live-p
+ (setq session-buf (ediff-get-session-buffer elt))))
+ (setq numMarked
+ (+ numMarked
+ (ediff-with-current-buffer session-buf
+ ;; pass meta-diff along
+ (setq ediff-meta-diff-buffer diff-buffer)
+ ;; collect diffs in child group
+ (ediff-operate-on-marked-sessions operation)))))))
+ (ediff-update-meta-buffer grp-buf 'must-redraw) ; just in case
+ numMarked
+ ))
+
+(defun ediff-append-custom-diff (session sessionNum)
+ (or (ediff-collect-diffs-metajob)
+ (error "Can't compute multifile patch in this context"))
+ (let ((session-buf (ediff-get-session-buffer session))
+ (meta-diff-buff ediff-meta-diff-buffer)
+ (metajob ediff-metajob-name)
+ tmp-buf custom-diff-buf)
+ (if (ediff-buffer-live-p session-buf)
+ (ediff-with-current-buffer session-buf
+ (if (eq ediff-control-buffer session-buf) ; individual session
+ (progn
+ (ediff-compute-custom-diffs-maybe)
+ (setq custom-diff-buf ediff-custom-diff-buffer)))))
+
+ (or (ediff-buffer-live-p meta-diff-buff)
+ (error "Ediff: something wrong--killed multiple diff's buffer"))
+
+ (cond ((ediff-buffer-live-p custom-diff-buf)
+ ;; for live session buffers we do them first because the user may
+ ;; have changed them with respect to the underlying files
+ (with-current-buffer meta-diff-buff
+ (goto-char (point-max))
+ (insert-buffer-substring custom-diff-buf)
+ (insert "\n")))
+ ;; if ediff session is not live, run diff directly on the files
+ ((memq metajob '(ediff-directories
+ ediff-merge-directories
+ ediff-merge-directories-with-ancestor))
+ ;; get diffs by calling shell command on ediff-custom-diff-program
+ (with-current-buffer
+ (setq tmp-buf (get-buffer-create ediff-tmp-buffer))
+ (erase-buffer)
+ (shell-command
+ (format
+ "%s %s %s %s"
+ (shell-quote-argument ediff-custom-diff-program)
+ ediff-custom-diff-options
+ (shell-quote-argument (ediff-get-session-objA-name session))
+ (shell-quote-argument (ediff-get-session-objB-name session))
+ )
+ t)
+ )
+ (with-current-buffer meta-diff-buff
+ (goto-char (point-max))
+ (insert-buffer-substring tmp-buf)
+ (insert "\n")))
+ (t
+ (ediff-kill-buffer-carefully meta-diff-buff)
+ (error "Session %d compares versions of file. Such session must be active to enable multifile patch collection" sessionNum )))
+ ))
+
+(defun ediff-collect-custom-diffs ()
+ "Collect custom diffs of marked sessions in buffer `*Ediff Multifile Diffs*'.
+This operation is defined only for `ediff-directories' and
+`ediff-directory-revisions', since its intent is to produce
+multifile patches. For `ediff-directory-revisions', we insist that
+all marked sessions must be active."
+ (interactive)
+ (let ((coding-system-for-read ediff-coding-system-for-read))
+ (or (ediff-buffer-live-p ediff-meta-diff-buffer)
+ (setq ediff-meta-diff-buffer
+ (get-buffer-create
+ (ediff-unique-buffer-name "*Ediff Multifile Diffs" "*"))))
+ (ediff-with-current-buffer ediff-meta-diff-buffer
+ (setq buffer-read-only nil)
+ (erase-buffer))
+ (if (> (ediff-operate-on-marked-sessions 'ediff-append-custom-diff) 0)
+ ;; did something
+ (progn
+ (display-buffer ediff-meta-diff-buffer 'not-this-window)
+ (ediff-with-current-buffer ediff-meta-diff-buffer
+ (set-buffer-modified-p nil)
+ (setq buffer-read-only t))
+ (if (fboundp 'diff-mode)
+ (with-current-buffer ediff-meta-diff-buffer
+ (diff-mode))))
+ (beep)
+ (message "No marked sessions found"))))
+
+(defun ediff-meta-show-patch ()
+ "Show the multi-file patch associated with this group session."
+ (interactive)
+ (let* ((pos (ediff-event-point last-command-event))
+ (meta-buf (ediff-event-buffer last-command-event))
+ (info (ediff-get-meta-info meta-buf pos 'noerror))
+ (patchbuffer ediff-meta-patchbufer))
+ (if (ediff-buffer-live-p patchbuffer)
+ (ediff-with-current-buffer patchbuffer
+ (save-restriction
+ (if (not info)
+ (widen)
+ (narrow-to-region
+ (ediff-get-session-objB-name info)
+ (ediff-get-session-objC-name info)))
+ (set-buffer (get-buffer-create ediff-tmp-buffer))
+ (erase-buffer)
+ (insert-buffer-substring patchbuffer)
+ (goto-char (point-min))
+ (display-buffer ediff-tmp-buffer 'not-this-window)
+ ))
+ (error "The patch buffer wasn't found"))))
+
+
+;; This function executes in meta buffer. It knows where event happened.
+(defun ediff-filegroup-action ()
+ "Execute appropriate action for a selected session."
+ (interactive)
+ (let* ((pos (ediff-event-point last-command-event))
+ (meta-buf (ediff-event-buffer last-command-event))
+ ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
+ (info (ediff-get-meta-info meta-buf pos))
+ (session-buf (ediff-get-session-buffer info))
+ (session-number (ediff-get-session-number-at-pos pos meta-buf))
+ (default-regexp (eval ediff-default-filtering-regexp))
+ merge-autostore-dir file1 file2 file3 regexp)
+
+ (setq file1 (ediff-get-session-objA-name info)
+ file2 (ediff-get-session-objB-name info)
+ file3 (ediff-get-session-objC-name info))
+
+ ;; make sure we don't start on hidden sessions
+ ;; ?H means marked for hiding. ?I means invalid (hidden).
+ (if (memq (ediff-get-session-status info) '(?I))
+ (progn
+ (beep)
+ (if (y-or-n-p "This session is marked as hidden, unmark? ")
+ (progn
+ (ediff-set-session-status info nil)
+ (ediff-update-meta-buffer meta-buf nil session-number))
+ (error "Aborted"))))
+
+ (ediff-with-current-buffer meta-buf
+ (setq merge-autostore-dir
+ (ediff-get-group-merge-autostore-dir ediff-meta-list))
+ (goto-char pos) ; if the user clicked on session--move point there
+ ;; First handle sessions involving directories (which are themselves
+ ;; session groups)
+ ;; After that handle individual sessions
+ (cond ((ediff-meta-session-p info)
+ ;; do ediff/ediff-merge on subdirectories
+ (if (ediff-buffer-live-p session-buf)
+ (ediff-show-meta-buffer session-buf)
+ (setq regexp
+ (read-string
+ (if (stringp default-regexp)
+ (format
+ "Filter through regular expression (default %s): "
+ default-regexp)
+ "Filter through regular expression: ")
+ nil
+ 'ediff-filtering-regexp-history
+ (eval ediff-default-filtering-regexp)))
+ (ediff-directories-internal
+ file1 file2 file3 regexp
+ ediff-session-action-function
+ ediff-metajob-name
+ ;; make it update (car info) after startup
+ `(list (lambda ()
+ ;; child session group should know its parent
+ (setq ediff-parent-meta-buffer
+ (quote ,ediff-meta-buffer)
+ ediff-meta-session-number
+ ,session-number)
+ ;; and parent will know its child
+ (setcar (quote ,info) ediff-meta-buffer))))))
+
+ ;; Do ediff-revision on a subdirectory
+ ((and (ediff-one-filegroup-metajob)
+ (ediff-revision-metajob)
+ (file-directory-p file1))
+ (if (ediff-buffer-live-p session-buf)
+ (ediff-show-meta-buffer session-buf)
+ (setq regexp (read-string "Filter through regular expression: "
+ nil 'ediff-filtering-regexp-history))
+ (ediff-directory-revisions-internal
+ file1 regexp
+ ediff-session-action-function ediff-metajob-name
+ ;; make it update (car info) after startup
+ `(list (lambda ()
+ ;; child session group should know its parent and
+ ;; its number
+ (setq ediff-parent-meta-buffer
+ (quote ,ediff-meta-buffer)
+ ediff-meta-session-number
+ ,session-number)
+ ;; and parent will know its child
+ (setcar (quote ,info) ediff-meta-buffer))))))
+
+ ;; From here on---only individual session handlers
+
+ ;; handle an individual session with a live control buffer
+ ((ediff-buffer-live-p session-buf)
+ (ediff-with-current-buffer session-buf
+ (setq ediff-mouse-pixel-position (mouse-pixel-position))
+ (ediff-recenter 'no-rehighlight)))
+
+ ((ediff-problematic-session-p info)
+ (beep)
+ (if (y-or-n-p
+ "This session has no ancestor. Merge without the ancestor? ")
+ (ediff-merge-files
+ file1 file2
+ ;; provide startup hooks
+ `(list (lambda ()
+ (add-hook
+ 'ediff-after-quit-hook-internal
+ (lambda ()
+ (if (ediff-buffer-live-p ,(current-buffer))
+ (ediff-show-meta-buffer
+ ,(current-buffer) ,session-number)))
+ nil 'local)
+ (setq ediff-meta-buffer ,(current-buffer)
+ ediff-meta-session-number
+ ,session-number)
+ (setq ediff-merge-store-file
+ ,(if (ediff-nonempty-string-p
+ merge-autostore-dir)
+ (concat
+ merge-autostore-dir
+ ediff-merge-filename-prefix
+ (file-name-nondirectory file1))
+ ))
+ ;; make ediff-startup pass
+ ;; ediff-control-buffer back to the meta
+ ;; level; see below
+ (setcar
+ (quote ,info) ediff-control-buffer))))
+ (error "Aborted")))
+ ((ediff-one-filegroup-metajob) ; needs 1 file arg
+ (funcall ediff-session-action-function
+ file1
+ ;; provide startup hooks
+ `(list (lambda ()
+ (add-hook
+ 'ediff-after-quit-hook-internal
+ (lambda ()
+ (if (ediff-buffer-live-p
+ ,(current-buffer))
+ (ediff-show-meta-buffer
+ ,(current-buffer)
+ ,session-number)))
+ nil 'local)
+ (setq ediff-meta-buffer ,(current-buffer)
+ ediff-meta-session-number
+ ,session-number)
+ (setq ediff-merge-store-file
+ ,(if (ediff-nonempty-string-p
+ merge-autostore-dir)
+ (concat
+ merge-autostore-dir
+ ediff-merge-filename-prefix
+ (file-name-nondirectory file1))) )
+ ;; make ediff-startup pass
+ ;; ediff-control-buffer back to the meta
+ ;; level; see below
+ (setcar
+ (quote ,info) ediff-control-buffer)))))
+ ((not (ediff-metajob3)) ; need 2 file args
+ (funcall ediff-session-action-function
+ file1 file2
+ ;; provide startup hooks
+ `(list (lambda ()
+ (add-hook
+ 'ediff-after-quit-hook-internal
+ (lambda ()
+ (if (ediff-buffer-live-p
+ ,(current-buffer))
+ (ediff-show-meta-buffer
+ ,(current-buffer)
+ ,session-number)))
+ nil 'local)
+ (setq ediff-meta-buffer ,(current-buffer)
+ ediff-meta-session-number
+ ,session-number)
+ (setq ediff-merge-store-file
+ ,(if (ediff-nonempty-string-p
+ merge-autostore-dir)
+ (concat
+ merge-autostore-dir
+ ediff-merge-filename-prefix
+ (file-name-nondirectory file1))) )
+ ;; make ediff-startup pass
+ ;; ediff-control-buffer back to the meta
+ ;; level; see below
+ (setcar
+ (quote ,info) ediff-control-buffer)))))
+ ((ediff-metajob3) ; need 3 file args
+ (funcall ediff-session-action-function
+ file1 file2 file3
+ ;; arrange startup hooks
+ `(list (lambda ()
+ (add-hook
+ 'ediff-after-quit-hook-internal
+ (lambda ()
+ (if (ediff-buffer-live-p
+ ,(current-buffer))
+ (ediff-show-meta-buffer
+ ,(current-buffer)
+ ,session-number)))
+ nil 'local)
+ (setq ediff-merge-store-file
+ ,(if (ediff-nonempty-string-p
+ merge-autostore-dir)
+ (concat
+ merge-autostore-dir
+ ediff-merge-filename-prefix
+ (file-name-nondirectory file1))) )
+ (setq ediff-meta-buffer , (current-buffer)
+ ediff-meta-session-number
+ ,session-number)
+ ;; this arranges that ediff-startup will pass
+ ;; the value of ediff-control-buffer back to
+ ;; the meta level, to the record in the meta
+ ;; list containing the information about the
+ ;; session associated with that
+ ;; ediff-control-buffer
+ (setcar
+ (quote ,info) ediff-control-buffer)))))
+ ) ; cond
+ ) ; eval in meta-buf
+ ))
+
+(defun ediff-registry-action ()
+ "Switch to a selected session."
+ (interactive)
+ (let* ((pos (ediff-event-point last-command-event))
+ (buf (ediff-event-buffer last-command-event))
+ (ctl-buf (ediff-get-meta-info buf pos)))
+
+ (if (ediff-buffer-live-p ctl-buf)
+ ;; check if this is ediff-control-buffer or ediff-meta-buffer
+ (if (ediff-with-current-buffer ctl-buf
+ (eq (key-binding "q") 'ediff-quit-meta-buffer))
+ ;; it's a meta-buffer -- last action should just display it
+ (ediff-show-meta-buffer ctl-buf t)
+ ;; it's a session buffer -- invoke go back to session
+ (ediff-with-current-buffer ctl-buf
+ (setq ediff-mouse-pixel-position (mouse-pixel-position))
+ (ediff-recenter 'no-rehighlight)))
+ (beep)
+ (message "You've selected a stale session --- try again")
+ (ediff-update-registry))
+ (ediff-with-current-buffer buf
+ (goto-char pos))
+ ))
+
+
+;; If session number is t, means don't update meta buffer
+(defun ediff-show-meta-buffer (&optional meta-buf session-number)
+ "Show the session group buffer."
+ (interactive)
+ (run-hooks 'ediff-before-directory-setup-hooks)
+ (let (wind frame silent)
+ (if meta-buf (setq silent t))
+
+ (setq meta-buf (or meta-buf ediff-meta-buffer))
+ (cond ((not (bufferp meta-buf))
+ (error "This Ediff session is not part of a session group"))
+ ((not (ediff-buffer-live-p meta-buf))
+ (error
+ "Can't find this session's group panel -- session itself is ok")))
+
+ (cond ((numberp session-number)
+ (ediff-update-meta-buffer meta-buf nil session-number))
+ ;; if session-number is t, don't update
+ (session-number)
+ (t (ediff-cleanup-meta-buffer meta-buf)))
+
+ (ediff-with-current-buffer meta-buf
+ (save-excursion
+ (cond ((setq wind (ediff-get-visible-buffer-window meta-buf))
+ (or silent
+ (message
+ "Already showing the group panel for this session"))
+ (set-window-buffer wind meta-buf)
+ (select-window wind))
+ ((window-live-p (setq wind ediff-window-C)) ;in merge--merge buf
+ (set-window-buffer ediff-window-C meta-buf)
+ (select-window wind))
+ ((window-live-p (setq wind ediff-window-A))
+ (set-window-buffer ediff-window-A meta-buf)
+ (select-window wind))
+ ((window-live-p (setq wind ediff-window-B))
+ (set-window-buffer ediff-window-B meta-buf)
+ (select-window wind))
+ ((and
+ (setq wind
+ (ediff-get-visible-buffer-window ediff-registry-buffer))
+ (ediff-window-display-p))
+ (select-window wind)
+ (other-window 1)
+ (set-window-buffer (selected-window) meta-buf))
+ (t (ediff-skip-unsuitable-frames 'ok-unsplittable)
+ (set-window-buffer (selected-window) meta-buf)))
+ ))
+ (if (and (ediff-window-display-p)
+ (window-live-p
+ (setq wind (ediff-get-visible-buffer-window meta-buf))))
+ (progn
+ (setq frame (window-frame wind))
+ (raise-frame frame)
+ (ediff-reset-mouse frame)))
+ (sit-for 0) ; sometimes needed to synch the display and ensure that the
+ ; point ends up after the just completed session
+ (run-hooks 'ediff-show-session-group-hook)
+ ))
+
+(defun ediff-show-current-session-meta-buffer ()
+ (interactive)
+ (ediff-show-meta-buffer nil ediff-meta-session-number))
+
+(defun ediff-show-meta-buff-from-registry ()
+ "Display the session group buffer for a selected session group."
+ (interactive)
+ (let* ((pos (ediff-event-point last-command-event))
+ (meta-buf (ediff-event-buffer last-command-event))
+ (info (ediff-get-meta-info meta-buf pos))
+ (meta-or-session-buf info))
+ (ediff-with-current-buffer meta-or-session-buf
+ (ediff-show-meta-buffer nil t))))
+
+;;;###autoload
+(defun ediff-show-registry ()
+ "Display Ediff's registry."
+ (interactive)
+ (ediff-update-registry)
+ (if (not (ediff-buffer-live-p ediff-registry-buffer))
+ (error "No active Ediff sessions or corrupted session registry"))
+ (let (wind frame)
+ ;; for some reason, point moves in ediff-registry-buffer, so we preserve it
+ ;; explicitly
+ (ediff-with-current-buffer ediff-registry-buffer
+ (save-excursion
+ (cond ((setq wind
+ (ediff-get-visible-buffer-window ediff-registry-buffer))
+ (message "Already showing the registry")
+ (set-window-buffer wind ediff-registry-buffer)
+ (select-window wind))
+ ((window-live-p ediff-window-C)
+ (set-window-buffer ediff-window-C ediff-registry-buffer)
+ (select-window ediff-window-C))
+ ((window-live-p ediff-window-A)
+ (set-window-buffer ediff-window-A ediff-registry-buffer)
+ (select-window ediff-window-A))
+ ((window-live-p ediff-window-B)
+ (set-window-buffer ediff-window-B ediff-registry-buffer)
+ (select-window ediff-window-B))
+ ((and (setq wind
+ (ediff-get-visible-buffer-window ediff-meta-buffer))
+ (ediff-window-display-p))
+ (select-window wind)
+ (other-window 1)
+ (set-window-buffer (selected-window) ediff-registry-buffer))
+ (t (ediff-skip-unsuitable-frames 'ok-unsplittable)
+ (set-window-buffer (selected-window) ediff-registry-buffer)))
+ ))
+ (if (ediff-window-display-p)
+ (progn
+ (setq frame
+ (window-frame
+ (ediff-get-visible-buffer-window ediff-registry-buffer)))
+ (raise-frame frame)
+ (ediff-reset-mouse frame)))
+ (run-hooks 'ediff-show-registry-hook)
+ ))
+
+;;;###autoload
+(defalias 'eregistry 'ediff-show-registry)
+
+;; If meta-buf doesn't exist, it is created. In that case, id doesn't have a
+;; parent meta-buf
+;; Check if META-BUF exists before calling this function
+;; Optional MUST-REDRAW, if non-nil, would force redrawal of the whole meta
+;; buffer. Otherwise, it will just go over the buffer and update activity marks
+;; and session status.
+;; SESSION-NUMBER, if specified, says which session caused the update.
+(defun ediff-update-meta-buffer (meta-buf &optional must-redraw session-number)
+ (if (ediff-buffer-live-p meta-buf)
+ (ediff-with-current-buffer meta-buf
+ (let (overl)
+ (cond (must-redraw ; completely redraw the meta buffer
+ (funcall ediff-meta-redraw-function ediff-meta-list))
+ ((numberp session-number) ; redraw only for the given session
+ (ediff-update-session-marker-in-dir-meta-buffer
+ session-number))
+ (t ; update what changed only, but scan the entire meta buffer
+ (ediff-update-markers-in-dir-meta-buffer ediff-meta-list)))
+ (setq overl (ediff-get-meta-overlay-at-pos (point)))
+ ;; skip the invisible sessions
+ (while (and overl (ediff-overlay-get overl 'invisible))
+ (ediff-next-meta-item1)
+ (setq overl (ediff-get-meta-overlay-at-pos (point))))
+ ))))
+
+(defun ediff-update-registry ()
+ (ediff-with-current-buffer (current-buffer)
+ (if (ediff-buffer-live-p ediff-registry-buffer)
+ (ediff-redraw-registry-buffer)
+ (ediff-prepare-meta-buffer
+ 'ediff-registry-action
+ ediff-session-registry
+ "*Ediff Registry"
+ 'ediff-redraw-registry-buffer
+ 'ediff-registry))
+ ))
+
+;; If meta-buf exists, it is redrawn along with parent.
+;; Otherwise, nothing happens.
+(defun ediff-cleanup-meta-buffer (meta-buffer)
+ (if (ediff-buffer-live-p meta-buffer)
+ (ediff-with-current-buffer meta-buffer
+ (ediff-update-meta-buffer meta-buffer)
+ (if (ediff-buffer-live-p ediff-parent-meta-buffer)
+ (ediff-update-meta-buffer
+ ediff-parent-meta-buffer nil ediff-meta-session-number)))))
+
+;; t if no session is in progress
+(defun ediff-safe-to-quit (meta-buffer)
+ (if (ediff-buffer-live-p meta-buffer)
+ (let ((lis ediff-meta-list)
+ (cont t)
+ buffer-read-only)
+ ;;(ediff-update-meta-buffer meta-buffer)
+ (ediff-with-current-buffer meta-buffer
+ (setq lis (cdr lis)) ; discard the description part of meta-list
+ (while (and cont lis)
+ (if (ediff-buffer-live-p
+ (ediff-get-group-buffer lis)) ; in progress
+ (setq cont nil))
+ (setq lis (cdr lis)))
+ cont))))
+
+(defun ediff-quit-meta-buffer ()
+ "If the group has no active session, delete the meta buffer.
+If no session is in progress, ask to confirm before deleting meta buffer.
+Otherwise, bury the meta buffer.
+If this is a session registry buffer then just bury it."
+ (interactive)
+ (let* ((buf (current-buffer))
+ (dir-diffs-buffer ediff-dir-diffs-buffer)
+ (meta-diff-buffer ediff-meta-diff-buffer)
+ (session-number ediff-meta-session-number)
+ (parent-buf ediff-parent-meta-buffer)
+ (dont-show-registry (eq buf ediff-registry-buffer)))
+ (if dont-show-registry
+ (bury-buffer)
+ ;;(ediff-cleanup-meta-buffer buf)
+ (cond ((and (ediff-safe-to-quit buf)
+ (y-or-n-p "Quit this session group? "))
+ (run-hooks 'ediff-quit-session-group-hook)
+ (message "")
+ (ediff-dispose-of-meta-buffer buf))
+ ((ediff-safe-to-quit buf)
+ (bury-buffer))
+ (t
+ (error
+ "This session group has active sessions---cannot exit")))
+ (ediff-update-meta-buffer parent-buf nil session-number)
+ (ediff-kill-buffer-carefully dir-diffs-buffer)
+ (ediff-kill-buffer-carefully meta-diff-buffer)
+ (if (ediff-buffer-live-p parent-buf)
+ (progn
+ (setq dont-show-registry t)
+ (ediff-show-meta-buffer parent-buf session-number)))
+ )
+ (or dont-show-registry
+ (ediff-show-registry))))
+
+(defun ediff-dispose-of-meta-buffer (buf)
+ (setq ediff-session-registry (delq buf ediff-session-registry))
+ (ediff-with-current-buffer buf
+ (if (ediff-buffer-live-p ediff-dir-diffs-buffer)
+ (kill-buffer ediff-dir-diffs-buffer)))
+ (kill-buffer buf))
+
+
+;; Obtain information on a meta record where the user clicked or typed
+;; BUF is the buffer where this happened and POINT is the position
+;; If optional NOERROR arg is given, don't report error and return nil if no
+;; meta info is found on line.
+(defun ediff-get-meta-info (buf point &optional noerror)
+ (let (result olist tmp)
+ (if (and point (ediff-buffer-live-p buf))
+ (ediff-with-current-buffer buf
+ (if (featurep 'xemacs)
+ (setq result
+ (if (setq tmp (extent-at point buf 'ediff-meta-info))
+ (ediff-overlay-get tmp 'ediff-meta-info)))
+ (setq olist
+ (mapcar (lambda (elt)
+ (unless (overlay-get elt 'invisible)
+ (overlay-get elt 'ediff-meta-info)))
+ (overlays-at point)))
+ (while (and olist (null (car olist)))
+ (setq olist (cdr olist)))
+ (setq result (car olist)))))
+ (or result
+ (unless noerror
+ (ediff-update-registry)
+ (error "No session info in this line")))))
+
+
+(defun ediff-get-meta-overlay-at-pos (point)
+ (if (featurep 'xemacs)
+ (extent-at point (current-buffer) 'ediff-meta-info)
+ (let* ((overl-list (overlays-at point))
+ (overl (car overl-list)))
+ (while (and overl (null (overlay-get overl 'ediff-meta-info)))
+ (setq overl-list (cdr overl-list)
+ overl (car overl-list)))
+ overl)))
+
+(defun ediff-get-session-number-at-pos (point &optional meta-buffer)
+ (setq meta-buffer (if (ediff-buffer-live-p meta-buffer)
+ meta-buffer
+ (current-buffer)))
+ (ediff-with-current-buffer meta-buffer
+ (ediff-overlay-get
+ (ediff-get-meta-overlay-at-pos point) 'ediff-meta-session-number)))
+
+
+;; Return location of the next meta overlay after point
+(defun ediff-next-meta-overlay-start (point)
+ (if (eobp)
+ (goto-char (point-min))
+ (let ((overl (ediff-get-meta-overlay-at-pos point)))
+ (if (featurep 'xemacs)
+ (progn ; xemacs
+ (if overl
+ (setq overl (next-extent overl))
+ (setq overl (next-extent (current-buffer))))
+ (if overl
+ (extent-start-position overl)
+ (point-max)))
+ ;; emacs
+ (if overl
+ ;; note: end of current overlay is the beginning of the next one
+ (overlay-end overl)
+ (next-overlay-change point))))))
+
+
+(defun ediff-previous-meta-overlay-start (point)
+ (if (bobp)
+ (goto-char (point-max))
+ (let ((overl (ediff-get-meta-overlay-at-pos point)))
+ (if (featurep 'xemacs)
+ (progn
+ (if overl
+ (setq overl (previous-extent overl))
+ (setq overl (previous-extent (current-buffer))))
+ (if overl
+ (extent-start-position overl)
+ (point-min)))
+ (if overl (setq point (overlay-start overl)))
+ ;; to get to the beginning of prev overlay
+ (if (not (bobp))
+ ;; trick to overcome an emacs bug--doesn't always find previous
+ ;; overlay change correctly
+ (setq point (1- point)))
+ (setq point (previous-overlay-change point))
+ ;; If we are not over an overlay after subtracting 1, it means we are
+ ;; in the description area preceding session records. In this case,
+ ;; goto the top of the registry buffer.
+ (or (car (overlays-at point))
+ (setq point (point-min)))
+ point))))
+
+;; this is the action invoked when the user selects a patch from the meta
+;; buffer.
+(defun ediff-patch-file-form-meta (file &optional startup-hooks)
+ (let* ((pos (ediff-event-point last-command-event))
+ (meta-buf (ediff-event-buffer last-command-event))
+ ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
+ (info (ediff-get-meta-info meta-buf pos))
+ (meta-patchbuf ediff-meta-patchbufer)
+ session-buf beg-marker end-marker)
+
+ (if (or (file-directory-p file) (string-match "/dev/null" file))
+ (error "`%s' is not an ordinary file" (file-name-as-directory file)))
+ (setq session-buf (ediff-get-session-buffer info)
+ beg-marker (ediff-get-session-objB-name info)
+ end-marker (ediff-get-session-objC-name info))
+
+ (or (ediff-buffer-live-p session-buf) ; either an active patch session
+ (null session-buf) ; or it is a virgin session
+ (error
+ "Patch has already been applied to this file -- can't repeat!"))
+
+ (ediff-with-current-buffer meta-patchbuf
+ (save-restriction
+ (widen)
+ (narrow-to-region beg-marker end-marker)
+ (ediff-patch-file-internal meta-patchbuf file startup-hooks)))))
+
+
+(defun ediff-unmark-all-for-operation ()
+ "Unmark all sessions marked for operation."
+ (interactive)
+ (let ((list (cdr ediff-meta-list))
+ elt)
+ (while (setq elt (car list))
+ (ediff-mark-session-for-operation elt 'unmark)
+ (setq list (cdr list))))
+ (ediff-update-meta-buffer (current-buffer) 'must-redraw))
+
+(defun ediff-unmark-all-for-hiding ()
+ "Unmark all sessions marked for hiding."
+ (interactive)
+ (let ((list (cdr ediff-meta-list))
+ elt)
+ (while (setq elt (car list))
+ (ediff-mark-session-for-hiding elt 'unmark)
+ (setq list (cdr list))))
+ (ediff-update-meta-buffer (current-buffer) 'must-redraw))
+
+
+;; ACTION is ?h, ?m, ?=: to mark for hiding, mark for operation, or simply
+;; indicate which are equal files
+(defun ediff-meta-mark-equal-files (&optional action)
+ "Run through the session list and mark identical files.
+This is used only for sessions that involve 2 or 3 files at the same time.
+ACTION is an optional argument that can be ?h, ?m, ?=, to mark for hiding, mark
+for operation, or simply indicate which are equal files. If it is nil, then
+`(ediff-last-command-char)' is used to decide which action to take."
+ (interactive)
+ (if (null action)
+ (setq action (ediff-last-command-char)))
+ (let ((list (cdr ediff-meta-list))
+ marked1 marked2 marked3
+ fileinfo1 fileinfo2 fileinfo3 elt)
+ (message "Comparing files...")
+ (while (setq elt (car list))
+ (setq fileinfo1 (ediff-get-session-objA elt)
+ fileinfo2 (ediff-get-session-objB elt)
+ fileinfo3 (ediff-get-session-objC elt))
+ (ediff-set-file-eqstatus fileinfo1 nil)
+ (ediff-set-file-eqstatus fileinfo2 nil)
+ (ediff-set-file-eqstatus fileinfo3 nil)
+
+ (setq marked1 t
+ marked2 t
+ marked3 t)
+ (or (ediff-mark-if-equal fileinfo1 fileinfo2)
+ (setq marked1 nil))
+ (if (ediff-metajob3)
+ (progn
+ (or (ediff-mark-if-equal fileinfo1 fileinfo3)
+ (setq marked2 nil))
+ (or (ediff-mark-if-equal fileinfo2 fileinfo3)
+ (setq marked3 nil))))
+ (if (and marked1 marked2 marked3)
+ (cond ((eq action ?h)
+ (ediff-mark-session-for-hiding elt 'mark))
+ ((eq action ?m)
+ (ediff-mark-session-for-operation elt 'mark))
+ ))
+ (setq list (cdr list)))
+ (message "Comparing files... Done"))
+ (setq ediff-recurse-to-subdirectories nil)
+ (ediff-update-meta-buffer (current-buffer) 'must-redraw))
+
+;; mark files 1 and 2 as equal, if they are.
+;; returns t, if something was marked
+(defun ediff-mark-if-equal (fileinfo1 fileinfo2)
+ (let ((f1 (car fileinfo1))
+ (f2 (car fileinfo2)))
+ (if (and (stringp f1) (stringp f2) (ediff-same-contents f1 f2))
+ (progn
+ (ediff-set-file-eqstatus fileinfo1 t)
+ (ediff-set-file-eqstatus fileinfo2 t)
+ ))
+ ))
+
+
+
+;; Local Variables:
+;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
+;; eval: (put 'ediff-with-current-buffer 'lisp-indent-hook 1)
+;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body))
+;; End:
+
+;;; ediff-mult.el ends here
-2011-02-09 Martin Rudalics <rudalics@gmx.at>
+ 2011-02-12 Eli Zaretskii <eliz@gnu.org>
+
+ * terminal.c (create_terminal): Use default-keyboard-coding-system
+ and default-terminal-coding-system to initialize coding systems of
+ the new terminal. (Bug#7840)
+
-2011-02-08 Jan Djärv <jan.h.d@swipnet.se>
++2011-02-12 Martin Rudalics <rudalics@gmx.at>
+
+ * window.c (select_window): Check inhibit_point_swap argument when
+ deciding whether to return immediately.
+
-2011-02-03 Glenn Morris <rgm@gnu.org>
++2011-02-12 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (setFrame, initFrame): Make sure pixel_height doesn't become
+ zero (Bug#7348).
+
++2011-02-12 Chong Yidong <cyd@stupidchicken.com>
++
++ * config.in (TERMINFO): New definition.
++
++ * s/netbsd.h: Use it to choose between terminfo and termcap
++ (Bug#7642).
++
+2011-02-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * md5.c (md5_process_bytes): Use sizeof, not __alignof__.
+ The difference doesn't matter here, in practice, and sizeof is
+ more portable to non-GCC compilers. Also, this makes the code
+ match the already-existing comment.
+
+2011-02-12 Andreas Schwab <schwab@linux-m68k.org>
+
+ * process.c (create_process): Reset SIGPIPE handler in the child.
+ * callproc.c (Fcall_process): Likewise. (Bug#5238)
+
+2011-02-12 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c <this_line_min_pos>: New variable.
+ (move_it_in_display_line_to): Record in this_line_min_pos the
+ smallest position iterated across.
+ (display_line): Use this_line_min_pos to record the smallest
+ position in the line even if it is not displayed due to
+ hscrolling. (Bug#7939)
+
+2011-02-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port to Sun C 5.11, which has __attribute__ ((__aligned (N))).
+ * md5.h (ATTRIBUTE_ALIGNED): New macro.
+ (struct md5_ctx): Use it.
+
+ Port to Solaris 10, which doesn't support FC_HINT_STYLE.
+ * xftfont.c (FC_HINT_STYLE): #define to "hintstyle" if not
+ defined.
+ * xsettings.c (parse_settings, apply_xft_settings): Don't assume
+ FC_HINT_STYLE is supported.
+
+2011-02-11 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (x_set_frame_alpha): Access data before it is free:d.
+ Make sure we don't do x_catch_errors twice.
+
+2011-02-10 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (really-lwlib): Depend on globals.h, for parallel builds.
+
+2011-02-09 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (GLOBAL_SOURCES, SOME_MACHINE_OBJECTS, obj):
+ New macros.
+ (globals.h, gl-stamp): New targets.
+ (clean): Clean gl-stamp and globals.h.
+
+2011-02-09 Andreas Schwab <schwab@linux-m68k.org>
+
+ * Makefile.in (gl-stamp): Create globals.h here.
+ (globals.h): Don't do it here.
+ (mostlyclean): Clean globals.h and gl-stamp.
+
+2011-02-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.in ($(otherobj)): Depend on globals.h.
+ Otherwise 'make -j10' failed on my host, because the build lacked
+ necessary dependencies, e.g., vm-limit.o depends on globals.h.
+
+2011-02-08 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in (NS_OBJC_OBJ): New variable.
+ (base_obj): Rename from 'obj'.
+ (obj): New variable.
+ (globals.h, gl-stamp, $(obj)): New targets.
+ (GLOBAL_SOURCES): New variable.
+ * globals.h: Remove.
+ * nsselect.m (Vselection_alist): Define. Reverts part of
+ 2011-01-19T22:11:33Z!jan.h.d@swipnet.se.
+ * buffer.c: Don't use "no_cell" for name of kill-buffer-hook's
+ variable.
+ * xselect.c (Vselection_alist): Define. Reverts part of 2011-01-19T23:32:42Z!eggert@cs.ucla.edu.
+
+2011-02-08 Kenichi Handa <handa@m17n.org>
+
+ * font.c (Ffont_get): Do not cache :otf value.
+
+2011-02-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ conform to C89 pointer rules
+
+ * dired.c (scmp, file_name_completion):
+ Change types between char * and unsigned char *, to satisfy C89
+ rules about pointer type compatibility.
+ * casefiddle.c (casify_object, casify_region): Likewise.
+ * search.c (Freplace_match, Fregexp_quote): Likewise.
+ * alloc.c (make_string, make_specified_string, make_pure_string):
+ Likewise.
+ * data.c (Fstring_to_number): Likewise.
+ * print.c (float_to_string, PRINTFINISH, printchar, strout):
+ (print_object): Likewise.
+ * editfns.c (init_editfns, Fchar_to_string, Fbyte_to_string):
+ (Fuser_full_name, Fsubst_char_in_region, Ftranslate_region_internal):
+ (Fformat): Likewise.
+ * callint.c (Fcall_interactively): Likewise.
+ * fns.c (string_make_multibyte, string_to_multibyte):
+ (string_make_unibyte, Fstring_as_unibyte, Fstring_to_unibyte):
+ (Fbase64_encode_region, base64_encode_1, Fbase64_decode_region, Fmd5):
+ Likewise.
+ * lread.c (read1, hash_string): Likewise.
+ * process.c (read_process_output, send_process, Fprocess_send_region):
+ Likewise.
+ * callproc.c (Fcall_process): Likewise.
+ * doprnt.c (doprnt): Likewise.
+ * indent.c (compute_motion): Likewise.
+ * xfont.c (xfont_decode_coding_xlfd): Likewise.
+ * ralloc.c (resize_bloc): Likewise.
+ * image.c (tiff_load): Likewise.
+ * xml.c (make_dom, parse_region): Likewise.
+ * character.c (strwidth): Make its argument const char *, not const
+ unsigned char *, since more callers prefer it that way. All callers
+ changed.
+
+2011-02-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xterm.c (x_alloc_nearest_color_1): Avoid unportable int assumption.
+ Emacs assumes two's complement elsewhere, but the assumption is
+ easy to remove here, and this suppresses a warning with Sun C 5.8.
+
+ conform to C89 pointer rules
+
+ * xterm.c (x_draw_fringe_bitmap, handle_one_xevent, x_bitmap_icon):
+ (same_x_server, x_term_init):
+ Change types between char * and unsigned char *, to satisfy C89
+ rules about pointer type compatibility.
+ * doc.c (get_doc_string, Fsnarf_documentation):
+ (Fsubstitute_command_keys): Likewise.
+ * xfns.c (Fx_open_connection, Fx_window_property): Likewise.
+ * bitmaps/gray.xbm (gray_bits): Likewise.
+ * image.c (xbm_read_bitmap_data, xbm_load_image, xbm_load): Likewise.
+ * keyboard.c (echo_char, MULTI_LETTER_MOD, tty_read_avail_input):
+ Likewise.
+ * keymap.c (Ftext_char_description): Likewise.
+ * minibuf.c (Fread_buffer): Likewise.
+ * fileio.c (IS_DRIVE) [defined WINDOWSNT]:
+ (DRIVE_LETTER) [defined DOS_NT]:
+ (report_file_error, Ffile_name_directory, Ffile_name_nondirectory):
+ (make_temp_name, Fexpand_file_name, file_name_absolute_p):
+ (search_embedded_absfilename, Fsubstitute_in_file_name):
+ (barf_or_query_if_file_exists, Fmake_directory_internal):
+ (Fdelete_directory_internal, Ffile_name_absolute_p, read_non_regular):
+ (Finsert_file_contents, Fwrite_region):
+ Likewise.
+ * insdel.c (insert, insert_and_inherit, insert_before_markers):
+ (insert_before_markers_and_inherit, insert_1, insert_1_both):
+ Likewise. This changes these functions' signatures, which is
+ more convenient since most callers use char *. All remaining
+ callers changed.
+ * editfns.c (general_insert_function): Change signature to
+ match changes to insert functions' signatures.
+ * keymap.c (map_keymap_char_table_item, map_keymap_internal): Use
+ explicit cast when converting between void * and function pointer
+ types, as C89 requires this.
+
+2011-02-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ don't ignore chdir failure
+ * sysdep.c (sys_subshell) [!defined DOS_NT]: Diagnose chdir
+ failure and exit.
+ (sys_subshell) [defined DOS_NT]: Mark with a FIXME the two
+ remaining unchecked chdir calls in this function; some DOS/NT
+ expert needs to fix them.
+ * emacs.c (main): Mark with a FIXME the unchecked chdir calls
+ in this function; some NextStep expert needs to fix them.
+
+2011-02-05 Glenn Morris <rgm@gnu.org>
* xfaces.c (Finternal_set_lisp_face_attribute):
Try to clarify some error messages. (Bug#2659)
* gtkutil.c (menubar_map_cb): New function (Bug#7425).
(xg_update_frame_menubar): Connect signal map to menubar_map_cb.
- Use 23 as menubar height if 0. (Bug#7425).
+ Use 23 as menubar height if 0. (Bug#7425).
-2010-11-14 Jan Djärv <jan.h.d@swipnet.se>
-
- * xsettings.c (init_gconf): Check HAVE_G_TYPE_INIT.
+2010-11-26 Eli Zaretskii <eliz@gnu.org>
- * config.in (HAVE_G_TYPE_INIT): New symbol.
+ * xdisp.c (set_message_1): Force paragraph direction in echo area
+ be left-to-right.
-2010-11-12 Eli Zaretskii <eliz@gnu.org>
+ * keyboard.c (make_lispy_position): Put a meaningful value in yret
+ when the click is on the header or mode line.
- * lread.c (Fload): Mention `load-in-progress' and
- `load-file-name'. (Bug#7346)
+2010-11-25 Eli Zaretskii <eliz@gnu.org>
-2010-11-09 Eli Zaretskii <eliz@gnu.org>
+ * xdisp.c (set_cursor_from_row): Don't forget to consider the
+ `cursor' property of the first character in overlay strings.
+ (Bug#7474) (Bug#7481)
- * keyboard.c (kbd_buffer_nr_stored): Define only ifdef subprocesses.
- (kbd_buffer_store_event_hold, kbd_buffer_get_event)
- (tty_read_avail_input): Call kbd_buffer_nr_stored only ifdef
- subprocesses. Use buffer_free only ifdef subprocesses.
+2010-11-24 Jan Djärv <jan.h.d@swipnet.se>
- * process.c (init_process) [subprocesses]: Init kbd_is_on_hold in
- the subprocesses version, not in the non-subprocesses one.
+ * nsterm.m (NSLeftControlKeyMask, NSLeftCommandKeyMask)
+ (NSLeftAlternateKeyMask): New defines.
+ (keyDown): Parse left and right keys separately (Bug#7458).
+ Compare Left key masks exactly (Bug#7458).
- * Makefile.in: Don't use ## comment, it breaks the MSDOS build.
+2010-11-23 Eli Zaretskii <eliz@gnu.org>
- * xfns.c (x_real_positions): Fix declaration-after-statement
- problem.
+ * intervals.c (temp_set_point_both): Define before calling, to
+ avoid GCC warnings.
-2010-11-05 Chong Yidong <cyd@stupidchicken.com>
+2010-11-23 Dan Nicolaescu <dann@ics.uci.edu>
- * image.c (free_image): Don't garbage the frame here, since this
- function can be called while redisplaying (Bug#7210).
- (uncache_image): Garbage the frame here (Bug#6426).
+ * nsmenu.m: Use #include <config.h> instead of "config.h".
-2010-11-04 Chong Yidong <cyd@stupidchicken.com>
+ * term.c (Qglyphless_char,last_glyphless_glyph_frame)
+ (last_glyphless_glyph_face_id. last_glyphless_glyph_merged_face_id):
+ Move declarations ...
+ * lisp.h (Qglyphless_char,last_glyphless_glyph_frame)
+ (last_glyphless_glyph_face_id. last_glyphless_glyph_merged_face_id):
+ ... here.
- * process.c (Fmake_network_process): Don't apply Bug#5173 fix for
- Windows.
+ * emacs.c (gdb_use_union, gdb_valbits,gdb_gctypebits)
+ (gdb_data_seg_bits, gdb_array_mark_flag, PVEC_FLAG)
+ (gdb_pvec_type):
+ * print.c (print_output_debug_flag):
+ * lisp.h (debug_print): Mark as EXTERNALLY_VISIBLE.
+ (safe_debug_print): New declaration.
-2010-11-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+ * xterm.c:
+ * systty.h:
+ * sound.c: Include <sys/ioctl.h> unconditionally.
+
+2010-11-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * alloc.c (mark_maybe_object): Return early if given a Lisp
+ integer (Bug#6301).
+
+2010-11-21 Ken Brown <kbrown@cornell.edu>
+
+ * sheap.c (STATIC_HEAP_SIZE): Revert previous change.
+
+2010-11-21 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_right_command_modifier, ns_right_control_modifier):
+ Define (Bug#7458).
+ (NSRightCommandKeyMask, NSRightControlKeyMask): Define (Bug#7458).
+ (EV_MODIFIERS): Check for NSRightCommandKeyMask and
+ NSRightControlKeyMask also (Bug#7458).
+ (keyDown): Ditto (Bug#7458).
+ (syms_of_nsterm): Defvar ns-right-command-modifier and
+ ns-right-control-modifier (Bug#7458).
+
+2010-11-21 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * sysdep.c (sys_subshell): Remove SET_EMACS_PRIORITY.
+ * emacs.c (emacs_priority, syms_of_emacs): Remove emacs_priority.
+
+ * intervals.h (temp_set_point, temp_set_point_both):
+ * buffer.h (offset_intervals, copy_intervals): Remove INLINE.
+
+2010-11-20 Ken Brown <kbrown@cornell.edu>
+
+ * sheap.c (STATIC_HEAP_SIZE): Increase to 13MB.
+
+2010-11-20 Eli Zaretskii <eliz@gnu.org>
+
+ * term.c (produce_glyphless_glyph): Use \uNNNN, \UNNNNNN, or
+ \xNNNNNN for hex-code display of glyphless characters.
+
+2010-11-20 Jan Djärv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (xg_make_tool_item): Take vert_only as argument.
+ Set important to ! vert_only.
+ (xg_show_toolbar_item): Don't show label horizontally if
+ tool item isn't important.
+ (update_frame_tool_bar): Get TOOL_BAR_ITEM_VERT_ONLY and pass it to
+ xg_make_tool_item, or update important on existing tool item.
+
+ * keyboard.c (QCvert_only): New variable.
+ (parse_tool_bar_item): Check for QCvert_only.
+ (syms_of_keyboard): Initialize QCvert_only.
+
+ * dispextern.h (tool_bar_item_idx): Add TOOL_BAR_ITEM_VERT_ONLY.
+
+2010-11-20 Eli Zaretskii <eliz@gnu.org>
+
+ * msdos.c (dos_rawgetc): Use gen_help_event, instead of doing the
+ same in-line.
+
+2010-11-20 Andreas Schwab <schwab@linux-m68k.org>
+
+ * xfaces.c (lookup_face): Make static.
+ * dispnew.c (copy_row_except_pointers): Likewise.
+ * syntax.c (dec_bytepos): Likewise.
+ (inc_bytepos): Remove.
+ * dispextern.h (lookup_face): Remove declaration.
+
+2010-11-19 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (set_cursor_from_row): Display cursor after all the
+ glyphs that come from an overlay. Don't overstep the last glyph
+ when skipping glyphs from an overlay. (Bug#6687)
+
+2010-11-18 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * alloc.c (refill_memory_reserve): Move declaration ...
+ * lisp.h (refill_memory_reserve): ... here.
+
+ * strftime.c (_strftime_copytm): Add declaration.
+
+ * callproc.c (syms_of_callproc): Use intern_c_string.
+
+ Move declarations from .c files to .h files.
+ * process.c (timers_run):
+ * minibuf.c (quit_char):
+ * lread.c (read_emacs_mule_char):
+ * keyboard.c (minibuf_level, message_enable_multibyte)
+ (pending_malloc_warning):
+ * insdel.c (Vselect_active_regions, Vsaved_region_selection)
+ (Qonly): Remove declarations.
+ * lisp.h (pending_malloc_warning, Vsaved_region_selection)
+ (Vselect_active_regions):
+ * keyboard.h (timers_run): Add declarations.
+
+ * strftime.c (my_strftime_gmtime_r, my_strftime_localtime_r)
+ (tm_diff): Convert definitions to standard C.
+ (extra_args_spec_iso): Remove, unused.
+
+2010-11-18 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xsettings.c (init_gconf): Check HAVE_G_TYPE_INIT.
+
+ * config.in (HAVE_G_TYPE_INIT): New symbol.
+
+2010-11-18 Eli Zaretskii <eliz@gnu.org>
+
+ * lread.c (Fload): Mention `load-in-progress' and
+ `load-file-name'. (Bug#7346)
+
+ * keyboard.c (kbd_buffer_nr_stored): Define only ifdef subprocesses.
+ (kbd_buffer_store_event_hold, kbd_buffer_get_event)
+ (tty_read_avail_input): Call kbd_buffer_nr_stored only ifdef
+ subprocesses. Use buffer_free only ifdef subprocesses.
+
+ * process.c (init_process) [subprocesses]: Init kbd_is_on_hold in
+ the subprocesses version, not in the non-subprocesses one.
+
+ * Makefile.in: Don't use ## comment, it breaks the MSDOS build.
+
+2010-11-17 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (set_cursor_from_row): Fix cursor positioning in empty
+ lines on text-mode terminals. (bug#7417)
+
+2010-11-17 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * xterm.c (get_current_wm_state): Rename from get_current_vm_state.
+ (do_ewmh_fullscreen, x_handle_net_wm_state): Update callers.
+
+2010-11-17 Kenichi Handa <handa@m17n.org>
+
+ * coding.c (Fset_terminal_coding_system_internal): Fix previous
+ change (set charset-ID list instead of charset-symbol list).
+
+2010-11-16 Chong Yidong <cyd@stupidchicken.com>
+
+ * keyboard.c (make_lispy_position): For text area clicks, record Y
+ pixel position relative to the text area, excluding header line.
+ Also change X and Y to Lisp_Objects, not pointers; don't return
+ coordinate values via pointers. Pass ON_TEXT_AREA coordinate to
+ buffer_posn_from_coords counting from the start of the text area.
+ (Fposn_at_x_y, make_lispy_event): Callers changed.
+
+ * window.c (coordinates_in_window): Change X and Y to ints rather
+ than pointers; don't return coordinates via pointers.
+ (struct check_window_data): Change X and Y from pointers to ints.
+ (window_from_coordinates): Remove args WX and WY; don't return
+ coordinates via pointers.
+ (Fcoordinates_in_window_p, window_from_coordinates):
+ (check_window_containing, Fwindow_at): Callers changed.
+ (window_relative_x_coord): New function.
+
+ * window.h (window_from_coordinates, window_relative_x_coord):
+ Update prototypes.
+
+ * dispnew.c (buffer_posn_from_coords): Assume that X counts from
+ the start of the text area.
+
+ * xdisp.c (remember_mouse_glyph): Change window_from_coordinates
+ call. Use window_relative_x_coord.
+ (note_mouse_highlight): Change window_from_coordinates call.
+
+ * w32term.c (w32_read_socket):
+ * msdos.c (dos_rawgetc):
+ * xterm.c (handle_one_xevent): Likewise.
+
+2010-11-16 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * strftime.c (LOCALE_PARAM_DECL): Update for standard C.
+ (LOCALE_PARAM, LOCALE_PARAM_PROTO): Remove, unused.
+ (memcpy_lowcase, so_week_days, extra_args_spec, emacs_strftimeu):
+ Convert definitions to standard C.
+ * regex.c: Do not include <stdlib.h>, config.h does it.
+ Include unistd.h.
+ (xrealloc, init_syntax_once, re_match, regcomp, regexec)
+ (regerror, regfree): Convert definitions to standard C.
+ * mktime.c (my_mktime_localtime_r, ydhms_tm_diff, ranged_convert)
+ (__mktime_internal): Convert definitions to standard C.
+
+2010-11-15 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * w32proc.c:
+ * w32inevt.c:
+ * w32heap.c:
+ * w32.c: Remove config.h include guards.
+
+ * callproc.c (child_setup): Reorder code to simplify #ifdefs.
+ No code changes.
+
+ * process.c: Include <sys/ioctl.h> unconditionally,
+ keyboard.c already does it.
+
+ * keyboard.c (pending_malloc_warning): Add const to match
+ definition in alloc.c.
+ (Fset_input_interrupt_mode): Simplify #ifdefs.
+
+2010-11-15 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Clean up systty.h macros.
+ * systty.h (EMACS_GET_TTY_PGRP, EMACS_SET_TTY_PGRP, EMACS_GET_TTY)
+ (EMACS_SET_TTY): Remove unneeded abstraction, instead inline the
+ definition in all uses.
+ (EMACS_TTY_TABS_OK): Remove, it has a single user.
+ * sysdep.c (discard_tty_input, child_setup_tty)
+ (init_sys_modes, tabs_safe_p, reset_sys_modes):
+ * emacs.c (shut_down_emacs):
+ * callproc.c (child_setup):
+ * term.c (dissociate_if_controlling_tty): Inline removed macros.
+
+ * data.c (sign_extend_temp, sign_extend_lisp_int): Remove, unused.
+
+2010-11-14 Chong Yidong <cyd@stupidchicken.com>
+
+ * w32fns.c (Fx_create_frame):
+ * nsfns.m (Fx_create_frame): Don't check for the cursorColor
+ resource here; it's now done at startup.
+
+2010-11-14 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (set_wm_state): Add Qnil to final cons.
+
+ * xselect.c (x_send_client_event): Remove unused variables cons and
+ size.
+
+2010-11-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * keyboard.c (modify_event_symbol) : Add const to array elements of
+ arg NAME_TABLE.
+ (lispy_accent_keys, lispy_function_keys, lispy_multimedia_keys)
+ (lispy_kana_keys, iso_lispy_function_keys, lispy_wheel_names)
+ (lispy_wheel_names, lispy_drag_n_drop_names, modifier_names):
+ Add const to array elements.
+ (scroll_bar_parts): Make static. Fix position of const.
+
+ * w32fns.c (lispy_function_keys): Add const to extern.
+
+ * w32inevt.c (lispy_function_keys): Likewise.
+
+2010-11-14 Chong Yidong <cyd@stupidchicken.com>
+
+ * xfns.c (Fx_create_frame): Don't check for the cursorColor
+ resource here; it's now done at startup.
+
+2010-11-13 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * xmenu.c: Make it clear that ../lwlib/lwlib.h is only needed for Motif.
+
+ Fix compilation on Solaris.
+ * sysdep.c: Do not #include <term.h>.
+ (tputs): Add declaration, similar to what cm.c does. (Bug#7178)
+
+ * s/ms-w32.h (HAVE_TERMIOS_H): Do not undef, not used anymore.
+
+2010-11-13 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (set_wm_state): Don't put Atom in cons, call
+ make_fixnum_or_float on them first.
+ (x_term_init): Initialize Xatom_net_supporting_wm_check and
+ Xatom_net_supported correctly.
+
+ * xselect.c (x_send_client_event): Move CHECK_STRING ...
+ (Fx_send_client_event): to here.
+
+2010-11-13 Martin Rudalics <rudalics@gmx.at>
+
+ * window.c (Fwindow_use_time): New function.
+
+2010-11-13 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (set_cursor_from_row): Fix cursor positioning on
+ zero-width characters.
+
+ * .gdbinit (pgx): Adapt to latest changes in `struct glyph'.
+
+ * w32term.c (x_draw_glyphless_glyph_string_foreground): Draw the
+ box before drawing the glyphs inside it.
+
+ * xdisp.c (syms_of_xdisp) <glyphless-char-display>: Doc fix.
+
+ * dispextern.h (enum glyphless_display_method):
+ Rename GLYPHLESS_DISPLAY_HEXA_CODE to GLYPHLESS_DISPLAY_HEX_CODE.
+ All users changed.
+
+ * term.c (append_glyphless_glyph, produce_glyphless_glyph):
+ Fix comments.
+ (produce_glyphless_glyph): Enclose "U+nnnn" and "empty box"
+ whitespace in "[]", to simulate a box. Don't use uninitialized
+ variable `width'.
+
+2010-11-11 Julien Danjou <julien@danjou.info>
+
+ * xsettings.c (init_xsettings): Use already fetch atoms.
+
+ * xsmfns.c (create_client_leader_window): Use SM_CLIENT_ID atom
+ from dpyinfo.
+
+ * xselect.c (Fx_send_client_event): Split and create
+ x_send_client_event.
+
+ * lisp.h: Do not EXFUN Fx_send_client_event.
+
+ * xterm.c (x_set_frame_alpha): Use _NET_WM_WINDOW_OPACITY atom
+ from dpyinfo.
+ (wm_supports): Use atoms from dpyinfo.
+ (do_ewmh_fullscreen): Use atoms from dpyinfo.
+ (x_ewmh_activate_frame): Use atoms from dpyinfo.
+ (xembed_set_info): Use atoms from dpyinfo.
+ (x_term_init): Fetch _XEMBED_INFO, _NET_SUPPORTED,
+ _NET_SUPPORTING_WM_CHECK, _NET_WM_WINDOW_OPACITY and
+ _NET_ACTIVE_WINDOW, XSETTINGS atoms.
+ Get all atoms in one round-trip.
+ (set_wm_state): Use x_send_client_event rather than
+ Fx_send_client_event, using Atom directly.
+ (x_ewmh_activate_frame): Ditto.
+ (x_set_sticky): Pass atoms to set_wm_state.
+ (do_ewmh_fullscreen): Ditto.
+
+
+ * xterm.h (x_display_info): Add Xatom_net_supported,
+ Xatom_net_supporting_wm_check, Xatom_net_active_window,
+ Xatom_net_wm_window_opacity, Xatom_XEMBED_INFO, SM_CLIENT_ID.
+
+ * xfns.c (Fx_show_tip): Fix typo in docstring.
+
+2010-11-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * cmds.c (Fself_insert_command): Don't call XFASTINT without checking
+ it's not negative.
+
+2010-11-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * font.c (font_filter_properties): Add const to array elements of
+ properties args.
+
+ * font.h (font_filter_properties): Likewise.
+
+ * ftfont.c (ftfont_booleans, ftfont_non_booleans): Add const to array
+ elements.
+
+ * w32font.c (w32font_booleans, w32font_non_booleans): Likewise.
+
+2010-11-10 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbusbind.c (QCdbus_type_unix_fd): New Lisp object.
+ (XD_BASIC_DBUS_TYPE, xd_symbol_to_dbus_type, xd_signature)
+ (xd_append_arg, xd_retrieve_arg): Support DBUS_TYPE_UNIX_FD.
+ (Fdbus_call_method): Add DBUS_TYPE_UNIX_FD type mapping to doc string.
+ (syms_of_dbusbind): Initialize QCdbus_type_unix_fd).
+
+2010-11-10 Glenn Morris <rgm@gnu.org>
+
+ * emacs.c (syms_of_emacs) <system-type>: Doc fix.
+
+2010-11-09 Eli Zaretskii <eliz@gnu.org>
+
+ * xfns.c (x_real_positions): Fix declaration-after-statement problem.
+
+2010-11-09 Chong Yidong <cyd@stupidchicken.com>
+
+ * image.c (free_image): Don't garbage the frame here, since this
+ function can be called while redisplaying (Bug#7210).
+ (uncache_image): Garbage the frame here (Bug#6426).
+
+2010-11-09 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xfns.c (x_real_positions): Only use _NET_FRAME_EXTENTS if our
+ parent is the root window. Check this after traversing window tree.
+
+ * xterm.c (x_term_init): Initialize Xatom_net_frame_extents.
+
+ * xterm.h (struct x_display_info): Xatom_net_frame_extents is new.
+
+ * xfns.c (x_real_positions): Try to get _NET_FRAME_EXTENTS first
+ before traversing window tree (Bug#5721).
+
+2010-11-07 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xfns.c (set_machine_and_pid_properties): Let X set WM_CLIENT_MACHINE.
+
+ * xdisp.c (note_mode_line_or_margin_highlight):
+ Initialize Cursor to No_Cursor for HAVE_WINDOW_SYSTEM also.
+
+2010-11-06 Eli Zaretskii <eliz@gnu.org>
+
+ * xfns.c (Fx_show_tip): If any of the tool-tip text lines is R2L,
+ adjust width of tool-tip frame to the width of text, excluding the
+ stretch glyph at the beginning of R2L glyph rows.
+
+ * w32fns.c (Fx_show_tip): Likewise.
+
+2010-11-06 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsfont.m: Include termchar for new mouse-highlight.
+ (nsfont_draw): Use MOUSE_HL_INFO.
+
+2010-11-05 Eli Zaretskii <eliz@gnu.org>
+
+ Unify mouse-highlight code for all GUI and TTY sessions.
+
+ * term.c: Remove static mouse_face_* variables. All users
+ changed.
+ (term_show_mouse_face, term_clear_mouse_face)
+ (fast_find_position, term_mouse_highlight): Functions deleted.
+ (tty_draw_row_with_mouse_face): New function.
+ (term_mouse_movement): Call note_mouse_highlight instead of
+ term_mouse_highlight.
+
+ * nsterm.m (ns_update_window_begin, ns_update_window_end)
+ (ns_update_end, x_destroy_window, ns_frame_up_to_date)
+ (ns_dumpglyphs_box_or_relief, ns_maybe_dumpglyphs_background)
+ (ns_dumpglyphs_image, ns_dumpglyphs_stretch)
+ (ns_initialize_display_info, keyDown, mouseMoved, mouseExited):
+ Replace Display_Info with Mouse_HLInfo everywhere where
+ mouse_face_* members were accessed for mouse highlight purposes.
+
+ * xterm.c (x_update_window_begin, x_update_window_end)
+ (x_update_end, XTframe_up_to_date, x_set_mouse_face_gc)
+ (handle_one_xevent, x_free_frame_resources, x_term_init):
+ Replace Display_Info with Mouse_HLInfo everywhere where mouse_face_*
+ members were accessed for mouse highlight purposes.
+
+ * w32term.c (x_update_window_begin, x_update_window_end)
+ (x_update_end, w32_read_socket, x_free_frame_resources)
+ (w32_initialize_display_info): Replace Display_Info with
+ Mouse_HLInfo everywhere where mouse_face_* members were accessed
+ for mouse highlight purposes.
+
+ * xdisp.c (show_mouse_face, note_mode_line_or_margin_highlight)
+ (note_mouse_highlight) [HAVE_WINDOW_SYSTEM]: Don't run GUI code
+ unless the frame is on a window-system.
+ (get_tool_bar_item, handle_tool_bar_click)
+ (note_tool_bar_highlight, draw_glyphs, erase_phys_cursor)
+ (show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
+ (note_mode_line_or_margin_highlight, note_mouse_highlight)
+ (x_clear_window_mouse_face, cancel_mouse_face, expose_frame):
+ Replace Display_Info with Mouse_HLInfo everywhere where
+ mouse_face_* members were accessed for mouse highlight purposes.
+ (coords_in_mouse_face_p): Move prototype out of the
+ HAVE_WINDOW_SYSTEM conditional.
+ (x_y_to_hpos_vpos, frame_to_window_pixel_xy): Move out of the
+ HAVE_WINDOW_SYSTEM block.
+ (try_window_id) [HAVE_GPM || MSDOS]:
+ Call x_clear_window_mouse_face.
+ (draw_row_with_mouse_face): Implementation for HAVE_WINDOW_SYSTEM
+ systems. Call tty_draw_row_with_mouse_face for TTY systems.
+ (show_mouse_face): Call draw_row_with_mouse_face, instead of
+ calling draw_glyphs directly.
+ (show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
+ (cursor_in_mouse_face_p, rows_from_pos_range)
+ (mouse_face_from_buffer_pos, mouse_face_from_string_pos)
+ (note_mode_line_or_margin_highlight, note_mouse_highlight)
+ (x_clear_window_mouse_face, cancel_mouse_face): Move out of the
+ HAVE_WINDOW_SYSTEM block. Ifdef away window-system specific
+ fragments.
+ (note_mouse_highlight): Call popup_activated for MSDOS as well.
+ Clear mouse highlight if pointer is over glyphs whose OBJECT is an
+ integer.
+ (mouse_face_from_buffer_pos): Add parentheses around && within ||.
+ (x_consider_frame_title, tool_bar_lines_needed):
+ Move prototypes to HAVE_WINDOW_SYSTEM-only part.
+ (get_window_cursor_type): Move inside a HAVE_WINDOW_SYSTEM-only
+ part. Remove "#ifdef HAVE_WINDOW_SYSTEM" from body of function.
+ (null_glyph_slice): Move declaration into HAVE_WINDOW_SYSTEM-only
+ part.
+
+ * dispnew.c (mirror_make_current): Set Y coordinate of the
+ mode-line and header-line rows.
+ (init_display): Setup initial frame's output_data for text
+ terminal frames.
+
+ * xmenu.c (popup_activated): Don't define on MSDOS, which now has
+ its own definition on msdos.c.
+
+ * msdos.c (show_mouse_face, clear_mouse_face)
+ (fast_find_position, IT_note_mode_line_highlight)
+ (IT_note_mouse_highlight): Functions deleted.
+ (IT_frame_up_to_date, dos_rawgetc): Call note_mouse_highlight
+ instead of IT_note_mouse_highlight.
+ (draw_row_with_mouse_face, popup_activated): New functions.
+ (dos_set_window_size, draw_row_with_mouse_face, IT_update_begin)
+ (IT_update_end, IT_frame_up_to_date, internal_terminal_init)
+ (dos_rawgetc): Replace Display_Info with Mouse_HLInfo everywhere
+ where mouse_face_* members were accessed for mouse highlight
+ purposes.
+
+ * msdos.h (initialize_msdos_display): Add prototype.
+
+ * frame.h (MOUSE_HL_INFO): New macro.
+
+ * lisp.h (Mouse_HLInfo): New data type.
+
+ * xterm.h (struct x_display_info):
+ * w32term.h (struct w32_display_info):
+ * nsterm.h (struct ns_display_info):
+ * termchar.h (struct tty_display_info): Use it instead of
+ mouse_face_* members.
+
+ * dispextern.h (show_mouse_face, clear_mouse_face): Update type of
+ 1st argument.
+ (frame_to_window_pixel_xy, note_mouse_highlight)
+ (x_clear_window_mouse_face, cancel_mouse_face, clear_mouse_face)
+ (show_mouse_face, cursor_in_mouse_face_p): Move prototypes out of
+ HAVE_WINDOW_SYSTEM conditional.
+ (draw_row_with_mouse_face): Declare prototype.
+ (tty_draw_row_with_mouse_face): Declare prototype.
+
+2010-11-05 Eli Zaretskii <eliz@gnu.org>
+
+ * term.c (append_glyphless_glyph, produce_glyphless_glyph):
+ Remove unused variables.
+
+2010-11-05 Adrian Robert <Adrian.B.Robert@gmail.com>
+
+ * nsterm.m (EmacsView-mouseExited:): Correct error in conditional
+ logic pointed out by Eli Zaretskii.
+
+2010-11-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * coding.c (coding-category-list): Refer to set-coding-system-priority
+ instead of the obsolete set-coding-priority in the doc string.
+
+
+2010-11-04 Adrian Robert <Adrian.B.Robert@gmail.com>
+
+ * nsfont.m (nsfont_draw): Correct previous patch to return
+ correct value.
+ * nsimage.m (EmacsImage-setXBMColor:): Correct previous patch:
+ don't change the method signature, change the return.
+
+2010-11-04 Ismail Donmez <ismail@namtrac.org> (tiny change)
+
+ * nsfont.m (nsfont_draw)
+ * nsimage.m (EmacsImage-setXBMColor:)
+ * nsterm.m (EmacsView-performDragOperation:): Correct empty return.
+
+2010-11-03 Julien Danjou <julien@danjou.info>
+
+ * image.c (gif_load): Add support for transparency and specified
+ :background.
+
+2010-11-01 Kenichi Handa <handa@m17n.org>
+
+ * dispextern.h (lookup_glyphless_char_display): Extern it.
+
+ * termhooks.h (struct terminal): New member charset_list.
+
+ * coding.c (Fset_terminal_coding_system_internal): Set the
+ `charset_list' member of struct terminal.
+
+ * term.c (produce_glyphs): Handle the case it->what == IT_GLYPHLESS.
+ (append_glyphless_glyph, produce_glyphless_glyph): New functions.
+
+ * xdisp.c (lookup_glyphless_char_display): Make it non-static.
+ (lookup_glyphless_char_display): Set it->what at the end.
+ (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
+ (last_glyphless_glyph_merged_face_id): Make them non-static.
+
+ * w32term.c (x_draw_glyphless_glyph_string_foreground):
+ Fix the arg with_background for font->driver->draw.
+
+2010-11-01 Kenichi Handa <handa@m17n.org>
+
+ * w32gui.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
+ Surround chp by parentheses.
+
+2010-11-01 Kenichi Handa <handa@m17n.org>
+
+ Implement various display methods for glyphless characters.
+
+ * xdisp.c (Qglyphless_char, Vglyphless_char_display)
+ (Qglyphless_char_display, Qhexa_code, Qempty_box, Qthin_space)
+ (Qzero_width): New variables.
+ (THIN_SPACE_WIDTH): New macro.
+ (lookup_glyphless_char_display): New funciton.
+ (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
+ (last_glyphless_glyph_merged_face_id): New variables.
+ (get_next_display_element): Check glyphless characters.
+ (redisplay_internal): Initialize last_glyphless_glyph_frame and
+ last_glyphless_glyph_face_id.
+ (fill_glyphless_glyph_string): New function.
+ (BUILD_GLYPHLESS_GLYPH_STRING): New macro.
+ (BUILD_GLYPH_STRINGS): Handle the case GLYPHLESS_GLYPH.
+ (append_glyphless_glyph, produce_glyphless_glyph): New functions.
+ (x_produce_glyphs): If a suitable font is not found, produce a
+ glyphless glyph. Handle the case it->what == IT_GLYPHLESS.
+ (syms_of_xdisp): Intern and staticpro Qglyphless_char,
+ Qglyphless_char_display, Qhexa_code, Qempty_box, Qthin_space, and
+ Qzero_width.
+ (Vglyphless_char_display): Declare it as a Lisp variable.
+
+ * dispextern.h (enum glyph_type): Add GLYPHLESS_GLYPH.
+ (struct glyph): Change the size of the member "type" to 3.
+ Add glyphless to the union slice and u.
+ (enum display_element_type): Add IT_GLYPHLESS.
+ (enum glyphless_display_method): New enum.
+ (struct it): New member glyphless_method.
+ (Vglyphless_char_display): Extern it.
+
+ * xterm.c (x_draw_glyphless_glyph_string_foreground): New function.
+ (x_draw_glyph_string): Handle the case GLYPHLESS_GLYPH.
+
+ * w32term.c (x_draw_glyphless_glyph_string_foreground): New function.
+ (x_draw_glyph_string): Handle the case GLYPHLESS_GLYPH.
+
+ * nsterm.m (ns_draw_glyph_string): Handle the case
+ GLYPHLESS_GLYPH (the detail is not yet implemented).
+
+2010-10-31 Glenn Morris <rgm@gnu.org>
+
+ * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Fix merge, maybe.
+
+ * frame.c (syms_of_frame) <tool-bar-mode>:
+ Default to nil if !HAVE_WINDOW_SYSTEM. (Bug#7299)
+
+2010-10-31 Chong Yidong <cyd@stupidchicken.com>
+
+ * xterm.c (x_connection_closed): Print informative error message
+ when aborting on GTK. This requires using shut_down_emacs
+ directly instead of Fkill_emacs.
+
+2010-10-29 Eli Zaretskii <eliz@gnu.org>
+
+ * emacs.c (main): Call syms_of_filelock unconditionally.
+
+ * filelock.c (syms_of_filelock): Move out of #ifdef CLASH_DETECTION
+ clause, but keep part of it conditioned on CLASH_DETECTION.
+
+2010-10-29 Glenn Morris <rgm@gnu.org>
+
+ * nsfns.m (Fx-display-save-under, Fx-open-connection)
+ (Fxw-color-defined-p, Fxw-display-color-p, Fx-show-tip):
+ * w32fns.c (Fxw_color_defined_p, Fx_open_connection):
+ * xfns.c (Fxw_color_defined_p, Fx_open_connection):
+ Sync docs between X, W32, NS.
+
+ * buffer.c (syms_of_buffer) <abbrev-mode, transient-mark-mode>:
+ * frame.c (syms_of_frame) <tool-bar-mode>: Move doc here from Lisp.
+
+2010-10-26 Juanma Barranquero <lekktu@gmail.com>
+
+ * eval.c (init_eval_once): Set max_lisp_eval_depth to 600;
+ otherwise, bootstrapping on Windows fails to compile macroexp.el.
+
+2010-10-26 Eli Zaretskii <eliz@gnu.org>
+
+ * cmds.c (internal_self_insert): Don't insert if argument N is
+ zero or negative. (Bug#7281)
+
+2010-10-26 Jan Djärv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (qttip_cb): Set title to empty for ATK (Bug#7278).
+
+2010-10-25 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (SOME_MACHINE_LISP): Remove easymenu.elc.
+
+2010-10-24 Glenn Morris <rgm@gnu.org>
+
+ * w32fns.c (Fx_synchronize, Fx_change_window_property)
+ (Fx_window_property, Fx_file_dialog):
+ * xfns.c (Fx_synchronize, Fx_change_window_property)
+ (Fx_window_property, Fx_file_dialog): Sync docs between w32 and X.
+
+2010-10-24 Chong Yidong <cyd@stupidchicken.com>
+
+ * xterm.c (x_connection_closed): Kill Emacs unconditionally.
+
+2010-10-24 Eli Zaretskii <eliz@gnu.org>
+
+ * frame.c (Fframep, Fwindow_system): Deprecate use as a predicate.
+
+ * dispnew.c (syms_of_display) <initial-window-system, window-system>:
+ Deprecate use as a boolean flag.
+
+2010-10-24 Jim Meyering <jim@meyering.net>
+
+ * emacs.c (argmatch): Don't treat "--" as "--chdir".
+
+2010-10-24 Glenn Morris <rgm@gnu.org>
+
+ * w16select.c (syms_of_win16select) <selection-coding-system>:
+ <next-selection-coding-system>:
+ * w32select.c (syms_of_w32select) <selection-coding-system>:
+ <next-selection-coding-system>:
+ Sync docs with select.el.
+
+ * xfaces.c (syms_of_xfaces) <tty-defined-color-alist>: Sync doc with
+ Lisp version.
+
+ * w32term.c (syms_of_w32term) <x-use-underline-position-properties>:
+ Sync doc with the xterm.c version.
+
+ * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
+ * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
+
+2010-10-23 Glenn Morris <rgm@gnu.org>
+
+ * buffer.c (syms_of_buffer) <cursor-in-non-selected-windows>:
+ * frame.c (syms_of_frame) <menu-bar-mode>:
+ * xdisp.c (syms_of_xdisp) <auto-hscroll-mode, display-hourglass>:
+ <hourglass-delay>: Sync docs with Lisp.
+
+2010-10-23 Eli Zaretskii <eliz@gnu.org>
+
+ Implement mouse highlight for bidi-reordered lines.
+
+ * xdisp.c (fast_find_string_pos): #ifdef away, not used anymore.
+ (mouse_face_from_string_pos): New function, replaces
+ fast_find_string_pos.
+ (note_mouse_highlight): Call it instead of fast_find_string_pos.
+ (note_mode_line_or_margin_highlight): Support bidi-reordered
+ strings and R2L glyph rows. Fix comments.
+ (note_mouse_highlight): When bidi reordering is turned on in a
+ buffer, call next-single-property-change and
+ previous-single-property-change with last argument nil.
+ Clear mouse highlight when mouse pointer is in a R2L row on the stretch
+ glyph that stands for no text beyond the line end.
+ (row_containing_pos): Don't return too early when CHARPOS is in a
+ bidi-reordered continued line. Return immediately when the first
+ hit is found in a line that is not continued, or when an exact
+ match for CHARPOS is found.
+ (rows_from_pos_range): New function.
+ (mouse_face_from_buffer_pos): Use it instead of calling
+ row_containing_pos for START_CHARPOS and END_CHARPOS. Rewrite the
+ function to support mouse highlight in bidi-reordered lines and
+ not to assume that START_CHARPOS is always in mouse_face_beg_row.
+ If necessary, swap mouse_face_beg_row and mouse_face_end_row so
+ that the former is always above the latter or identical to it.
+ (show_mouse_face): Support drawing highlighted R2L lines.
+ (coords_in_mouse_face_p): New function, bidi-aware.
+ (cursor_in_mouse_face_p, note_mouse_highlight, erase_phys_cursor):
+ Call it instead of comparing with mouse-face members of dpyinfo.
+ (note_mode_line_or_margin_highlight): Fix confusingly swapped
+ usage of hpos and vpos.
+
+2010-10-22 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xrdb.c: Include keyboard.h for MOTIF.
+
+ * xmenu.c: Revert 2010-07-27 change: lwlib.h is needed for
+ MOTIF (Bug#7263).
+
+ * xfns.c: Include Xm/TextF and Xm/List.
+ (file_dialog_cb, file_dialog_unmap_cb, clean_up_file_dialog):
+ Make ANSI prototypes.
+
+2010-10-22 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (SOME_MACHINE_LISP): Add w32-vars.
+ Remove ccl and duplicate mouse.
+
+2010-10-21 Chong Yidong <cyd@stupidchicken.com>
+
+ * insdel.c (prepare_to_modify_buffer): Don't set
+ saved-region-selection if modification hooks are disabled.
+
+2010-10-19 Chong Yidong <cyd@stupidchicken.com>
+
+ * cmds.c (Fdelete_char): Doc fix.
+
+2010-10-19 Ken Brown <kbrown@cornell.edu>
+
+ * s/cygwin.h (SIGNALS_VIA_CHARACTERS): New define (bug#7225).
+
+2010-10-19 Kenichi Handa <handa@m17n.org>
+
+ Fix incorrect font metrics when the same font is opened with
+ different pixelsizes.
+
+ * xftfont.c: Include composite.h.
+ (xftfont_shape): New function.
+ (syms_of_xftfont): Set xftfont_driver.shape.
+
+2010-10-18 Julien Danjou <julien@danjou.info>
+
+ * frame.c (Fframe_pointer_visible_p):
+ Add `frame-pointer-visible-p' to get the pointer visibility.
+
+2010-10-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnutls.c (emacs_gnutls_read): Return 0 if we get a
+ non-"EAGAIN"-like error to signal to Emacs that the socket should
+ be closed.
+
+2010-10-15 Eli Zaretskii <eliz@gnu.org>
+
+ * unexcoff.c (make_hdr): Fix prototype according to changes in
+ 2010-10-03T13:59:56Z!dann@ics.uci.edu.
+
+ * image.c (tiff_load): Cast 3rd argument to avoid compiler warning.
+
+2010-10-15 Tassilo Horn <tassilo@member.fsf.org>
+
+ * Makefile.in (really-oldXMenu): Fix typo in variable name that
+ made building the X menu fail.
+ (really-oldXMenu): Fix my previous fix.
+
+2010-10-14 Damyan Pepper <damyanp@gmail.com>
+
+ Fix handling of font properties on Windows (bug#6303).
+ * font.c (font_filter_properties): New function, refactored from
+ ftfont_filter_properties.
+ * font.h (font_filter_properties): Declare.
+ * ftfont.c (ftfont_filter_properties): Use font_filter_properties.
+ * w32font.c (w32font_booleans, w32font_non_booleans): New variables.
+ (w32font_filter_properties): New function.
+ (w32font_driver): Add w32font_filter_properties.
+
+2010-10-14 Juanma Barranquero <lekktu@gmail.com>
+
+ * font.c (Ffont_variation_glyphs):
+ * ccl.c (Fccl_execute_on_string): Fix typo in docstring.
+
+2010-10-14 Juanma Barranquero <lekktu@gmail.com>
+
+ * w32fns.c (w32_wnd_proc, file_dialog_callback):
+ * w32font.c (w32_generic_family):
+ * w32inevt.c (key_event):
+ * w32menu.c (fill_in_menu):
+ * w32proc.c (reader_thread, w32_executable_type, compare_env)
+ (merge_and_sort_env, int_from_hex, enum_locale_fn, enum_codepage_fn):
+ * w32term.c (w32_read_socket): Make static.
+
+2010-10-13 Juanma Barranquero <lekktu@gmail.com>
+
+ * image.c (DEF_IMGLIB_FN): Add argument to adapt to strict
+ prototypes; all callers changed.
+
+2010-10-13 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in (TLIB2): Rename from TLIBW32.
+ (OBJ2): New macro.
+ (WIN32OBJ, FONTOBJ): Remove.
+ (OBJ1): Redistribute object files with OBJ2.
+ (LIBS, $(TEMACS)): Use TLIB2.
+ (make-buildobj-CMD, make-buildobj-SH): Use OBJ2.
+ ($(TLIB2), TAGS, TAGS-LISP, TAGS-gmake): Depend on OBJ2.
+
+2010-10-13 Juanma Barranquero <lekktu@gmail.com>
+
+ * emacs.c (Vdynamic_library_alist)
+ (syms_of_emacs) <dynamic-library-alist>: Move from image.c and rename.
+ Doc fix.
+
+ * lisp.h (Vdynamic_library_alist): Declare extern.
+
+ * image.c (Vimage_library_alist)
+ (syms_of_image) <image-library-alist>: Move to emacs.c and rename.
+ (lookup_image_type): Use Vdynamic_library_alist.
+ (Finit_image_library): Doc fix.
+
+2010-10-12 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * Makefile.in (lispsource, libsrc, etc, oldxmenudir, lwlibdir)
+ (lispdir): Remove trailing /, update all uses.
+
+2010-10-12 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (Qleft): Declare.
+ (ns_right_alternate_modifier): New variable
+ (NSRightAlternateKeyMask): New define.
+ (EV_MODIFIERS): Parse NSRightAlternateKeyMask if
+ ns_right_alternate_modifier isn't Qleft.
+ (keyDown): If ns_right_alternate_modifier isn't Qleft, use it
+ as emacs modifier for NSRightAlternateKeyMask.
+ (syms_of_nsterm): DEFVAR_LISP ns-right-alternate-modifier.
+
+2010-10-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnutls.c (emacs_gnutls_write): If we're trying to write before
+ gnutls is ready, return EAGAIN as the errno.
+
+2010-10-10 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * vm-limit.c:
+ * unexhp9k800.c:
+ * unexelf.c:
+ * unexaix.c:
+ * termcap.c: Remove #ifdef emacs / #ifndef emacs code, unused.
+
+ * Makefile.in (temacs): Use $(ALL_CFLAGS) on the link line.
+ (PROFILING_LDFLAGS): Remove, not needed anymore.
+
+ * Makefile.in: Use $(...) everywhere instead of ${...}
+ (CRT_DIR): Move near potential user.
+ (START_FILE): Move near CRT_DIR, it might use it.
+
+ * sysdep.c (LPASS8): Remove, unused.
+ (emacs_ospeed): Change from being a global to a local in the only
+ user: init_baud_rate.
+
+2010-10-09 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnutls.c (syms_of_gnutls): All the bootprops are keywords.
+ (emacs_gnutls_write): Remove the debuggin fsync call.
+ (emacs_gnutls_read): Return -1 if we got an error from
+ gnutls_read. This allows us to actually read lots of data from
+ the GnuTLS stream.
+ (emacs_gnutls_write): Check for GNUTLS_E_AGAIN and not EINTR.
+ According to the documentation, this is correct, and it seems to
+ make things work.
+
+2010-10-09 Chong Yidong <cyd@stupidchicken.com>
+
+ * xterm.c (x_draw_relief_rect): Clear corner pixels.
+
+2010-10-08 Michael Albinus <michael.albinus@gmx.de>
+
+ * keyboard.c: Revert last change; it was not intended to be
+ synchronized with the trunk.
+
+2010-10-08 Kenichi Handa <handa@m17n.org>
+
+ * coding.c (complement_process_encoding_system): Fix previous change.
+
+2010-10-08 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbusbind.c (syms_of_dbusbind): Move putenv call ...
+ (Fdbus_init_bus): ... here. (Bug#7113)
+
+2010-10-08 Glenn Morris <rgm@gnu.org>
+
+ * buffer.c (before-change-functions, after-change-functions):
+ Three-year overdue doc fix following 2007-08-13 change.
+
+2010-10-08 Kenichi Handa <handa@m17n.org>
+
+ * coding.c (coding_inherit_eol_type): If parent doesn't specify
+ eol-format, inherit from the system's default.
+ (complement_process_encoding_system): Make a new coding system
+ inherit the original eol-format.
+
+2010-10-08 Kenichi Handa <handa@m17n.org>
+
+ * coding.c (complement_process_encoding_system): New function.
+
+ * coding.h (complement_process_encoding_system): Extern it.
+
+ * callproc.c (Fcall_process): Complement the coding system for
+ encoding arguments.
+ (Fcall_process_region): Complement the coding system for encoding
+ the input to the process.
+
+ * process.c (Fstart_process): Complement the coding system for
+ encoding arguments.
+ (send_process): Complement the coding system for encoding what
+ sent to the process.
+
+2010-10-08 Kenichi Handa <handa@m17n.org>
+
+ * xfont.c (xfont_open): Fix setting of font->average_width from
+ :avgwidth property (Bug#7123).
+
+2010-10-08 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbusbind.c (syms_of_dbusbind): Use putenv instead of setenv, it
+ is more portable.
+
+ * keyboard.c (gobble_input): Move call of xd_read_queued_messages ...
- (kbd_buffer_get_event): ... here. This is needed for cygwin, which
++ (kbd_buffer_get_event): ... here. This is needed for cygwin, which
+ has not defined SIGIO.
+
+2010-10-08 Chong Yidong <cyd@stupidchicken.com>
+
+ * xterm.c (x_draw_relief_rect): If box width is larger than 1,
+ draw the outermost line using the black relief, for legibility.
+ Omit drawing the four corner pixels.
+
+2010-10-04 Chong Yidong <cyd@stupidchicken.com>
+
+ * keyboard.c (echo_prompt): Function moved into read_key_sequence.
+ (read_key_sequence): Inline echo_prompt.
+ (echo_dash): Add a dash only if key is continued (Bug#7137).
+
+2010-10-04 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Remove O_RDONLY, O_WRONLY definitions, not needed.
+ * unexcoff.c:
+ * lread.c:
+ * fileio.c:
+ * doc.c:
+ * callproc.c:
+ * alloc.c:
+ * termcap.c: Remove O_RDONLY O_WRONLY definitions.
+
+2010-10-03 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnutls.h (GNUTLS_LOG2): Convenience macro.
+
+ * gnutls.c: Add property list symbol holders.
+ (emacs_gnutls_handshake): Clarify how sockets are passed to
+ GnuTLS.
+ (gnutls_log_function2): Convenience function using GNUTLS_LOG2.
+ (Fgnutls_boot): Get all parameters from a plist. Require trustfiles
+ and keyfiles to be a list of file names. Default to "NORMAL" for
+ the priority string. Improve logging.
+
+2010-10-03 Glenn Morris <rgm@gnu.org>
+
+ * fileio.c (Vdirectory_sep_char): Remove.
+
+2010-10-03 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * termhooks.h: Remove #ifdef CONSP.
+
+ * xterm.c (NO_INLINE, noinline): Move definitions to ../configure.in.
+
+ Include <fcntl.h> unconditionally.
+ * termcap.c:
+ * sysdep.c:
+ * lread.c:
+ * keyboard.c:
+ * filelock.c:
+ * fileio.c:
+ * doc.c:
+ * callproc.c:
+ * alloc.c: Remove include guards for <fcntl.h>, process.c already
+ does it.
+
+ * process.c: Do not include <sys/wait.h>, syswait.h does it.
+
+ * sysdep.c (flush_pending_output): Remove code, does not do
+ anything on any platform.
+
+ Remove unused code.
+ * sysdep.c (select_alarm, sys_select, read_input_waiting):
+ Remove select emulation, all systems support select.
+ (set_exclusive_use): Remove, the only user is in an #if 0 block.
+ * process.c (create_process): Remove #if 0 code.
+
+ Remove unused arguments for unexec.
+ The third one is never used, and the last two are always passed as zero.
+ * emacs.c (unexec): Add declaration.
+ (Fdump_emacs): Only pass the first two arguments to unexec.
+ Simplify #ifdef.
+ * unexw32.c (unexec):
+ * unexsol.c (unexec):
+ * unexhp9k800.c (unexec):
+ * unexcw.c (unexec): Remove the last 3 arguments, unused.
+ * unexelf.c (unexec): Remove the last 3 arguments, unused.
+ (find_section): Use const.
+ * unexmacosx.c (unexec): Remove the last 3 arguments, unused.
+ (unexec_error): Declare it NO_RETURN.
+ * unexcoff.c (make_hdr): Assume bss_start is always zero, remove
+ it as an argument, remove data_start and entry_address arguments, unused.
+ (unexec): Remove bss_start, data_start and
+ entry_address arguments.
+ * unexaix.c (make_hdr): Assume bss_start is always zero, remove
+ it as an argument, remove data_start and entry_address arguments, unused.
+ (unexec): Remove bss_start, data_start and
+ entry_address arguments.
+
+2010-10-03 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in (TAGS, TAGS-LISP, TAGS-gmake): Add $(FONTOBJ).
+
+ * gnutls.c (emacs_gnutls_handshake, gnutls_make_error)
+ (gnutls_emacs_global_init, gnutls_emacs_global_deinit): Make static.
+ (Fgnutls_get_initstage, Fgnutls_deinit, Fgnutls_boot, Fgnutls_bye):
+ Fix typos in docstrings.
+ (Fgnutls_error_fatalp, Fgnutls_error_string): Doc fixes.
+ (Fgnutls_errorp): Doc fix; use ERR for the argument name.
+
+2010-10-03 Chong Yidong <cyd@stupidchicken.com>
+
+ * keyboard.c (command_loop_1): Make sure the mark is really alive
+ before using it (Bug#7044).
+
+2010-10-02 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in (tags): Rename target to full-tags.
+
+2010-10-02 Eli Zaretskii <eliz@gnu.org>
+
+ * emacs.c (main): Remove !WINDOWSNT conditional.
+ (Fkill_emacs): Don't mention exemption on MS-Windows.
+
+2010-10-02 Glenn Morris <rgm@gnu.org>
+
+ * character.c (Fchar_bytes): Remove obsolete function.
+ (syms_of_character): Remove Schar_bytes.
+
+ * emacs.c (fatal_error_signal): Also run Fkill_emacs on SIGINT.
+ (main) [!WINDOWSNT]: Handle SIGINT with fatal_error_signal
+ in batch-mode.
+ (Fkill_emacs): Doc fix. Also run the hook in batch mode.
+ (kill-emacs-hook): Doc fix.
+
+2010-10-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * xml.c (Flibxml_parse_xml_region, Flibxml_parse_html_region)
+ (parse_region): Rework to take regions instead of strings, and
+ renamed to reflect that these are the libxml functions.
+
+2010-10-01 Eli Zaretskii <eliz@gnu.org>
+
+ * term.c (init_tty) [DOS_NT]: Don't call Wcm_clear after setting
+ screen dimensions in tty->Wcm.
+
+ * xdisp.c (set_cursor_from_row): When the row is truncated and
+ point is outside the range of displayed characters, position the
+ cursor inside the scroll margin. (Bug#6349)
+
+2010-10-01 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Do not include stdlib.h and string.h, config.h does it.
+ * xfont.c:
+ * w32term.c:
+ * w32reg.c:
+ * w32inevt.c:
+ * w32heap.c:
+ * w32console.c:
+ * w16select.c:
+ * unexsol.c:
+ * term.c:
+ * sound.c:
+ * scroll.c (m):
+ * gtkutil.c:
+ * font.c:
+ * filelock.c:
+ * fileio.c:
+ * dosfns.c:
+ * dbusbind.c:
+ * bidi.c:
+ * callproc.c:
+ * process.c:
+ * msdos.c:
+ * charset.c: Do not include stdlib.h and string.h, config.h does it.
+
+ * callproc.c (SIGCHLD): Remove conditional definition, syssignal.h
+ defines it.
+
+ * process.c: Move #include <pty.h> earlier.
+ (SIGCHLD): Remove conditional definition, syssignal.h defines it.
+ (pty_name): Move definition later.
+
+ * nsselect.m (syms_of_nsselect):
+ * nsmenu.m (syms_of_nsmenu):
+ * nsfns.m (syms_of_nsfns):
+ * msdos.c (syms_of_msdos):
+
+ * image.c (syms_of_image):
+ * charset.c (syms_of_charset): Use intern_c_string instead of intern.
+
+ * point.h: Remove, unused.
+
+2010-10-01 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (TAGS, frc, TAGS-LISP, ../nt/TAGS, tags)
+ (TAGS-gmake, TAGS-nmake, TAGS-LISP-gmake, TAGS-LISP-nmake)
+ (nt-TAGS-gmake, nt-TAGS-nmake): New targets.
+
+2010-09-30 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * xml.c (parse_string): Use const.
+
+2010-09-30 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * eval.c (Fbacktrace): Don't overwrite print-level on exit.
+ Also only override Vprint_level if it isn't already bound, and increase
+ the level to 8 to produce more useful backtraces for bug reports.
+
+2010-09-30 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * Makefile.in: ecrt0.c does not exist anymore, do not mention it.
+
+2010-09-30 Juanma Barranquero <lekktu@gmail.com>
+
+ * w32console.c (vga_stdcolor_name): Remove unused function;
+ presumed dead after 2007-11-30T13:57:21Z!jasonr@gnu.org.
+
+2010-09-29 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnutls.c (emacs_gnutls_handshake): Made into internal function.
+ (Fgnutls_boot): Start the handshake.
+ (emacs_gnutls_read): Perform the handshake from the reader loop.
+ (Fgnutls_boot): Remove some debugging messages.
+ Change indentation throughout to use the Emacs style.
+ (emacs_gnutls_handshake): Cast the fds to something that's
+ possibly the expected length.
+ (emacs_gnutls_write): Return -1 if we try to write before handshake.
+
+ * process.h (Lisp_Process): Add a gnutls_p field to Lisp_Process.
+
+ * process.c (make_process): Set the gnutls_p field to zero by
+ default.
+ (read_process_output): Always call the gnutls_read function if the
+ stream is a gnutls stream.
+ (send_process): Ditto for writes.
+
+ * gnutls.c (emacs_gnutls_write, emacs_gnutls_read): Refuse to read
+ or write anything until the state is GNUTLS_STAGE_READY.
+ (Fgnutls_boot): Mark the stream as being a gnutls stream.
+
+2010-09-29 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (reseat_1): Initialize bidi_it.paragraph_dir to
+ NEUTRAL_DIR.
+ (handle_invisible_prop, iterate_out_of_display_property)
+ (next_element_from_buffer): If bidi_it.first_elt is set, call
+ bidi_paragraph_init with NO_DEFAULT_P argument non-zero.
+ (Bug#7128)
+
+ * print.c (print_object): Fix format string and argument types for
+ printing a Lisp_Misc_Marker.
+
+ * xdisp.c (pos_visible_p, c_string_pos, number_of_chars)
+ (load_overlay_strings, get_overlay_strings_1)
+ (get_overlay_strings, forward_to_next_line_start)
+ (back_to_previous_visible_line_start, reseat, reseat_to_string)
+ (get_next_display_element, next_element_from_string)
+ (next_element_from_c_string, next_element_from_buffer)
+ (move_it_vertically_backward, move_it_by_lines, add_to_log)
+ (message_dolog, message_log_check_duplicate, message2_nolog)
+ (message3, message3_nolog, vmessage, set_message, set_message_1)
+ (hscroll_window_tree, text_outside_line_unchanged_p)
+ (set_cursor_from_row, set_vertical_scroll_bar, redisplay_window)
+ (find_last_unchanged_at_beg_row)
+ (find_first_unchanged_at_end_row, row_containing_pos)
+ (trailing_whitespace_p, display_mode_element, decode_mode_spec)
+ (display_count_lines, x_produce_glyphs, note_mouse_highlight):
+ Use EMACS_INT for buffer and string positions.
+
+ * dispextern.h (struct it) <string_nchars>: Declare EMACS_INT.
+ (row_containing_pos): Adjust prototype.
+
+ * lisp.h (pos_visible_p, message2, message2_nolog, message3)
+ (message2_nolog, set_message): Adjust prototypes.
+
+2010-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * gnutls.c (Fgnutls_boot): Remove unused vars `data' and `srp_cred'.
+ (Fgnutls_boot): Use SDATA.
+ (Fgnutls_handshake): Remove unused var `max_log_level'.
+
+2010-09-27 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbusbind.c (syms_of_dbusbind): Set $DBUS_FATAL_WARNINGS to "0".
+ (Bug#7113)
+
+2010-09-27 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xgselect.c (xg_select): Clear file descriptors not set from
+ rfds and wfds.
+
+ * process.c (wait_reading_process_output): Add missing FD_CLR
+ for write_mask (must mirror connect_wait_mask).
+
+2010-09-27 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnutls.c (gnutls_log_function): Show level and "gnutls.c"
+ prefix.
+ (Fgnutls_boot): Use changed process members. Use log level with a
+ function parameter to set it. Bring back Emacs-level debugging
+ messages at log level 1 and 2.
+
+ * process.c (make_process): Initialize gnutls_log_level.
+
+ * process.h: Add gnutls_log_level and rename x509_cred and
+ anon_cred to have the gnutls_ prefix for consistency.
+
+ * gnutls.h (GNUTLS_LOG): Add convenience macro.
+
+2010-09-27 Juanma Barranquero <lekktu@gmail.com>
+
+ * w32.c (g_b_init_get_sid_identifier_authority)
+ (GetSidIdentifierAuthority_Proc, get_sid_identifier_authority):
+ Remove, not used.
+ (globals_of_w32): Don't set g_b_init_get_sid_identifier_authority.
+ (init_winsock): Remove useless assignment.
+ (open_process_token, get_token_information, lookup_account_sid)
+ (get_sid_sub_authority, get_sid_sub_authority_count, get_file_security)
+ (get_security_descriptor_owner, get_security_descriptor_group)
+ (is_valid_sid, equal_sid, get_length_sid, copy_sid)
+ (get_native_system_info, get_system_times, init_user_info, crlf_to_lf)
+ (is_unc_volume, GetCachedVolumeInformation, get_volume_info)
+ (is_fat_volume, open_unc_volume, read_unc_volume, close_unc_volume)
+ (unc_volume_file_attributes, convert_from_time_t)
+ (create_toolhelp32_snapshot, process32_first, process32_next)
+ (open_thread_token, impersonate_self, revert_to_self)
+ (get_process_memory_info, get_process_working_set_size)
+ (global_memory_status, global_memory_status_ex, socket_to_fd)
+ (shutdown_handler): Make static.
+
+2010-09-27 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbusbind.c (dbus_fd_cb, xd_get_dispatch_status)
+ (xd_pending_messages): Functions removed.
+ (xd_read_queued_messages): Add parameters fd, *data, for_read in
+ order to be compatible with add_read_fd. Determine bus from data,
+ and call xd_read_message just for this bus.
+ (xd_add_watch): Use xd_read_queued_messages as callback function.
+ Add data.
+
+ * lisp.h (xd_pending_messages, xd_read_queued_messages): Remove.
+
+2010-09-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnutls.c (gnutls_log_function): Add more debugging.
+ (emacs_gnutls_read): Don't infloop while reading.
+
+2010-09-27 Kenichi Handa <handa@m17n.org>
+
+ These changes are to remove restriction on the number of glyphs in
+ one composition.
+
+ * dispextern.h (struct glyph): Change the member "slice" to union.
+ Remove u.cmp.from and u.cmp.to. Give more bits to u.cmp.id.
+ (GLYPH_SLICE_EQUAL_P): Adjust for the above change.
+
+ * dispnew.c (buffer_posn_from_coords): Use glyph->slice.img
+ instead of glyph->slice.
+ (marginal_area_string): Likewise.
+
+ * term.c (encode_terminal_code): Use glyph->slice.cmp instead of
+ glyph->u.cmp.
+ (append_composite_glyph): Likewise.
+
+ * xdisp.c (dump_glyph): Use glyph->slice.cmp instead of
+ glyph->u.cmp.
+ (fill_gstring_glyph_string, x_get_glyph_overhangs)
+ (append_composite_glyph): Likewise.
+ (fill_image_glyph_string): Use glyph->slice.img instead of
+ glyph->slice.
+ (append_glyph, produce_image_glyph, append_stretch_glyph)
+ (note_mouse_highlight): Likewise.
+
+2010-09-26 Jan Djärv <jan.h.d@swipnet.se>
+
+ * process.c (add_keyboard_wait_descriptor)
+ (delete_keyboard_wait_descriptor): Reinstate ifdef subprocesses.
+ (wait_reading_process_output): Don't pass write_mask to select
+ if SELECT_CANT_DO_WRITE_MASK is defined.
+ (SELECT_CANT_DO_WRITE_MASK): Define if SELECT_CANT_DO_WRITE_MASK.
+
+ * process.h (add_read_fd, delete_read_fd, add_write_fd)
+ (delete_write_fd): Declare.
+
+ * process.c (gpm_wait_mask, max_gpm_desc): Remove.
+ (write_mask): New variable.
+ (max_input_desc): Rename from max_keyboard_desc.
+ (fd_callback_info): New variable.
+ (add_read_fd, delete_read_fd, add_write_fd, delete_write_fd):
+ New functions.
+ (Fmake_network_process): FD_SET write_mask.
+ (deactivate_process): FD_CLR write_mask.
+ (wait_reading_process_output): Connecting renamed to Writeok.
+ check_connect removed. check_write is new. Remove references to gpm.
+ Use Writeok/check_write unconditionally (i.e. no #ifdef
+ NON_BLOCKING_CONNECT) instead of Connecting.
+ Loop over file descriptors and call callbacks in fd_callback_info
+ if file descriptor is ready for I/O.
+ (add_gpm_wait_descriptor): Just call add_keyboard_wait_descriptor.
+ (delete_gpm_wait_descriptor): Just call delete_keyboard_wait_descriptor.
+ (keyboard_bit_set): Use max_input_desc.
+ (add_keyboard_wait_descriptor, delete_keyboard_wait_descriptor):
+ Remove #ifdef subprocesses. Use max_input_desc.
+ (init_process): Initialize write_mask and fd_callback_info.
+
+ * keyboard.c (readable_events, gobble_input): Remove DBUS code.
+
+ * dbusbind.c: Include process.h.
+ (dbus_fd_cb, xd_find_watch_fd, xd_toggle_watch)
+ (xd_read_message_1): New functions.
+ (xd_add_watch, xd_remove_watch): Call xd_find_watch_fd.
+ Handle watch for both read and write.
+ (Fdbus_init_bus): Also register xd_toggle_watch.
+ (Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
+ (Fdbus_method_error_internal, Fdbus_send_signal): Remove call
+ to dbus_connection_flush.
+ (xd_read_message): Move most of the code to xd_read_message_1.
+ Call xd_read_message_1 until status is COMPLETE.
+
+2010-09-26 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * term.c: Do not include sys/ioctl.h, not needed.
+ (init_tty): Reorder code to reduce the number of #ifdefs.
+ No code changes.
+
+2010-09-26 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * process.h: Set up GnuTLS support.
+
+ * process.c (make_process, Fstart_process)
+ (read_process_output, send_process): Set up GnuTLS support for
+ process input/output file descriptors.
+
+ * gnutls.h: The GnuTLS glue for Emacs, macros and enums.
+
+ * gnutls.c: The source code for GnuTLS support in Emacs.
+
+ * emacs.c: Set up GnuTLS support and call syms_of_gnutls.
+
+ * config.in: Set up GnuTLS support.
+
+ * Makefile.in (LIBGNUTLS_LIBS, LIBGNUTLS_CFLAGS, ALL_CFLAGS)
+ (obj, LIBES): Set up GnuTLS support.
+
+2010-09-26 Juanma Barranquero <lekktu@gmail.com>
+
+ * w32.c (get_emacs_configuration_options): Fix previous change.
+
+2010-09-25 Chong Yidong <cyd@stupidchicken.com>
+
+ * insdel.c (prepare_to_modify_buffer): Ensure the mark marker is
+ alive before using it (Bug#6977).
+
+2010-09-25 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * xdisp.c (face_before_or_after_it_pos): EMACS_INT/int fixup.
+
+ * dispextern.h: EMACS_INT/int fixup.
+
+ * xdisp.c (string_pos_nchars_ahead, init_iterator): EMACS_INT/int
+ fixup.
+
+ * xrdb.c (magic_file_p): EMACS_INT/int fixup.
+
+2010-09-25 Eli Zaretskii <eliz@gnu.org>
+
+ * window.c (Fpos_visible_in_window_p, Fdelete_other_windows)
+ (Fselect_window, window_scroll_pixel_based)
+ (window_scroll_line_based, Frecenter, Fset_window_configuration):
+ Use EMACS_INT for buffer positions.
+
+ * textprop.c (validate_interval_range, interval_of)
+ (property_change_between_p, Fadd_text_properties)
+ (set_text_properties_1, Fremove_text_properties)
+ (Fremove_list_of_text_properties, Ftext_property_any)
+ (Ftext_property_not_all, copy_text_properties)
+ (text_property_list, extend_property_ranges)
+ (verify_interval_modification): Use EMACS_INT for buffer
+ positions.
+
+ * term.c (fast_find_position, term_mouse_highlight): Use EMACS_INT
+ for buffer positions.
+
+ * process.c (read_process_output, send_process)
+ (Fprocess_send_region, status_notify): Use EMACS_INT for buffer
+ and string positions and size.
+
+ * print.c (print_object, print_string, strout): Use EMACS_INT for
+ string indices.
+
+ * minibuf.c (string_to_object): Use EMACS_INT for string position
+ and size.
+
+ * marker.c (verify_bytepos): Use EMACS_INT for buffer positions.
+
+ * lread.c <read_from_string_index, read_from_string_index_byte>
+ <read_from_string_limit, readchar_count>: Define EMACS_INT.
+ (readchar, unreadchar, read_internal_start): Use EMACS_INT for
+ buffer positions and string length.
+
+ * keyboard.c <last_point_position, last_non_minibuf_size>: Declare
+ EMACS_INT.
+ (echo_truncate, adjust_point_for_property, read_char)
+ (gen_help_event, make_lispy_event, modify_event_symbol)
+ (Fexecute_extended_command, stuff_buffered_input): Use EMACS_INT
+ for buffer positions and string length.
+
+ * keyboard.h (gen_help_event): Adjust prototype.
+
+ * termhooks.h <struct input_event>: Make `code' member EMACS_INT.
+
+ * commands.h <last_point_position>: Declare EMACS_INT.
+
+ * xdisp.c <help_echo_pos>: Define as EMACS_INT.
+ (truncate_echo_area): Accept EMACS_INT argument.
+
+ * dispextern.h <help_echo_pos>: Declare EMACS_INT.
+
+ * lisp.h (truncate_echo_area): Adjust prototype.
+
+ * composite.c (composition_adjust_point): Return EMACS_INT.
+
+ * composite.h (composition_adjust_point): Adjust prototype.
+
+2010-09-25 Juanma Barranquero <lekktu@gmail.com>
+
+ * process.c (Fmake_network_process): When arg :host is 'local,
+ use address 127.0.0.1, not name "localhost". (Bug#6781)
+
+2010-09-24 Eli Zaretskii <eliz@gnu.org>
+
+ * indent.c (Fcurrent_indentation, indented_beyond_p)
+ (compute_motion): Use EMACS_INT for buffer position variables.
+
+ * lisp.h (indented_beyond_p): Adjust prototype.
+
+ * buffer.c (overlay_strings): Return EMACS_INT.
+
+ * buffer.h (overlay_strings): Adjust prototype.
+
+ * region-cache.c (pp_cache): Adjust format to arguments.
+
+ * eval.c <specpdl_size, lisp_eval_depth>: Declare EMACS_INT.
+ (call_debugger): Use EMACS_INT for specpdl_size related variables.
+ (verror): Use EMACS_INT for size of allocated buffer.
+
+ * keyboard.c (make_lispy_position): Use EMACS_INT for buffer
+ positions.
+
+ * xdisp.c (redisplay_internal, try_window_id)
+ (set_cursor_from_row, find_first_unchanged_at_end_row):
+ Use EMACS_INT for buffer positions.
+
+ * dispextern.h (set_cursor_from_row): Adjust prototype.
+
+ * dispnew.c (increment_matrix_positions)
+ (increment_row_positions, copy_glyph_row_contents)
+ (mode_line_string, marginal_area_string): Use EMACS_INT for buffer
+ positions.
+
+ * dispextern.h (mode_line_string, marginal_area_string)
+ (increment_matrix_positions, increment_row_positions):
+ Adjust prototypes.
+
+ * data.c (Faref, Faset): Use EMACS_INT for string length and
+ positions.
+
+ * cmds.c (internal_self_insert): Use EMACS_INT for the count of
+ characters to insert.
+
+ * ccl.c (Fccl_execute_on_string): Use EMACS_INT for string
+ position and size.
+
+ * syntax.c (scan_words, update_syntax_table)
+ (prev_char_comend_first, back_comment, skip_chars)
+ (skip_syntaxes, Fforward_comment, Fbackward_prefix_chars):
+ Use EMACS_INT for buffer and string positions.
+
+ * syntax.h (scan_words, update_syntax_table): Adjust prototypes.
+
+ * casefiddle.c (operate_on_word): Use EMACS_INT for buffer
+ positions.
+
+2010-09-24 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * scroll.c (calculate_scrolling, line_ins_del)
+ (calculate_direct_scrolling, scroll_cost): Fix EMACS_INT/int
+ conversion.
+
+ * region-cache.c (move_cache_gap, set_cache_region, pp_cache)
+ (region_cache_backward, region_cache_forward)
+ (revalidate_region_cache, set_cache_region): FIX EMACS_INT/int
+ conversion.
+
+ * xdisp.c (message_dolog): Fix EMACS_INT/int conversion.
+
+ * eval.c (verror): Fix EMACS_INT/int conversion.
+
+ * print.c (PRINTDECLARE, PRINTPREPARE, strout, print_string)
+ (print_preprocess, print_check_string_charset_prop)
+ (print_object): Fix EMACS_INT/int conversion.
+
+ * xdisp.c (message_dolog): Fix EMACS_INT/int conversion.
+
+2010-09-24 Eli Zaretskii <eliz@gnu.org>
+
+ * callproc.c (Fcall_process): Use EMACS_INT for count of
+ characters read from the subprocess.
+
+ * bidi.c (struct bidi_paragraph_info): Use EMACS_INT for buffer
+ positions.
+ (bidi_cache_search, bidi_cache_find): Use EMACS_INT for buffer
+ positions.
+
+ * buffer.c (struct sortvec): Use EMACS_INT for buffer positions.
+ (struct sortstrlist, overlay_str_len): Use EMACS_INT for string
+ length.
+ (advance_to_char_boundary, Fset_buffer_multibyte)
+ (overlays_at, overlays_in, mouse_face_overlay_overlaps)
+ (overlay_touches_p, record_overlay_string, overlay_strings)
+ (recenter_overlay_lists, fix_start_end_in_overlays)
+ (modify_overlay, Fmove_overlay, report_overlay_modification)
+ (evaporate_overlays): Use EMACS_INT for buffer positions.
+
+ * lisp.h (fix_start_end_in_overlays, overlay_touches_p):
+ Adjust prototypes.
+
+ * dispextern.h (struct bidi_saved_info): Use EMACS_INT for buffer
+ positions.
+
+ * fns.c (Fcompare_strings, Fstring_lessp, concat)
+ (string_make_unibyte, Fstring_as_unibyte, Fsubstring)
+ (Fsubstring_no_properties, substring_both, Ffillarray)
+ (Fclear_string, mapcar1, Fmapconcat, Fmapcar, Fmapc)
+ (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
+ (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
+ (Fmd5): Use EMACS_INT for buffer and string positions and length
+ variables and arguments.
+
+ * lisp.h (substring_both): Adjust prototype.
+
+2010-09-24 Juanma Barranquero <lekktu@gmail.com>
+
+ Remove W32 API function pointer unused since 2005-02-15 (revno 2005-02-15T23:19:26Z!jasonr@gnu.org).
+ * w32fns.c (clipboard_sequence_fn): Don't declare.
+ (globals_of_w32fns): Don't initialize it.
+
+2010-09-23 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * syntax.c (back_comment): Detect the case where a 1-char comment
+ starter is also the 2nd char of a 2-char comment ender.
+
+2010-09-23 Jan Djärv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (xg_tool_bar_menu_proxy): Set gtk-menu-items to TRUE.
+
+2010-09-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * eval.c (verror): EMACS_INT/int cleanup.
+
+ * lisp.h (SPECPDL_INDEX): Cast to int, since we're not going to
+ unwind_protect more than 2GB worth of functions.
+
+ * editfns.c (Finsert_char): EMACS_INT/int cleanup.
+
+ * lisp.h: Have oblookup take EMACS_INT to allow interning big
+ string and avoid compiler warnings.
+ (USE_SAFE_ALLOCA): Cast to int to avoid compilation warnings in
+ all users.
+
+ * lread.c (oblookup): EMACS_INT/int cleanup.
+
+ * cmds.c (Fforward_line, Fdelete_char): EMACS_INT/int cleanup.
+
+2010-09-23 Eli Zaretskii <eliz@gnu.org>
+
+ * editfns.c (clip_to_bounds): Return an EMACS_INT value.
+
+ * lisp.h (clip_to_bounds): Adjust prototype.
+
+ * intervals.c (adjust_for_invis_intang): Return EMACS_INT value.
+
+2010-09-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * lisp.h: doprnt.c EMACS_INT/int cleanup.
+
+ * doprnt.c (doprnt): EMACS_INT/int cleanup.
+
+ * doc.c (Fsnarf_documentation, get_doc_string): EMACS_INT/int
+ cleanup.
+
+ * lisp.h: Change the definition of all marker.c functions that
+ take and return buffer stuff to be EMACS_INT instead of int.
+
+ * marker.c (buf_charpos_to_bytepos, CONSIDER, set_marker_both)
+ (buf_charpos_to_bytepos, bytepos_to_charpos)
+ (buf_bytepos_to_charpos, Fbuffer_has_markers_at)
+ (set_marker_restricted, set_marker_both): Convert int to EMACS_INT
+ for all buffer positions.
+
+2010-09-23 Chong Yidong <cyd@stupidchicken.com>
+
+ * intervals.c (traverse_intervals, rotate_right, rotate_left)
+ (split_interval_right, find_interval, next_interval)
+ (delete_node, delete_interval, interval_deletion_adjustment)
+ (adjust_intervals_for_deletion, merge_interval_right)
+ (merge_interval_left, graft_intervals_into_buffer)
+ (copy_intervals): Convert EMACS_UINTs to EMACS_INT.
+
+ * intervals.h (traverse_intervals): Update prototype.
+
+2010-09-23 Eli Zaretskii <eliz@gnu.org>
+
+ * indent.c (compute_motion): Use EMACS_INT for arguments to
+ region_cache_forward.
+
+ * region-cache.c (struct boundary, struct region_cache):
+ Use EMACS_INT for positions.
+ (find_cache_boundary, move_cache_gap, insert_cache_boundary)
+ (delete_cache_boundaries, set_cache_region)
+ (invalidate_region_cache, know_region_cache)
+ (region_cache_forward, region_cache_backward, pp_cache):
+ Use EMACS_INT for buffer positions.
+
+ * region-cache.h (know_region_cache, invalidate_region_cache)
+ (region_cache_forward, region_cache_backward): Adjust prototypes.
+
+ * search.c (string_match_1, fast_c_string_match_ignore_case)
+ (looking_at_1, scan_buffer, scan_newline)
+ (find_next_newline_no_quit, find_before_next_newline)
+ (search_command, trivial_regexp_p, search_buffer, simple_search)
+ (boyer_moore, wordify, Freplace_match): Use EMACS_INT for buffer
+ and string positions and length.
+
+ * lisp.h (scan_buffer, scan_newline, find_next_newline_no_quit)
+ (find_before_next_newline): Adjust prototypes.
+
+ * editfns.c (transpose_markers, update_buffer_properties)
+ (buildmark, clip_to_bounds, Fgoto_char, overlays_around)
+ (get_pos_property, Fconstrain_to_field)
+ (Fline_beginning_position, Fline_end_position, Fprevious_char)
+ (Fchar_after, Fchar_before, Finsert_char)
+ (Finsert_buffer_substring, Fcompare_buffer_substrings)
+ (Fsubst_char_in_region, Fformat, Ftranspose_regions):
+ Use EMACS_INT for buffer and string position variables.
+ (Finsert_char): Protect against too large insertions.
+
+ * lisp.h (clip_to_bounds): Adjust prototype.
+
+ * intervals.c (traverse_intervals, rotate_right, rotate_left)
+ (balance_an_interval, split_interval_right, split_interval_left)
+ (find_interval, next_interval, update_interval)
+ (adjust_intervals_for_insertion, delete_node, delete_interval)
+ (interval_deletion_adjustment, adjust_intervals_for_deletion)
+ (offset_intervals, merge_interval_right, merge_interval_left)
+ (graft_intervals_into_buffer, adjust_for_invis_intang)
+ (move_if_not_intangible, get_local_map, copy_intervals)
+ (copy_intervals_to_string, compare_string_intervals)
+ (set_intervals_multibyte_1): Use EMACS_INT for buffer positions
+ and for interval tree size.
+
+ * intervals.h (traverse_intervals, split_interval_right)
+ (split_interval_left, find_interval, offset_intervals)
+ (graft_intervals_into_buffer, copy_intervals)
+ (copy_intervals_to_string, move_if_not_intangible, get_local_map)
+ (update_interval): Adjust prototypes.
+
+ * xdisp.c (check_point_in_composition, reconsider_clip_changes):
+ Use EMACS_INT for buffer position variables and arguments.
+
+ * composite.c (get_composition_id, find_composition)
+ (run_composition_function, compose_text)
+ (composition_gstring_width, autocmp_chars)
+ (composition_update_it, Ffind_composition_internal): Use EMACS_INT
+ for buffer positions and string length variables and arguments.
+
+ * composite.h (get_composition_id, find_composition, compose_text)
+ (composition_gstring_width): Adjust prototypes.
+
+ * editfns.c (Fformat): Use EMACS_INT for string size variables.
+
+ * xdisp.c (store_mode_line_noprop, display_mode_element):
+ Use EMACS_INT for string positions.
+
+ * intervals.c (get_property_and_range): Use EMACS_INT for buffer
+ position arguments.
+
+ * intervals.h (get_property_and_range): Adjust prototype.
+
+ * character.c (parse_str_as_multibyte, str_as_multibyte)
+ (parse_str_to_multibyte, str_to_multibyte, str_as_unibyte)
+ (string_count_byte8, string_escape_byte8, c_string_width)
+ (strwidth, lisp_string_width, multibyte_chars_in_text):
+ Use EMACS_INT for string length variables and arguments.
+
+ * character.h (parse_str_as_multibyte, str_as_multibyte)
+ (parse_str_to_multibyte, str_to_multibyte, str_as_unibyte)
+ (c_string_width, strwidth, lisp_string_width):
+ Adjust prototypes.
+
+ * font.c (font_intern_prop): Use EMACS_INT for string length
+ variables.
+
+ * font.c (font_intern_prop): Use EMACS_INT for string length
+ variables.
+
+ * fns.c (Fstring_as_multibyte): Use EMACS_INT for string length
+ variables.
+
+ * alloc.c <total_string_size>: Declare as EMACS_INT, not int.
+ (Fmake_string): Protect against too large strings.
+ (live_string_p, live_cons_p, live_symbol_p, live_float_p)
+ (live_misc_p): Use ptrdiff_t instead of int for pointer
+ differences.
+ (string_bytes, check_sblock, check_string_free_list)
+ (allocate_string_data, compact_small_strings, Fmake_string)
+ (Fmake_bool_vector, make_string, make_unibyte_string)
+ (make_multibyte_string, make_string_from_bytes)
+ (make_specified_string_string, Fmake_list, Fmake_vector):
+ Use EMACS_INT for string length variables and arguments.
+ (find_string_data_in_pure, make_pure_string, make_pure_c_string)
+ (Fpurecopy): Use EMACS_INT for string size.
+ (mark_vectorlike, mark_char_table, mark_object): Use EMACS_UINT
+ for vector size.
+
+ * lisp.h (make_string, make_unibyte_string, make_multibyte_string)
+ (make_string_from_bytes, make_specified_string_string)
+ (make_pure_string, string_bytes, check_point_in_composition):
+ Adjust prototypes.
+
+2010-09-22 Eli Zaretskii <eliz@gnu.org>
+
+ * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
+ (check_translation): Use EMACS_INT for buffer positions and
+ length.
+
+ * undo.c (record_marker_adjustment, record_delete)
+ (record_change, record_point, record_insert)
+ (record_property_change, Fprimitive_undo): Use EMACS_INT for
+ buffer positions.
+
+ * lisp.h (record_marker_adjustment, record_delete)
+ (record_change, record_point, record_insert)
+ (record_property_change, Fprimitive_undo): Adjust prototypes.
+
+2010-09-22 Juanma Barranquero <lekktu@gmail.com>
+ Eli Zaretskii <eliz@gnu.org>
+
+ * w32.c (get_emacs_configuration_options): Fix buffer overrun.
+
+2010-09-22 Eli Zaretskii <eliz@gnu.org>
+
+ * minibuf.c (Fminibuffer_contents)
+ (Fminibuffer_contents_no_properties)
+ (Fminibuffer_completion_contents): Use EMACS_INT for minibuffer
+ positions.
+
+ * keyboard.c (command_loop_1): Use EMACS_INT to compare point with
+ mark.
+
+ * alloc.c (make_uninit_string, make_uninit_multibyte_string)
+ (allocate_string_data): Accept EMACS_INT for string length.
+
+ * editfns.c (Ffield_string, Ffield_string_no_properties)
+ (make_buffer_string, make_buffer_string_both, Fbuffer_substring)
+ (Fbuffer_substring_no_properties, find_field, Fdelete_field)
+ (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
+ (Ffield_end): Use EMACS_INT for buffer positions.
+
+ * insdel.c (prepare_to_modify_buffer): Use EMACS_INT to compare
+ point with mark.
+
+ * lisp.h (allocate_string_data, make_uninit_string)
+ (make_uninit_multibyte_string, make_buffer_string)
+ (make_buffer_string_both): Adjust prototypes.
+
+2010-09-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * xml.c: Switch to GNU indentation.
+ (make_dom): Change parse tree format to match xml.el.
+ (Fxml_parse_html_string_internal): Rename from html-parse-string.
+ (Fxml_parse_string_internal): Rename from xml-parse-string.
+
+2010-09-22 Kenichi Handa <handa@m17n.org>
+
+ * xdisp.c (compute_stop_pos): Call composition_compute_stop_pos
+ only if we are not at a composition.
+ (set_iterator_to_next): Give it->end_charpos to
+ composition_compute_stop_pos.
+ (set_iterator_to_next, next_element_from_buffer): Likewise.
+
+ * dispnew.c (buffer_posn_from_coords): Fix position when the
+ current display element is a grapheme cluster in bidi-reordered
+ region.
+
+2010-09-21 Ari Roponen <ari.roponen@gmail.com> (tiny change)
+
+ * doc.c (Fsnarf_documentation): Use memmove instead of memcpy as
+ the regions may overlap.
+
+2010-09-21 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
+
+2010-09-21 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * emacs.c: Do not include sys/ioctl.h, not needed.
+
+ * doprnt.c: Do not include stdlib.h, config.h does it.
+ Move #include before macro definition.
+
+2010-09-20 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * Makefile.in (temacs): Link using $(CC) not $(LD).
+ (LD_FIRSTFLAG): Define using autoconf.
+ (LD): Remove.
+
+ Remove HAVE_TERMIOS definitions.
+ * s/usg5-4-common.h (HAVE_TERMIOS):
+ * s/template.h (HAVE_TERMIOS):
+ * s/gnu-linux.h (HAVE_TERMIOS):
+ * s/darwin.h (HAVE_TERMIOS):
+ * s/cygwin.h (HAVE_TERMIOS):
+ * s/bsd-common.h (HAVE_TERMIOS):
+ * s/aix4-2.h (HAVE_TERMIOS):
+ * s/hpux10-20.h (HAVE_TERMIOS): Do not define, it is assumed
+ defined on all non-MS platforms.
+ (HAVE_PSTAT_GETDYNAMIC): Do not define, autoconf does it.
+
+ * xterm.c (xt_action_hook): Use const.
+
+2010-09-20 Juanma Barranquero <lekktu@gmail.com>
+
+ Don't make W32 code conditional on HAVE_SOCKETS, it's always defined.
+ * w32.c: Remove top-level uses of #ifdef HAVE_SOCKETS.
+ (gethostname) [!HAVE_SOCKETS]: Remove.
+ (SOCK_REPLACE_HANDLE): Remove macro.
+ (socket_to_fd, sys_close, _sys_read_ahead, sys_read, sys_write)
+ (term_ntproc, init_ntproc): Don't conditionalize on HAVE_SOCKETS.
+ * w32proc.c: Remove top-level uses of #ifdef HAVE_SOCKETS.
+ (syms_of_ntproc): Don't conditionalize on HAVE_SOCKETS.
+
+2010-09-18 Eli Zaretskii <eliz@gnu.org>
+
+ * deps.mk (xml.o): Add dependencies.
+
+ * xdisp.c (Fcurrent_bidi_paragraph_direction):
+ Call bidi_paragraph_init with NO_DEFAULT_P non-zero. (Bug#7038)
+
+ * bidi.c (bidi_paragraph_init): Accept an additional argument
+ NO_DEFAULT_P; all callers changed. If NO_DEFAULT_P is non-zero,
+ search back until a paragraph with a strong directional character
+ is found, and use that to determine paragraph's base direction.
+
+ * dispextern.h (bidi_paragraph_init): Update prototype.
+
+2010-09-17 Eli Zaretskii <eliz@gnu.org>
+
+ * w32.c (_PROCESS_MEMORY_COUNTERS_EX): Don't define with versions
+ of w32api >= 3.15. (Bug#6989)
+
+2010-09-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * process.c (wait_reading_process_output): Don't message about
+ accept-process-output unless the time limit really is zero.
+
+2010-09-17 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * frame.c (Ftool_bar_pixel_width): YAILOM (Yet another
+ int/Lisp_Object mixup).
+
+2010-09-17 Jan Djärv <jan.h.d@swipnet.se>
+
+ * keyboard.c (parse_tool_bar_item): For QClabel, set TOOL_BAR_ITEM_LABEL
+ not HELP.
+
+2010-09-17 Stephen Berman <stephen.berman@gmx.net>
+
+ * frame.c (Ftool_bar_pixel_width): New function to expose tool
+ bar's pixel width to Lisp (Bug#7048).
+
+2010-09-14 Juanma Barranquero <lekktu@gmail.com>
+
+ * cmds.c (syms_of_cmds) <post-self-insert-hook>: Fix typos in docstring.
+
+2010-09-17 Jan Djärv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (xg_pack_tool_bar): Call gtk_handle_box_set_handle_position
+ with argument top/left if tool bar is vertical/horizontal (Bug#7051).
+
+2010-09-17 Kenichi Handa <handa@m17n.org>
+
+ * ftfont.c (ftfont_check_otf): Fix previous change.
+
+2010-09-14 Kenichi Handa <handa@m17n.org>
+
+ * ftfont.c (ftfont_check_otf): Fix the case of checking just
+ existence of GSUB or GPOS.
+
+2010-09-14 Juanma Barranquero <lekktu@gmail.com>
+
+ * cmds.c (syms_of_cmds) <post-self-insert-hook>: Fix typos in docstring.
+
+2010-09-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * xml.c (parse_buffer): Rename to parse_string(), since that's
+ what it does.
+ (parse_string): Return nil when the document can't be parsed.
+
+2010-09-14 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (get_current_vm_state): New function.
+ (do_ewmh_fullscreen): Call get_current_vm_state and compare with
+ want_fullscreen so set_wm_state calls are few (Bug#7013).
+ (x_handle_net_wm_state): Move code to get_current_vm_state and
+ call that function.
+
+2010-09-14 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
+
+ * term.c (tty_set_terminal_modes): Don't initialize twice (bug#7002).
+
+2010-09-14 Kenichi Handa <handa@m17n.org>
+
+ * coding.c (encode_coding_iso_2022): Don't optimize for ASCII if
+ we may use designation or locking-shift.
+
+2010-09-14 Kenichi Handa <handa@m17n.org>
+
+ * coding.c (detect_coding_emacs_mule): Fix checking of multibyte
+ sequence when the source is multibyte.
+
+2010-09-14 Andreas Schwab <schwab@linux-m68k.org>
+
+ * xml.c (Fxml_parse_string, Fxml_parse_string): Revert last change.
+ Don't make first argument optional. Doc fix.
+
+2010-09-14 Leo <sdl.web@gmail.com> (tiny change)
+
+ * xml.c (Fxml_parse_string, Fhtml_parse_string): Fix up the
+ parameters for the doc string.
+
+2010-09-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * xml.c (Fhtml_parse_string, Fxml_parse_string): Mention BASE-URL.
+
+2010-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * fns.c (Fy_or_n_p): Move to lisp/subr.el.
+ (syms_of_fns): Don't defsubr Sy_or_n_p.
+ * lisp.h: Don't declare Fy_or_n_p.
+ * fileio.c (barf_or_query_if_file_exists): Fy_or_n_p -> y-or-n-p.
+
+2010-09-09 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * xml.c (Fxml_parse_buffer): New function to parse XML files.
+
+2010-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * xml.c: New file.
+ (Fhtml_parse_buffer): New function to interface to the libxml2
+ html parsing function.
+
+2010-09-05 Juanma Barranquero <lekktu@gmail.com>
+
+ * biditype.h: Regenerate.
+
+2010-09-04 Andreas Schwab <schwab@linux-m68k.org>
+
+ * nsimage.m (ns_load_image): Check argument types.
+
+ * image.c: Remove all uses of gcpro.
+ (xpm_load): Check all lisp types.
+ (pbm_load): Likewise.
+ (png_load): Likewise.
+ (jpeg_load): Likewise.
+ (tiff_load): Likewise.
+ (gif_load): Likewise.
+ (imagemagick_load_image): Likewise.
+ (imagemagick_load): Likewise.
+ (svg_load): Likewise.
+ (gs_load): Likewise.
+
+2010-09-04 Eli Zaretskii <eliz@gnu.org>
+
+ * w32uniscribe.c (uniscribe_shape): Update commentary.
+ Don't try to reorder grapheme clusters, since LGSTRING should always
+ hold them in the logical order.
+ (uniscribe_encode_char, uniscribe_shape): Force ScriptShape to
+ return glyph codes in the logical order.
+
+2010-09-04 Andreas Schwab <schwab@linux-m68k.org>
+
+ * image.c (imagemagick_image_p): Replace bcopy by memcpy.
+ (imagemagick_load_image): Fix type mismatch.
+ (Fimagemagick_types): Likewise. Doc fix.
+
+2010-09-02 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.h (struct dpyinfo): Remove cut_buffers_initialized.
+
+ * xterm.c (x_term_init): Don't set dpyinfo->cut_buffers_initialized.
+
+ * xselect.c: Remove declaration of cut-buffer objects and functions.
+ (symbol_to_x_atom): Remove mapping to XA_CUT_BUFFERn.
+ (x_atom_to_symbol): Remove mapping to QCUT_BUFFERn.
+ (Fx_get_cut_buffer_internal, Fx_store_cut_buffer_internal)
+ (Fx_rotate_cut_buffers_internal): Remove.
+ (syms_of_xselect): Remove defsubr of above.
+ Remove intern of QCUT_BUFFERn.
+
+2010-09-01 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * cmds.c (Vblink_paren_function): Remove.
+ (internal_self_insert): Make it insert N chars at a time.
+ Don't call blink-paren-function.
+ (Fself_insert_command): Adjust accordingly.
+ (syms_of_cmds): Don't declare blink-paren-function.
+
+2010-08-31 Kenichi Handa <handa@m17n.org>
+
+ * dispextern.h (FACE_FOR_CHAR): Use an ASCII face for 8-bit
+ characters.
+
+ * term.c (encode_terminal_code): Fix the previous change.
+ (produce_glyphs): Don't set it->char_to_display here.
+ Don't handle unibyte-display-via-language-environment here.
+ (produce_special_glyphs): Set temp_it.char_to_display before
+ calling produce_glyphs.
+
+ * xdisp.c (get_next_display_element): Set it->char_to_display
+ here. Convert all 8-bit bytes from unibyte buffer/string to 8-bit
+ characters.
+ (get_overlay_arrow_glyph_row): Set it.char_to_display too before
+ calling PRODUCE_GLYPHS.
+ (append_space_for_newline): Save and store it->char_to_display.
+ Set it->char_to_display before calling PRODUCE_GLYPHS.
+ (extend_face_to_end_of_line): Set it->char_to_display before
+ calling PRODUCE_GLYPHS.
+ (get_glyph_face_and_encoding): Set the glyph code an 8-bit
+ character to its byte value.
+ (get_char_glyph_code): New function.
+ (produce_stretch_glyph): Set it2.char_to_display too before
+ calling x_produce_glyphs.
+ (x_produce_glyphs): Simplify by using the same code for ASCII and
+ non-ASCII characters. Don't set it->char_to_display here.
+ Don't handle unibyte-display-via-language-environment here. For a
+ character of no glyph, use font->space_width instead of FONT_WIDTH.
+
+2010-08-31 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keyboard.c (Fwindow_system): Fix compilation for USE_LISP_UNION_TYPE.
+
+2010-08-31 Chong Yidong <cyd@stupidchicken.com>
+
+ * keyboard.c (command_loop_1): Don't call x-set-selection on tty.
+
+2010-08-30 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * marker.c (Fcopy_marker): Make the first arg optional.
+
+2010-08-30 Kenichi Handa <handa@m17n.org>
+
+ * composite.c (composition_update_it): Fix computing of
+ cmp_it->width.
+
+2010-08-29 Kenichi Handa <handa@m17n.org>
+
+ * term.c (encode_terminal_code): Encode byte chars to the
+ corresponding bytes.
+
+2010-08-29 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_draw_window_cursor): Draw BAR_CURSOR correct for R2L.
+
+2010-08-26 Kenichi Handa <handa@m17n.org>
+
+ * xdisp.c (compute_stop_pos): Pay attention to bidi scan direction
+ on calling composition_compute_stop_pos.
+
+2010-08-25 Kenichi Handa <handa@m17n.org>
+
+ * fontset.c (reorder_font_vector): Prefer a font-spec specifying
+ :otf.
+
+ * composite.c (composition_compute_stop_pos): Don't break
+ composition at PT.
+ (composition_reseat_it): Likewise. Fix calculation of character
+ position starting a composition.
+ (Fcomposition_get_gstring): Don't limit the number of components
+ for automatic composition.
+
+2010-08-25 Kenichi Handa <handa@m17n.org>
+
+ * composite.c (composition_compute_stop_pos): In forward search,
+ pay attention to the possibility that some character after ENDPOS
+ will be composed with charactrs before ENDPOS.
+
+2010-08-24 Chong Yidong <cyd@stupidchicken.com>
+
+ * keyboard.c (command_loop_1): Don't clobber primary selection
+ during handle-switch-frame (Bug#6872).
+
+2010-08-23 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbusbind.c: Accept UNIX domain sockets as bus address.
+ (Fdbus_close_bus): New function.
+ (Vdbus_registered_buses): New variable.
+ (xd_initialize): Implement string as bus address.
+ (Fdbus_init_bus): Add bus to Vdbus_registered_buses).
+ (Fdbus_get_unique_name, Fdbus_call_method)
+ (Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
+ (Fdbus_method_error_internal, Fdbus_send_signal)
+ (Fdbus_register_signal, Fdbus_register_method): Remove bus type
+ check. This is done in xd_initialize_bus. Adapt doc string, if
+ necessary.
+ (xd_pending_messages, xd_read_queued_messages): Loop over buses in
+ Vdbus_registered_buses.
+ (Vdbus_registered_objects_table): Create hash.
+
+2010-08-22 Juri Linkov <juri@jurta.org>
+
+ * keyboard.c (Fexecute_extended_command): Move reading a command name
+ with `completing-read' to a new Elisp function `read-extended-command'.
+ Call it to read a command to `function' (bug#5364, bug#5214).
+
+2010-08-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * emacs.c (main): Remove handling of --unibyte arg (Bug#6886).
+
+2010-08-22 Andreas Schwab <schwab@linux-m68k.org>
+
+ * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA_LISP
+ instead of SAFE_ALLOCA.
+
+2010-08-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA
+ (Bug#6214).
+
+2010-08-22 Jan Djärv <jan.h.d@swipnet.se>
+
+ * doc.c (Fsnarf_documentation): Set skip_file only if p[1] is S.
+
+2010-08-22 Jan Djärv <jan.h.d@swipnet.se>
+
+ * doc.c (Fsnarf_documentation): Initialize skip_file before
+ build-files test.
+
+2010-08-22 Peter O'Gorman <pogma@thewrittenword.com> (tiny change)
+
+ * s/hpux10-20.h (HAVE_TERMIOS, NO_TERMIO, ORDINARY_LINK):
+ New definitions.
+ (HAVE_TERMIO): Remove.
+
+2010-08-22 Eli Zaretskii <eliz@gnu.org>
+
+ * deps.mk (sysdep.o, msdos.o): Depend on sysselect.h.
+
+ * sysselect.h [WINDOWSNT]: Don't define the FD_* and select stuff
+ for w32.
+
+ * s/ms-w32.h (HAVE_SYS_TIMEB_H): Don't #undef HAVE_SYS_SELECT_H,
+ it's done in nt/config.nt.
+
+ * makefile.w32-in ($(BLD)/sysdep.$(O)): Depend on sysselect.h.
+
+ * unexcoff.c (report_error, make_hdr, write_segment)
+ (copy_text_and_data, copy_sym, mark_x, adjust_lnnoptrs, unexec):
+ Convert argument lists and prototypes to ANSI C.
+ (make_hdr, write_segment): Remove unused variables.
+ (unexec): Remove commented-out line. Initialize `new' to shut up
+ compiler warnings.
+
+2010-08-22 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Simplify termio code.
+ All non-MSDOS non-WINDOWSNT platforms define HAVE_TERMIOS, so
+ HAVE_TERMIO code is obsolete.
+ Replace HAVE_TERMIOS conditionals with !DOS_NT.
+ * systty.h: Do not define HAVE_TCATTR.
+ Remove HAVE_TERMIO, HAVE_LTCHARS and HAVE_TCHARS code.
+ Do not define EMACS_HAVE_TTY_PGRP. Only define
+ EMACS_GET_TTY_PGRP for !DOS_NT.
+ * sysdep.c: Include sysselect.h unconditionally. Do not include
+ sys/ioctl.h and termios.h, systty.h does it.
+ Use HAVE_SYS_UTSNAME_H instead of USG as an include guard.
+ (init_baud_rate): Remove HAVE_TERMIO code.
+ (child_setup_tty): Remove HAVE_TERMIO code.
+ (emacs_get_tty, emacs_set_tty): Remove HAVE_TERMIO, HAVE_TCHARS
+ and HAVE_LTCHARS code. Use !DOS_NT instead of HAVE_TCATTR.
+ (new_ltchars, new_tchars): Remove, unused.
+ (init_sys_modes): Remove HAVE_TERMIO, HAVE_TCHARS and HAVE_LTCHARS
+ code. Remove special casing for __mips__, it was a no-op.
+ Remove HAVE_TCATTR conditional, it is implied by HAVE_TERMIOS.
+ (init_sys_modes): Remove HPUX special case.
+ * process.c: Include stdlib.h unconditionally. Do not include
+ fcntl.h, systty.h does it. Remove conditional code for
+ HAVE_SERIAL, it is always true.
+ (process_send_signal): Remove HAVE_TERMIOS conditional, it's
+ always true when SIGNALS_VIA_CHARACTERS is true.
+ (Fcontinue_process, Fprocess_send_eof): Simplify conditionals:
+ !WINDOWSNT means HAVE_TERMIOS.
+ (create_process): Remove HAVE_TERMIOS, it's inside a HAVE_PTYS
+ conditional, which is true for all HAVE_TERMIOS systems.
+ * keyboard.c (init_keyboard): Do not use HAVE_TERMIO, use !DOS_NT
+ instead of HAVE_TERMIOS.
+ * emacs.c (shut_down_emacs): Use !defined DOS_NT instead of
+ EMACS_HAVE_TTY_PGRP.
+ * callproc.c (child_setup): Move EMACS_SET_TTY_PGRP use to the
+ non-MSDOS, non-WINDOWSNT code, it's only defined for such systems
+ anyway.
+
+2010-08-21 Eli Zaretskii <eliz@gnu.org>
+
+ * dispnew.c (buffer_posn_from_coords): Fix off-by-one error in
+ mirroring pixel positions.
+
+2010-08-20 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * alloc.c (malloc_sbrk_used, malloc_sbrk_unused): Remove,
+ write only.
+ (init_alloc_once): Remove writes to malloc_sbrk_unused, and
+ malloc_sbrk_used, nothing uses them.
+
+ * puresize.h: Remove code assuming PNTR_COMPARISON_TYPE is not
+ defined, unconditionally defined in lisp.h.
+
+ * term.c: Do not include <termios.h>, systty.h does it.
+
+ * s/unixware.h (HAVE_TCATTR):
+ * s/aix4-2.h (HAVE_TCATTR): Remove definitions, not needed.
+ systty.h defines it when HAVE_TERMIOS is defined.
+
+2010-08-20 Eli Zaretskii <eliz@gnu.org>
+
+ * dispnew.c (buffer_posn_from_coords): Fix last change for text
+ terminals: add one-character offset for R2L lines.
+
+ * emacs.c <emacs_version>: Add a comment regarding
+ msdos/mainmake.v2's dependency on the syntax of this declaration.
+
+2010-08-20 Eli Zaretskii <eliz@gnu.org>
+
+ * dispnew.c (buffer_posn_from_coords): Fix calculation of buffer
+ position for R2L lines by mirroring the pixel position wrt the
+ text are box. Improve commentary.
+
+2010-08-20 Andreas Schwab <schwab@linux-m68k.org>
+
+ * image.c (imagemagick_clear_image): Remove debugging output.
+
+2010-08-19 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * cmds.c (Vself_insert_face, Vself_insert_face_command): Remove.
+ (Qpost_self_insert_hook, Vpost_self_insert_hook): New vars.
+ (internal_self_insert): Run Qpost_self_insert_hook rather than handle
+ self-insert-face.
+ (syms_of_cmds): Initialize the new vars.
+
+2010-08-19 Jason Rumney <jasonr@gnu.org>
+
+ * w32menu.c (set_frame_menubar): Remove call to undefined function.
+
+ * w32fns.c (w32_wnd_proc): Don't check context before initializing.
+
+2010-08-19 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsselect.m (nxatoms_of_nsselect): Use "Selection" and "Secondary".
+
+2010-08-18 Eli Zaretskii <eliz@gnu.org>
+
+ * xterm.c (x_draw_bar_cursor):
+ * w32term.c (x_draw_bar_cursor): If the character under cursor is
+ R2L, draw the bar cursor on its right rather than on its left.
+
+2010-08-18 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (Fdefmacro): Only obey one declaration.
+
+ * casefiddle.c (casify_region): Setup gl_state.
+
+2010-08-18 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_define_frame_cursor): Call x_update_cursor (Bug#6868).
+
+2010-08-18 Jan Djärv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (update_frame_tool_bar): Literal strings are const char*.
+
+2010-08-18 David De La Harpe Golden <david@harpegolden.net>
+
+ * nsselect.m (QCLIPBOARD, NXPrimaryPboard): Define.
+ (symbol_to_nsstring): Map QCLIPBOARD => NSGeneralPboard,
+ QPRIMARY => NXPrimaryPboard.
+ (ns_string_to_symbol): NSGeneralPboard => QCLIPBOARD,
+ NXPrimaryPboard => QPRIMARY.
+ (nxatoms_of_nsselect): NXPrimaryPboard = PrimarySelection,
+ NXSecondaryPboard = SecondarySelection.
+ (syms_of_nsselect): Intern QCLIPBOARD (Bug#6677).
+
+2010-08-18 Joakim Verona <joakim@verona.se>
+
+ * image.c: Add support for ImageMagick. When HAVE_IMAGEMAGICK is
+ defined:
+ (imagemagick_image_p): New function to test for ImageMagic image.
+ (imagemagick_load): New function to load ImageMagick image.
+ (imagemagick_load_image): New function, helper for imagemagick_load.
+ (imagemagick-types): New function.
+ (Qimagemagick): New Lisp_object.
+ (imagemagick-render-type): New variable, decides which renderer to use.
+
+2010-08-17 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * gtkutil.c (update_frame_tool_bar): Don't assume TOOL_BAR_ITEM_LABEL
+ is a string.
+
+2010-08-17 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsfns.m (ns_frame_parm_handlers): Add a slot for the
+ x_set_tool_bar_position handler.
+
+2010-08-17 Eli Zaretskii <eliz@gnu.org>
+
+ * w32fns.c <w32_frame_parm_handlers>: Add a slot for the
+ x_set_tool_bar_position handler, needed to support changes from
+ 2010-07-29T16:49:59Z!jan.h.d@swipnet.se for positioning the tool bar. (Bug#6796)
+
+2010-08-16 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsselect.m: include keyboard.h for QPRIMARY, remove its
+ declaration (Bug#6863).
+ (syms_of_nsselect): Don't intern QPRIMARY.
+
+ * xselect.c: Remove declaration of QPRIMARY (Bug#6864).
+
+ * keyboard.h (QPRIMARY): Declare (Bug#6864).
+
+2010-08-16 Chong Yidong <cyd@stupidchicken.com>
+
+ * keyboard.c (command_loop_1): Avoid setting selection twice,
+ since it's done in deactivate-mark as well.
+ (Vselect_active_regions): Change default to t. Replace `lazy'
+ with non-default value `only', meaning only set PRIMARY for
+ temporarily active regions.
+
+ * insdel.c (prepare_to_modify_buffer): Handle `only' value of
+ select-active-regions.
+
+2010-08-15 Jan Djärv <jan.h.d@swipnet.se>
+
+ * keyboard.c (parse_tool_bar_item): Put in a bad label if :label
+ isn't a string.
+
+2010-08-15 Andreas Schwab <schwab@linux-m68k.org>
+
+ * keyboard.c (parse_tool_bar_item): Avoid excessive use of strlen.
+
+2010-08-15 Jan Djärv <jan.h.d@swipnet.se>
+
+ * keyboard.c (parse_tool_bar_item): malloc buf.
+ Set TOOL_BAR_ITEM_LABEL to empty string if not set to
+ new_lbl (Bug#6855).
+
+2010-08-14 Eli Zaretskii <eliz@gnu.org>
+
+ * xterm.c (x_draw_stretch_glyph_string):
+ * w32term.c (x_draw_stretch_glyph_string): In R2L rows, display
+ the cursor on the right edge of the stretch glyph.
+
+ * xdisp.c (window_box_right_offset, window_box_right):
+ Fix commentary.
+
+ * xdisp.c (Fcurrent_bidi_paragraph_direction): Fix paragraph
+ direction when point is inside a run of whitespace characters.
+
+ * bidi.c (bidi_at_paragraph_end): Remove obsolete comment.
+
+2010-08-14 Jason Rumney <jasonr@gnu.org>
+
+ * keyboard.c (lispy_function_keys): Do not define VK_PACKET (bug#4836)
+
+2010-08-14 Chong Yidong <cyd@stupidchicken.com>
+
+ * fns.c (Fmake_hash_table): Doc fix (Bug#6851).
+
+2010-08-13 Jason Rumney <jasonr@gnu.org>
+
+ * w32menu.c (simple_dialog_show): Use unicode message box if available.
+ (MessageBoxW_Proc): New function typedef.
+ (unicode-message-box): New function pointer.
+ (globals_of_w32menu): Import it from user32.dll. (Bug#5629)
+
+2010-08-13 Jan Djärv <jan.h.d@swipnet.se>
+
+ * frame.h (Qtool_bar_position): Declare.
+
+ * xfns.c (Fx_create_frame): Call x_default_parameter for
+ Qtool_bar_position.
+
+2010-08-13 Eli Zaretskii <eliz@gnu.org>
+
+ * unexcoff.c: Remove the parts used when "emacs" is not defined.
+ (report_error, report_error_1): Ditto.
+ (write_segment): Remove "#if 0" unused code.
+ (make_hdr): Remove code that was "#ifndef NO_REMAP" before
+ NO_REMAP was removed (in 2010-07-29T03:25:08Z!dann@ics.uci.edu).
+ (start_of_text): Remove unused function (was used only if NO_REMAP
+ was NOT defined).
+
+ * msdos.c (IT_set_face): Fix format string to match argument
+ types.
+ (IT_write_glyphs, IT_note_mode_line_highlight)
+ (IT_set_frame_parameters): Remove unused variables.
+ (x_set_menu_bar_lines): Declare set_menu_bar_lines.
+ (IT_set_terminal_modes): Disambiguate expression in if clause.
+ (Fmsdos_remember_default_colors): Return Qnil.
+ (IT_set_frame_parameters): Add parens to disambiguate boolean
+ expression for logging the cursor type to termscript.
+ (keyboard_layout_list, keypad_translate_map)
+ (grey_key_translate_map): Add braces in inner initializers.
+ (dos_rawgetc): Add parens in condition for mouse-3 button-press.
+ (dos_rawgetc): Remove unused label.
+ (XMenuActivate): Add braces to remove ambiguous `else'.
+ (dos_ttraw): Always return a value.
+ (spawnve): Declare.
+ (run_msdos_command): Cast 3rd arg of spawnve to "char **".
+
+ * dosfns.h (x_set_title): Declare.
+
+ * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
+ Remove unused variables.
+
+ * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Remove unused
+ variables.
+ (init_dosfns): Declare get_lim_data.
+ (system_process_attributes): Declare Fget_internal_run_time.
+
+ * xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Fix argument
+ list to be consistent with menu.h.
+
+ * w32menu.c (add_menu_item, name_is_separator): Shut up compiler
+ warnings due to mixing of "char *" and "const char *".
+
+2010-08-12 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ Introduce a new comment style "c" flag.
+ * syntax.c (SYNTAX_FLAGS_COMMENT_STYLEB)
+ (SYNTAX_FLAGS_COMMENT_STYLEC): New macros.
+ (SYNTAX_FLAGS_COMMENT_STYLE): Use them, add an argument.
+ (syntax_prefix_flag_p): New function.
+ (Fstring_to_syntax): Understand new "c" flag.
+ (Finternal_describe_syntax_value): Recognize new flag; use the
+ SYNTAX_FLAGS_* macros.
+ (scan_sexps_forward, Fparse_partial_sexp): Change representation of
+ comment style to accomodate the new styles.
+ (back_comment, forw_comment, Fforward_comment, scan_lists)
+ (scan_sexps_forward): Update code to obey the new comment style flag.
+
+ * syntax.h: Move SYNTAX_FLAGS_FOO() macros to syntax.c.
+
+ * casefiddle.c (casify_region): Use the new syntax_prefix_flag_p.
+
+2010-08-11 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xfns.c (x_defined_color): If USE_GTK, call xg_check_special_colors
+ first.
+ (Fx_hide_tip): Check FRAME_LIVE_P (f) before calling xg_hide_tooltip.
+
+ * gtkutil.h (xg_check_special_colors): Declare.
+
+ * gtkutil.c (xg_check_special_colors, style_changed_cb): New functions.
+ (xg_create_frame_widgets): Connect theme name changes to
+ style_changed_cb.
+
+ * xterm.c (emacs_class): New char[] for EMACS_CLASS.
+ (xim_open_dpy, xim_initialize, xim_close_dpy): Use emacs_class.
+ (x_term_init): Use char[] display_opt and name_opt instead of
+ string literal. file is const char*.
+
+ * xsmfns.c (NOSPLASH_OPT): Change to char[].
+ (smc_save_yourself_CB): Do xstrdup on all ->type and ->name for
+ props. Free them at the end.
+
+ * xselect.c (Fx_get_atom_name): Use char empty[] instead of literal "".
+
+ * xrdb.c (get_system_app): Make path const and use char *p for
+ non-const char.
+
+ * xmenu.c (Fx_popup_dialog): error_name is const char*.
+ (xmenu_show): error parameter is const char **. pane_string is const
+ char *.
+ (button_names): Is const char *.
+ (xdialog_show): error_name and pane_string is const.
+
+ * process.h (synch_process_death): Is const char*.
+
+ * w32menu.c (w32_menu_show):
+ * nsmenu.m (ns_menu_show): error parameter is const char **.
+
+ * menu.h (w32_menu_show, ns_menu_show, xmenu_show): error parameter
+ is const char **.
+
+ * menu.c (Fx_popup_menu): error_name is const.
+
+ * keyboard.h (_widget_value): Add defined USE_GTK. Replace Boolean
+ with unsigned char and XtPointer with void *.
+
+ * gtkutil.h: Replace widget_value with struct _widget_value.
+ (enum button_type, struct _widget_value): Remove and use the one from
+ keyboard.h.
+
+ * gtkutil.c (get_utf8_string): Always return an allocated string.
+ Parameter is const.
+ (create_dialog, xg_create_one_menuitem, create_menus)
+ (xg_item_label_same_p, xg_update_menu_item): Free result from
+ get_utf8_string.
+ (xg_separator_p, xg_item_label_same_p): label is const.
+
+ * font.h (font_open_by_name): Make name const.
+
+ * font.c (font_open_by_name): Make name const.
+
+ * floatfns.c (matherr): Use a const char* variable for x->name.
+
+ * emacs.c (main): Pass char[] to putenv instead of literal.
+
+ * callproc.c (synch_process_death): Make const.
+ (Fcall_process): Make signame const.
+
+ * nsterm.h (parseKeyEquiv, addSubmenuWithTitle)
+ (addDisplayItemWithImage): Use const char*.
+
+ * nsmenu.m (parseKeyEquiv, addSubmenuWithTitle)
+ (addDisplayItemWithImage, update_frame_tool_bar): Use const char*.
+
+ * nsfont.m (ns_descriptor_to_entity): Use const char*.
+
+ * keyboard.h (_widget_value): name, value and key are const char*.
+
+ * unexmacosx.c (unexec_error): Use const char *.
+
+2010-08-09 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * font.h (font_parse_xlfd, font_parse_fcname, font_unparse_fcname)
+ (font_parse_name, font_open_by_name):
+ * font.c (font_parse_xlfd, font_parse_fcname, font_unparse_fcname)
+ (font_parse_name, font_open_by_name): Remove const.
+
+2010-08-09 Andreas Schwab <schwab@linux-m68k.org>
+
+ Use autoconf determined WORDS_BIGENDIAN instead of hardcoded
+ definition.
+
+ * m/alpha.h: Don't define/undef WORDS_BIG_ENDIAN.
+ * m/amdx86-64.h: Likewise.
+ * m/arm.h: Likewise.
+ * m/hp800.h: Likewise.
+ * m/ia64.h: Likewise.
+ * m/ibmrs6000.h: Likewise.
+ * m/ibms390.h: Likewise.
+ * m/intel386.h: Likewise.
+ * m/iris4d.h: Likewise.
+ * m/m68k.h: Likewise.
+ * m/macppc.h: Likewise.
+ * m/mips.h: Likewise.
+ * m/sh3.h: Likewise.
+ * m/sparc.h: Likewise.
+ * m/template.h: Likewise.
+ * m/vax.h: Likewise.
+ * m/xtensa.h: Likewise.
+ * fringe.c (init_fringe_bitmap): Test WORDS_BIGENDIAN instead of
+ WORDS_BIG_ENDIAN.
+ * lisp.h: Likewise.
+ * md5.c: Likewise.
+ * sound.c (le2hl, le2hs, be2hl, be2hs): Likewise.
+
+2010-08-09 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Use const char* instead of char*.
+ Reduce the number of warnings with -Wwrite-strings.
+ * xrdb.c (get_environ_db, get_system_name):
+ * unexelf.c (find_section):
+ * term.c (string_cost, string_cost_one_line, per_line_cost)
+ (get_named_tty, init_tty):
+ * sysdep.c (sys_subshell):
+ * sound.c (sound_perror, sound_warning, vox_open, vox_init)
+ (alsa_sound_perror, alsa_open, alsa_configure, alsa_init):
+ * search.c (Freplace_match):
+ * process.c (Fmake_network_process, send_process, init_process):
+ * lread.c (Fload, init_lread):
+ * keymap.c (Fdescribe_buffer_bindings, describe_map_tree):
+ * keyboard.c (parse_tool_bar_item, struct event_head):
+ * gtkutil.h (xg_get_font_name):
+ * gtkutil.c (get_dialog_title, create_dialog, xg_get_font_name)
+ (make_widget_for_menu_item, make_menu_item, create_menus)
+ (xg_make_tool_item):
+ * font.c (parse_matrix, font_parse_name):
+ * floatfns.c (rounding_driver, float_error_fn_name):
+ * filelock.c (get_boot_time_1, lock_file_1):
+ * fileio.c (barf_or_query_if_file_exists, check_writable):
+ * editfns.c (get_system_name, get_operating_system_release)
+ (Fencode_time, Fset_time_zone_rule):
+ * dispextern.h (string_cost, per_line_cost, get_named_tty, init_tty):
+ * buffer.c (defvar_per_buffer): Use const.
+
+2010-08-08 Kenichi Handa <handa@m17n.org>
+
+ * charset.c: Include <stdlib.h>.
+ (struct charset_sort_data): New struct.
+ (charset_compare): New function.
+ (Fsort_charsets): New function.
+ (syms_of_charset): Declare Fsort_charsets as a Lisp function.
+
+ * coding.c (decode_coding_iso_2022): Fix checking of dimension
+ number in CTEXT extended segment.
+
+2010-08-08 Juanma Barranquero <lekktu@gmail.com>
+
+ * w32fns.c (syms_of_w32fns) <x-max-tooltip-size>: Fix typo in docstring.
+ * xfns.c (syms_of_xfns) <x-max-tooltip-size>: Reflow docstring.
+
+2010-08-08 Juanma Barranquero <lekktu@gmail.com>
+
+ * fns.c (Fsubstring_no_properties, Fnthcdr, Ffeaturep)
+ (Fhash_table_size): Fix typos in docstrings.
+ (Fmake_hash_table): Doc fix.
+
+2010-08-08 Juanma Barranquero <lekktu@gmail.com>
+
+ * minibuf.c (syms_of_minibuf) <read-buffer-function>:
+ Doc fix (bug#5625).
+
+2010-08-08 Ken Brown <kbrown@cornell.edu>
+
+ * dired.c (DIRENTRY_NONEMPTY) [cygwin]: Use d_ino instead of
+ the MSDOS definition.
+
+2010-08-08 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Use const char* instead of char*.
+ * xterm.c (x_create_toolkit_scroll_bar):
+ * xfont.c (xfont_list_pattern):
+ * xfns.c (x_default_scroll_bar_color_parameter)
+ (xic_create_fontsetname, x_default_font_parameter)
+ (x_screen_planes):
+ * xdisp.c (c_string_pos, number_of_chars, reseat_to_string)
+ (store_mode_line_string, decode_mode_spec, display_string):
+ * menu.c (digest_single_submenu):
+ * keymap.h (initial_define_key, initial_define_lispy_key):
+ * keymap.c (initial_define_key, initial_define_lispy_key):
+ * image.c (image_error, image_keyword):
+ * gtkutil.h (xg_create_widget, xg_create_scroll_bar):
+ * gtkutil.c (xg_create_widget, xg_create_scroll_bar):
+ * ftfont.c (struct fc_charset_table, ftfont_spec_pattern)
+ (ftfont_list, ftfont_match):
+ * frame.c (frame_parm_table):
+ * font.h (font_intern_prop, font_parse_xlfd, font_parse_fcname)
+ (font_unparse_fcname, font_unparse_fcname, font_open_by_name)
+ (font_add_log, font_deferred_log):
+ * font.c (font_intern_prop, font_parse_xlfd, font_parse_fcname)
+ (font_unparse_fcname, font_unparse_fcname, font_open_by_name)
+ (font_add_log, font_deferred_log):
+ * emacs.c (argmatch):
+ * dispextern.h (struct it):
+ * coding.c (ENCODE_DESIGNATION):
+ * charset.c (define_charset_internal): Use const.
+
+ * s/freebsd.h (DECLARE_GETPWUID_WITH_UID_T): Remove, unused.
+
+ * xrdb.c: Remove include guard.
+ Remove DECLARE_GETPWUID_WITH_UID_T conditional it had no effect.
+ Remove #if 0 code. Replace malloc->xmalloc, free->xfree,
+ realloc->xrealloc instead of using #defines.
+
+2010-08-08 Eli Zaretskii <eliz@gnu.org>
+
+ * cmds.c (Fforward_line, Fbeginning_of_line, Fend_of_line):
+ * editfns.c (Fline_beginning_position, Fline_end_position):
+ State in the doc strings that start and end of line are in the
+ logical order.
+
+ * xdisp.c (display_line): Move the handling of overlay arrow after
+ the call to find_row_edges. (Bug#6699)
+
+2010-08-07 Chong Yidong <cyd@stupidchicken.com>
+
+ * keyboard.c (command_loop_1):
+ * insdel.c (prepare_to_modify_buffer): Don't call validate_region.
+
+2010-08-07 Chong Yidong <cyd@stupidchicken.com>
+
+ * insdel.c (prepare_to_modify_buffer): Save active region text to
+ Vsaved_region_selection.
+
+ * xselect.c (QPRIMARY): Move to keyboard.c.
+
+ * keyboard.c (Vselect_active_regions): Move from simple.el.
+ (Vsaved_region_selection, Qx_set_selection, QPRIMARY, Qlazy): New vars.
+ (command_loop_1): Set window selection prior to deactivating the mark.
+
+2010-08-07 Juanma Barranquero <lekktu@gmail.com>
+
+ * alloc.c (lisp_malloc):
+ * buffer.c (set_buffer_internal, set_buffer_internal_1):
+ * charset.h (emacs_mule_charset):
+ * dispextern.h (inhibit_free_realized_faces, redraw_frame)
+ (redraw_garbaged_frames, scroll_cost, update_frame, scrolling)
+ (bitch_at_user):
+ * lisp.h (Fcheck_coding_system, Fget_text_property)
+ (Qfunction, Qcompletion_ignore_case, QCwidth, QCsize):
+ Remove duplicate declarations.
+
+2010-08-06 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * process.c: Simplify include logic.
+
+ * keyboard.h (quit_char): Add declaration.
+ * process.h (QCport, QCspeed, QCprocess, QCbytesize, QCstopbits)
+ (QCparity, Qodd, Qeven, QCflowcontrol, Qhw, Qsw, QCsummary):
+ Add declarations.
+ * sysdep.c:
+ * w32.c: Remove the above declarations.
+
+ Remove extern declarations in .c files, .h files have them.
+ * xterm.c:
+ * xdisp.c:
+ * msdos.c:
+ * image.c:
+ * gtkutil.c:
+ * fileio.c:
+ * eval.c: Remove declarations.
+
+ * frame.c (frame_params): Make const.
+
+ * lisp.h (fatal_error_signal, emacs_root_dir): Add declaration.
+
+ * emacs.c (emacs_copyright, emacs_version): Make static.
+ (Vinitial_window_system, Vauto_save_list_file_name)
+ (Vinhibit_redisplay): Remove declarations.
+ (main): Remove HAVE_SHM code, unused. Remove _I386 conditional
+ for AIX.
+
+ Use const for some arrays and functions.
+ * xterm.h (xg_set_icon_from_xpm_data):
+ * xfns.c (xg_set_icon_from_xpm_data):
+ * term.c (fkeys):
+ * keyboard.c (lispy_accent_keys, lispy_function_keys)
+ (lispy_multimedia_keys, lispy_kana_keys, iso_lispy_function_keys)
+ (lispy_drag_n_drop_names, scroll_bar_parts, modify_event_symbol)
+ (frame.c frame_parms):
+ * emacs-icon.h (gnu_xpm_bits):
+ * callint.c (callint_argfuns): Use const.
+
+2010-08-06 Jan Djärv <jan.h.d@swipnet.se>
+
+ * sysdep.c: Move include term.h last of includes (Bug#6812).
+
+2010-08-06 Eli Zaretskii <eliz@gnu.org>
+
+ * dispnew.c (realloc_glyph_pool): Zero out newly allocated glyphs.
+
+ * msdos.c (IT_display_cursor): Log cursor position on termscript.
+
+ * .gdbinit (pgx): Display the avoid_cursor_p flag.
+
+2010-08-06 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in ($(BLD)/xdisp.$(O)): Update dependencies.
+
+2010-08-06 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.h (x_get_focus_frame): Declare.
+
+ * keyboard.h (poll_for_input_1): Unconditionally declare.
+
+ * nsterm.h (x_set_menu_bar_lines): Declare.
+
+ * window.c: Don't include menu.h, it depends on lots of other .h-files.
+
+ * xfaces.c (x_create_gc, x_free_gc): Convert to ANSI C prototypes.
+
+ * window.c: Include menu.h.
+
+ * unexmacosx.c (print_region_list, print_regions)
+ (build_region_list, find_emacs_zone_regions)
+ (unexec_regions_merge, read_load_commands, dump_it)
+ (unexec_init_emacs_zone): Convert to ANSI C prototypes.
+
+ * term.c: Check HAVE_SYS_IOCTL_H.
+
+ * sysdep.c: Check HAVE_TERM_H.
+
+ * process.c: Check HAVE_UTIL_H. Include nsterm.h if HAVE_NS.
+
+ * nsterm.m (ns_init_paths, ns_alloc_autorelease_pool)
+ (ns_ring_bell, ns_defined_color, hide_hourglass)
+ (x_display_pixel_height, x_display_pixel_width, syms_of_nsterm):
+ Convert to ANSI C prototypes.
+ (x_set_window_size, ns_draw_fringe_bitmap, judge): Move declarations
+ before code.
+
+ * nsterm.h : Include sysselect.h.
+ (x_sync, x_get_focus_frame, x_set_mouse_position)
+ (x_set_mouse_pixel_position, x_make_frame_visible)
+ (x_make_frame_invisible, x_iconify_frame, x_char_width, x_char_height)
+ (x_pixel_width, x_pixel_height, x_set_frame_alpha, x_set_tool_bar_lines)
+ (x_activate_menubar, free_frame_menubar, ns_init_paths, ns_select)
+ (syms_of_nsterm, syms_of_nsfns, syms_of_nsmenu, syms_of_nsselect):
+ Declare.
+
+ * nsmenu.m (popup_activated, name_is_separator)
+ (syms_of_nsmenu): Convert to ANSI C prototypes.
+ (runMenuAt): Prototypes and move declarations before code.
+
+ * nsimage.m (ns_load_image): Move NSTRACE after declarations.
+
+ * nsfont.m (ns_fallback_entity, syms_of_nsfont): Convert to ANSI C
+ prototypes.
+
+ * nsfns.m (have_menus_p, ns_display_info_for_name)
+ (x_set_cursor_type, ns_appkit_version_str)
+ (ns_appkit_version_int, ns_do_applescript)
+ (x_set_scroll_bar_default_width, x_sync, compute_tip_xy)
+ (syms_of_nsfns): Convert to ANSI C prototypes.
+
+ * menu.h (x_set_menu_bar_line): Declare.
+ (free_menubar_widget_value_tree et.al): Add HAVE_NS for these functions.
+
+ * lisp.h (fmod_float): Declare.
+
+ * image.c (xpm_scan, xpm_make_color_table_v)
+ (xpm_put_color_table_v, xpm_get_color_table_v)
+ (xpm_make_color_table_h, xpm_put_color_table_h)
+ (xpm_get_color_table_h, xpm_str_to_color_key, xpm_load_image)
+ (xpm_load): Convert to ANSI C prototypes.
+
+ * emacs.c: Include nsterm.h if HAVE_NS.
+
+ * bidi.c (bidi_dump_cached_states): Fix fprintf warning.
+
+2010-08-06 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * process.c: Remove HAVE_SOCKETS #ifdefs inside #ifdef
+ subprocesses, only MSDOS does not define HAVE_SOCKETS.
+ (socket_options): Use const char* for name.
+
+2010-08-06 Juanma Barranquero <lekktu@gmail.com>
+
+ Fix changes in 2010-08-05T23:15:24Z!dann@ics.uci.edu..2010-08-05T23:34:12Z!dann@ics.uci.edu for Windows build.
+
+ * xmenu.c [USE_X_TOOLKIT || USE_GTK]:
+ Don't declare xmalloc_widget_value and digest_single_submenu.
+
+ * w32font.c (Qlatin): Remove declaration.
+
+ * menu.h (xmalloc_widget_value, digest_single_submenu): Declare.
+
+ * dired.c (compile_pattern): Restore declaration.
+
+2010-08-05 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Remove extern declarations in .c files, .h files have them.
+ * data.c:
+ * dired.c:
+ * editfns.c:
+ * filelock.c:
+ * fns.c:
+ * font.c:
+ * fontset.c:
+ * frame.c:
+ * fringe.c:
+ * ftfont.c:
+ * gtkutil.c:
+ * indent.c:
+ * keyboard.c:
+ * keymap.c:
+ * lread.c:
+ * menu.c:
+ * print.c:
+ * search.c:
+ * sound.c:
+ * window.c:
+ * xdisp.c:
+ * xfaces.c:
+ * xfns.c:
+ * xfont.c:
+ * xftfont.c:
+ * xmenu.c:
+ * xterm.c: Remove declarations.
+
+ Cleanup syssignal.h.
+ * syssignal.h (sighold, sigrelse, RETSIGTYPE): Remove, unused.
+ (main_thread): Move down to remove #ifdef.
+ (SIGMASKTYPE, SIGEMPTYMASK, SIGFULLMASK, sigmask, sigunblock):
+ Remove conditional definition following unconditional ones.
+
+ * lisp.h: Remove HAVE_SHM code, unused.
+ (QCmap, QCrehash_size, QCrehash_threshold, QCsize, QCtest)
+ (QCweakness, Qabove_handle, Qbackquote, Qbar, Qbelow_handle)
+ (Qborder, Qbottom, Qbox, Qcircular_list, Qcomma, Qcomma_at)
+ (Qcomma_dot, Qcursor, Qdefault, Qdown, Qend_scroll, Qeq, Qeql)
+ (Qequal, Qfile_exists_p, Qfont_param, Qfringe, Qfunction)
+ (Qfunction_documentation, Qhandle, Qhbar, Qheader_line, Qhollow)
+ (Qidentity, Qleft_margin, Qmenu, Qmenu_bar_update_hook)
+ (Qmode_line_inactive, Qmouse, Qoverriding_local_map)
+ (Qoverriding_terminal_local_map, Qratio, Qregion, Qright_margin)
+ (Qscroll_bar, Qtool_bar, Qtop, Qup, Qvertical_border, Qwhen)
+ (Qwindow_scroll_functions, Vafter_load_alist)
+ (Vauto_save_list_file_name, Vface_alternative_font_family_alist)
+ (Vface_alternative_font_registry_alist, Vface_font_rescale_alist)
+ (Vface_ignored_fonts, Vinhibit_redisplay, Vminibuffer_list)
+ (Vprint_length, Vprint_level, Vscalable_fonts_allowed)
+ (Vshell_file_name, Vsystem_name, Vwindow_scroll_functions)
+ (Vwindow_system_version, Vx_no_window_manager, initial_argc)
+ (initial_argv, last_nonmenu_event, load_in_progress)
+ (noninteractive_need_newline, scroll_margin): Add declarations.
+
+ * keyboard.h (xmalloc_widget_value, digest_single_submenu):
+ Remove declarations, menu.h has them.
+ (QCbutton, QCtoggle, QCradio, QClabel, extra_keyboard_modifiers)
+ (Vinput_method_function, Qinput_method_function)
+ (Qevent_symbol_element_mask, last_event_timestamp):
+ * dispextern.h (Voverflow_newline_into_fringe):
+ * font.h (QCantialias, Qp, syms_of_ftfont, syms_of_xfns)
+ (syms_of_ftxfont, syms_of_xftfont, syms_of_bdffont)
+ (syms_of_w32font, syms_of_nsfont):
+ * fontset.h (find_font_encoding, Qlatin):
+ * frame.h (Qtooltip, Qrun_hook_with_args, Vmenu_bar_mode)
+ (Vtool_bar_mode, set_frame_menubar):
+ * ftfont.h (ftfont_font_format, ftfont_get_fc_charset):
+ * xterm.h (Qx_gtk_map_stock):
+ * keymap.h (meta_prefix_char): Add declarations.
+
+ * term.c: Remove dead code.
+
+ Fix emacs -Q -f server-start & emacsclient -t on GNU/Linux.
+ * term.c (dissociate_if_controlling_tty): Use USG5 instead of
+ USG. This is equivalent to defined (USG) && !defined (BSD_PGRPS),
+ which is what was there before BSD_PGRPS was removed.
+
+2010-08-05 Eli Zaretskii <eliz@gnu.org>
+
+ * deps.mk (unexcoff.o): Rename unexec.[co] => unexcoff.[co].
+
+ * unexcoff.c: Renamed from unexec.c.
+
+2010-08-04 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * sysdep.c (child_setup_tty): Comment-out left-over non-ICANON code.
+
+2010-08-03 Johan Bockgård <bojohan@gnu.org>
+
+ * data.c (Flocal_variable_p): Handle variable aliases correctly.
+ (Bug#6744)
+
+2010-08-02 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (x_create_toolkit_scroll_bar): Only set XtNbeNiceToColormap
+ to TRUE if depth of screen is < 16.
+
+ * gtkutil.c (hierarchy_ch_cb, qttip_cb): Do not define unless
+ USE_GTK_TOOLTIP.
+ (xg_prepare_tooltip): Return 0 unless USE_GTK_TOOLTIP.
+ (xg_show_tooltip, xg_hide_tooltip): Do nothing unless USE_GTK_TOOLTIP.
+ (xg_create_frame_widgets): Surround tooltip-related code with ifdef
+ USE_GTK_TOOLTIP.
+ (xg_free_frame_widgets): Don't delete ttip_* unless USE_GTK_TOOLTIP.
+
+ * xterm.h (USE_GTK_TOOLTIP): New define.
+ (struct x_output): Put ttip_* inside ifdef USE_GTK_TOOLTIP.
+
+ * sysdep.c (child_setup_tty): Enable ICANON in lflags and set VEOF
+ to Control-D (Bug#6771).
+
+2010-08-02 Juanma Barranquero <lekktu@gmail.com>
+
+ * editfns.c (Fregion_beginning, Fregion_end): Doc fixes (bug#6493).
+ Wording by Drew Adams <drew.adams@oracle.com>.
+
+2010-08-01 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.h (struct x_output): Add ttip_widget, ttip_window and
+ ttip_lbl.
+
+ * xterm.c (x_clear_frame): Check FRAME_GTK_WIDGET (f) before
+ calling gtk_widget_queue_draw.
+ (x_free_frame_resources): Call xg_free_frame_widgets.
+
+ * xfns.c (x_gtk_use_system_tooltips): New variable.
+ (Fx_show_tip): If USE_GTK and x_gtk_use_system_tooltips, call
+ new gtkutil tooltip functions to show the tooltip.
+ (Fx_hide_tip): Call xg_hide_tooltip.
+ (syms_of_xfns): Defvar x-gtk-use-system-tooltips.
+
+ * gtkutil.h (xg_free_frame_widgets, xg_prepare_tooltip)
+ (xg_show_tooltip, xg_hide_tooltip): Declare.
+
+ * gtkutil.c (hierarchy_ch_cb, qttip_cb, xg_prepare_tooltip)
+ (xg_show_tooltip, xg_hide_tooltip, xg_free_frame_widgets):
+ New functions.
+ (xg_create_frame_widgets): Set ttip_* to 0. Set a dummy tooltip
+ text so qttip_cb is called. Connect query-tooltip to qttip_cb.
+ Remove code that is commented out.
+
+2010-08-01 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keymap.c (Fdefine_key, Flookup_key): Say what event is invalid.
+
+2010-07-31 Chong Yidong <cyd@stupidchicken.com>
+
+ * xselect.c (x_own_selection): Use list4.
+
+2010-07-30 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * buffer.c (Qwindow): Do not define, already defined in data.c.
+ (syms_of_buffer): Do not intern and staticpro Qwindow. (Bug#6760)
+
+2010-07-29 Chad Brown <yandros@mit.edu>
+
+ Replace tests for SYSV_SYSTEM_DIR with HAVE_DIRENT_H, set via autoconf.
+ * dired.c, sysdep.c: Test HAVE_DIRENT_H instead of SYSV_SYSTEM_DIR.
+ * config.in: Undef HAVE_DIRENT_H.
+ * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h,
+ * s/msdos.h, s/usg5-4.h: Don't define SYSV_SYSTEM_DIR.
+
+2010-07-29 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Rename s/usg5-4.h -> s/usg5-4-common.h.
+ * s/usg5-4.h: Rename file to ...
+ * s/usg5-4-common.h: ... this for consistency with what we do for BSD.
+ * s/unixware.h:
+ * s/sol2-6.h:
+ * s/irix6-5.h: Update includes accordingly.
+
+2010-07-29 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xfns.c (x_set_tool_bar_position): Remove debug fprintf.
+
+ * xterm.h (struct x_output): Add toolbar_top_height,
+ toolbar_bottom_height, toolbar_left_width, toolbar_right_width.
+ Remove toolbar_height.
+ If USE_GTK: Add hbox_widget and toolbar_in_hbox.
+ (FRAME_TOOLBAR_TOP_HEIGHT, FRAME_TOOLBAR_BOTTOM_HEIGHT)
+ (FRAME_TOOLBAR_LEFT_WIDTH, FRAME_TOOLBAR_RIGHT_WIDTH): New macros.
+ (FRAME_TOOLBAR_HEIGHT): Is now TOP_HEIGHT + BOTTOM_HEIGHT.
+
+ * xterm.c (x_set_window_size_1): Add FRAME_TOOLBAR_WIDTH to pixelwidth.
+
+ * xfns.c (x_set_tool_bar_position): New function.
+ (xic_set_statusarea): Use FRAME_TOOLBAR_TOP_HEIGHT.
+ (x_frame_parm_handlers): Add x_set_tool_bar_position.
+ (syms_of_xfns): If USE_GTK, provide move-toolbar.
+
+ * window.c (calc_absolute_offset): Check for FRAME_TOOLBAR_TOP_HEIGHT
+ and FRAME_TOOLBAR_LEFT_WIDTH.
+
+ * gtkutil.h (xg_change_toolbar_position): Declare.
+
+ * gtkutil.c (FRAME_TOTAL_PIXEL_WIDTH): New macro.
+ (xg_frame_set_char_size): Add FRAME_TOOLBAR_WIDTH to pixelwidth.
+ (xg_height_or_width_changed): Use FRAME_TOTAL_PIXEL_WIDTH.
+ (xg_create_frame_widgets): Create a hobox for placing widgets
+ vertically. Use gtk_box_pack_start.
+ (xg_height_or_width_changed): Rename from xg_height_changed.
+ (x_wm_set_size_hint): Add FRAME_TOOLBAR_WIDTH to base_width.
+ (xg_update_frame_menubar, free_frame_menubar): Change to
+ xg_height_or_width_changed.
+ (xg_tool_bar_detach_callback): Update left/right/top/bottom tool bar
+ size correctly. Remove hardcoded 4, instead use handlebox size -
+ toolbar size.
+ (xg_tool_bar_attach_callback): Update left/right/top/bottom tool bar
+ size correctly. Use handlebox size + toolbar size as additional size.
+ (xg_pack_tool_bar): POS is a new parameter.
+ Set orientation of tool bar based on pos.
+ Only make handlebox_widget if NULL.
+ Check if tool bar goes to vbox or hbox depending on pos.
+ (xg_update_tool_bar_sizes): New function.
+ (update_frame_tool_bar): Remove old_req, new_req. Do not get tool bar
+ height, call xg_update_tool_bar_sizes instead.
+ (free_frame_tool_bar): Remove from hbox or vbox depending on
+ toolbar_in_hbox, Set all FRAME_TOOLBAR_*_(WIDTH|HEIGHT) to zero.
+ (xg_change_toolbar_position): New function.
+
+ * frame.h (struct frame): Add tool_bar_position.
+ (Qbottom): Declare.
+
+ * frame.c (Qtool_bar_position): New variable.
+ (make_frame): Set tool_bar_position to Qtop.
+ (frame_parms): Add tool-bar-position.
+ (x_report_frame_params): Store tool_bar_position.
+ (x_set_fringe_width): Reset wm size hint after fringe changes.
+
+2010-07-29 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Make lisp_time_argument declaration work on all systems.
+ * lisp.h (lisp_time_argument): Move declaration ...
+ * systime.h (lisp_time_argument): ... here
+ * editfns.c (lisp_time_argument): Remove declaration. (Bug#6751)
+
+2010-07-29 Jan Djärv <jan.h.d@swipnet.se>
+
+ * vm-limit.c (POINTER): Add typedef for it.
+ (start_of_data): Change return type from POINTER to char *.
+
+ * frame.h (Qtty_color_mode): Move declaration out of ifdef
+ HAVE_WINDOW_SYSTEM.
+
+2010-07-29 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * vm-limit.c: Do not include sys/resource.h, mem-limits.h does it.
+ Remove reference to __osf__, unused.
+
+ * mem-limits.h: Remove duplicated includes.
+ (NULL): Remove definition, unused.
+ (POINTER): Remove definition.
+ (start_of_data): Use char* in prototype, as the function
+ definition does.
+
+ Remove extern declarations from .c files, and them to .h files.
+ * keyboard.h (Qhelp_echo, waiting_for_input)
+ (input_available_clear_time, ignore_mouse_drag_p)
+ (Vdouble_click_time, real_this_command, Vthis_original_command):
+ * keymap.h (Qremap, Qmenu_item, Voverriding_local_map)
+ (Voverriding_local_map_menu_flag):
+ * lisp.h (Qinteractive_form, use_file_dialog)
+ (Qcursor_in_echo_area, QCascent, QCmargin, QCrelief, Qcount)
+ (Qextension_data, QCconversion, QCcolor_symbols, QCheuristic_mask)
+ (QCindex, QCmatrix, QCcolor_adjustment, QCmask)
+ (Qrisky_local_variable, map_char_table_for_charset, Vprint_level)
+ (Qfunction, debug_on_next_call, Qfield)
+ (Vinhibit_field_text_motion, Vuser_login_name, lisp_time_argument)
+ (Qpriority, Qwindow, Qevaporate, Qbefore_string, Qafter_string)
+ (Qfile_directory_p, Qinsert_file_contents)
+ (Qcompletion_ignore_case, Qcompletion_ignore_case)
+ (Vcompletion_regexp_list, Vhistory_length, completion_ignore_case)
+ (history_delete_duplicates, minibuffer_auto_raise, Qonly)
+ (Qfile_name_handler_alist, Qfront_sticky, Qrear_nonsticky)
+ (Qminibuffer_prompt)
+ (Vtemporary_file_directory,char_ins_del_vector, Qface):
+ * xterm.h (gray_bitmap_width, gray_bitmap_height)
+ (gray_bitmap_bits, xic_create_fontsetname):
+ * coding.h (Vtranslation_table_for_input): Add extern declarations.
+
+ * xsmfns.c (Vuser_login_name):
+ * xrdb.c (Vdouble_click_time):
+ * xfaces.c (xic_create_fontsetname):
+ * w32select.c (waiting_for_input):
+ * print.c (minibuffer_auto_raise):
+ * msdos.c (Qhelp_echo):
+ * macros.c (real_this_command):
+ * keymap.c (Voverriding_local_map):
+ * xterm.c (poll_for_input_1, gray_bitmap_width)
+ (gray_bitmap_height, gray_bitmap_bits;
+ * xmenu.c ( Voverriding_local_map)
+ (Voverriding_local_map_menu_flag; Qmenu_item; use_dialog_box)
+ (use_file_dialog, Xt_app_con):
+ * xdisp.c (minibuffer_auto_raise, Voverriding_local_map)
+ (Voverriding_local_map_menu_flag, Qmenu_item, Qface, Qinvisible)
+ (Qwidth, Qinvisible, Qwindow, Qpriority, Qtool_bar_lines)
+ (Qtool_bar_lines, ignore_mouse_drag_p):
+ * minibuf.c (Voverriding_local_map, Qfield, Qfront_sticky)
+ (Qrear_nonsticky, nconc2):
+ * keyboard.c (current_global_map, minibuf_level, Qmenu_item)
+ (Vhistory_length, Vtranslation_table_for_input, Qcomposition)
+ (Qdisplay, Qafter_string, Qbefore_string, Qundefined):
+ * fileio.c (use_dialog_box, use_file_dialog, Vuser_login_name)
+ (minibuf_level, minibuffer_auto_raise, lisp_time_argument):
+ * eval.c (Qinteractive_form, Qrisky_local_variable, Qfunction)
+ (gc_in_progress):
+ * doc.c (Voverriding_local_map, Qremap):
+ * dired.c (completion_ignore_case, Qcompletion_ignore_case)
+ (Vcompletion_regexp_list):
+ * coding.c (Qmac, Qinsert_file_contents, Qwrite_region)
+ (Qcompletion_ignore_case):
+ * callint.c (Qcursor_in_echo_area, Qfile_directory_p, Qonly)
+ (Vhistory_length, Vthis_original_command, real_this_command)
+ (Qface, Qminibuffer_prompt, history_delete_duplicates):
+ * image.c (Qrisky_local_variable):
+ * fontset.c (QCname):
+ * fns.c (minibuffer_auto_raise, QCname):
+ * dispnew.c (char_ins_del_cost):
+ * composite.c (font_fill_lglyph_metrics):
+ * cmds.c (Qface, Vtranslation_table_for_input):
+ * charset.c (map_char_table_for_charset, Qfile_name_handler_alist):
+ * ccl.c (charset_unicode):
+ * callproc.c (Vtemporary_file_directory):
+ * buffer.c (emacs_strerror): Remove extern declarations.
+
+ * data.c (Qwindow): Make non-static, used from other files too.
+ * frame.c (validate_x_resource_name): Remove shadow definition for i.
+
+ * unexec.c (make_hdr): Remove references to NO_REMAP, COFF,
+ SEGMENT_MASK, SECTION_ALIGNMENT, ADJUST_EXEC_HEADER.
+ * s/usg5-4.h (COFF):
+ * s/template.h:
+ * s/msdos.h (COFF, NO_REMAP):
+ * s/ms-w32.h (NO_REMAP):
+ * s/hpux10-20.h (NO_REMAP):
+ * m/sparc.h (SEGMENT_MASK):
+ * m/m68k.h (NO_REMAP):
+ * m/intel386.h (SEGMENT_MASK):
+ * m/arm.h (NO_REMAP):
+ * m/alpha.h (COFF):
+ * m/template.h: Remove references to unused defines.
+
+2010-07-28 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xsettings.c (Ftool_bar_get_system_style): Also check for
+ Qtext_image_horiz.
+
+ * xdisp.c (Qtext_image_horiz): Define.
+ (syms_of_xdisp): Initialize Qtext_image_horiz. Add text-image-horiz
+ to documentation of tool-bar-style.
+
+ * lisp.h (Qtext_image_horiz): Declare.
+
+ * gtkutil.c (xg_make_tool_item, xg_show_toolbar_item): Handle tool bar
+ style text_image_horiz.
+
+2010-07-27 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * emacs.c (Fkill_emacs): Remove return statement.
+
+ * term.c (Qspace, QCalign_to, QCwidth): Remove declarations.
+ (encode_terminal_code, produce_composite_glyph): Remove unused variables.
+ (set_tty_color_mode, term_mouse_highlight, term_get_fkeys):
+ Remove local extern declarations.
+
+ * xmenu.c: Do not included lwlib.h, not needed.
+
+ * m/iris4d.h (XUINT, XSET): Remove, not needed.
+
+ * process.c: Move definitions earlier to minimize #ifdefs.
+
+ * xterm.h (x_get_customization_string, x_load_resources)
+ (x_get_resource, x_text_icon, x_text_icon, x_check_errors)
+ (x_check_errors, x_property_data_to_lisp, defined_color)
+ (xic_set_xfontset, x_defined_color): Use const.
+
+ * xterm.c (xlwmenu_window_p, xlwmenu_redisplay): Remove declarations.
+ (x_text_icon, x_check_errors, x_connection_closed): Use const.
+
+ * xselect.c (selection_data_to_lisp_data)
+ (x_property_data_to_lisp):
+ * xrdb.c (x_get_string_resource, file_p)
+ (x_get_customization_string, magic_file_p, search_magic_path)
+ (get_system_app, get_user_app, x_load_resources, x_get_resource)
+ (x_get_string_resource): Use const.
+
+ * xfns.c: Include xlwmenu.h when USE_LUCID.
+ (x_defined_color, xic_set_xfontset): Use const.
+ (Fx_hide_tip): Remove local extern declaration.
+
+ * xfaces.c (Qmouse_face): Remove declaration.
+ (face_color_gray_p, tty_defined_color, defined_color)
+ (face_color_gray_p, face_color_supported_p): Add const.
+
+ * xdisp.c (do_mouse_tracking): Remove declaration.
+ (add_to_log): Use const.
+
+ * minibuf.c (Qmouse_face): Remove declaration.
+
+ * msdos.c (IT_note_mouse_highlight): Remove local extern declaration.
+
+ * keyboard.h (do_mouse_tracking): Add declaration.
+
+ * image.c (QCwidth, QCheight, QCforeground, QCbackground, QCfile)
+ (QCdata, QCtype, Qcenter): Remove declarations.
+
+ * frame.c (x_get_resource_string, x_get_string_resource)
+ (x_get_arg, x_frame_get_arg, x_frame_get_and_record_arg)
+ (x_default_parameter): Use const.
+
+ * font.c (Qnormal, QCtype, QCfamily, QCweight, QCslant, QCwidth)
+ (QCheight, QCsize, QCname): Remove declarations.
+
+ * emacs.c (main): Remove local extern declaration.
+
+ * editfns.c (region_limit, syms_of_editfns): Remove local extern
+ declarations.
+
+ * dispnew.c: Remove duplicate #include <unistd.h>.
+ (update_window, update_frame_1, init_display): Remove local extern
+ declarations.
+
+ * dispextern.h (add_to_log): Remove declaration.
+ (x_get_arg, x_frame_get_arg, x_frame_get_and_record_arg)
+ (x_frame_get_and_record_arg, x_default_parameter): Add const.
+
+ * dired.c (scmp): Add const.
+ (directory_files_internal): Remove local extern declaration.
+
+ * data.c (Finteractive_form): Use const.
+
+ * composite.c (syms_of_composite): Remove local extern declarations.
+
+ * charset.c (add_to_log): Remove declaration.
+
+ * character.c (strwidth, parse_str_to_multibyte): Add const.
+
+ * character.h (strwidth, parse_str_to_multibyte): Likewise.
+
+ * buffer.c (Fset_buffer_multibyte): Remove local extern declaration.
+
+ * lisp.h (Fkill_emacs): Mark as NO_RETURN.
+ (Lisp_Subr): Make doc and intspec constant.
+ (QCsize, Qspace, Qcenter, QCalign_to, QCdata, QCfile, QCtype)
+ (Qlocal, Qapply, Qnormal, QCfamily, QCweight, QCslant, QCwidth)
+ (QCheight, QCsize, QCname, QCwidth, QCforeground)
+ (QCbackground, add_to_log, stack_base, Vmark_even_if_inactive)
+ (display_arg): Add declarations.
+
+2010-07-27 Christoph Scholtes <cschol2112@gmail.com>
+
+ * minibuf.c (Fread_buffer): Doc fix (bug#6528).
+
+ * window.c (Fwindow_height): Doc fix (bug#6518).
+
+2010-07-27 Juanma Barranquero <lekktu@gmail.com>
+
+ * buffer.c (syms_of_buffer) <fringe-indicator-alist>: Doc fix.
+
+2010-07-26 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * keyboard.c (Ftop_level, Fexit_recursive_edit)
+ (Fabort_recursive_edit): Remove return statements in NO_RETURN
+ functions.
+
+ * frame.h (Qtty_color_mode): Add declaration.
+
+ * lisp.h (Ftop_level, Fexit_recursive_edit)
+ (Fabort_recursive_edit): Mark as NO_RETURN.
+
+2010-07-26 Kenichi Handa <handa@m17n.org>
+
+ * font.c (Ffont_shape_gstring): Terminate GSTRING by nil if the
+ number of glyphs gets smaller than the original length. (Bug#6621)
+
+2010-07-26 Juanma Barranquero <lekktu@gmail.com>
+
+ * lread.c (unreadpure, mapatoms_1): Make static.
+
+2010-07-25 Juanma Barranquero <lekktu@gmail.com>
+
+ * terminfo.c (tparam): Fix prototype of tparm.
+
+2010-07-25 Andreas Schwab <schwab@linux-m68k.org>
+
+ * emacs.c (main) [PROFILING]: Use __executable_start if defined to
+ find start of text segment.
+ * dispnew.c (safe_bcopy): Don't define if HAVE___EXECUTABLE_START
+ is defined.
+
+ * callproc.c (set_initial_environment): Avoid unbalanced braces.
+
+2010-07-25 Ken Brown <kbrown@cornell.edu>
+
+ * vm-limit.c (check_memory_limits): Fix previous change;
+ accidentally reverted an earlier change.
+
+2010-07-25 Ken Brown <kbrown@cornell.edu>
+
+ * mem-limits.h (BSD4_2) [cygwin]: Don't define here; instead...
+ * vm-limit.c: ...add 'defined (CYGWIN)' here (Bug#6715).
+
+2010-07-25 Juanma Barranquero <lekktu@gmail.com>
+
+ * callproc.c (relocate_fd): Set inside #ifndef WINDOWSNT.
+ * dired.c (opendir, readdir): Fix prototypes.
+ * editfns.c (w32_get_internal_run_time): Fix prototypes.
+ * keyboard.c (input_available_signal): Declare inside #ifdef SIGIO.
+ * ndir.h (opendir, readdir, seekdir, closedir): Fix prototypes.
+ (telldir): Remove declaration.
+ * ralloc.c (real_morecore, __morecore): Fix prototypes.
+ * sound.c (alsa_sound_perror): Declare inside #ifdef HAVE_ALSA.
+ * syssignal.h (strsignal): Fix prototype.
+ * term.c (tparam): Fix prototype.
+ (term_get_fkeys_address, term_get_fkeys_kboard, term_get_fkeys_1)
+ (term_get_fkeys): Set inside "#ifndef DOS_NT".
+ * vm-limit.c (check_memory_limits): Fix prototypes of real_morecore
+ and __morecore.
+ * w32gui.h (XParseGeometry): Fix prototype.
+ * w32heap.h (get_data_start, get_data_end, init_heap): Fix prototypes.
+ * w32term.c (my_set_focus): Declare inside #if 0.
+ * w32term.h (x_window_to_frame, x_display_info_for_name, w32_term_init)
+ (w32_fill_rect, w32_clear_window, init_crit, delete_crit, signal_quit)
+ (drain_message_queue, get_next_msg, post_msg, parse_button)
+ (ClipboardSequence_Proc): Fix prototypes.
+ (wait_for_sync): Remove declaration.
+
+2010-07-24 Juanma Barranquero <lekktu@gmail.com>
+
+ * w32fns.c (w32_to_x_color): Remove, unused.
+
+2010-07-24 Andreas Schwab <schwab@linux-m68k.org>
+
+ * lisp.h: Remove leftover P_.
+
+2010-07-24 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * ecrt0.c, unexalpha.c: Remove files, unused.
+
+2010-07-24 Andreas Schwab <schwab@linux-m68k.org>
+
+ * cmds.c (internal_self_insert): Make static.
+ * lisp.h (internal_self_insert): Remove declaration.
+
+2010-07-23 Juanma Barranquero <lekktu@gmail.com>
+
+ * alloc.c (free_float):
+ * font.c [ENABLE_CHECKING] (font_match_xlfd, font_check_xlfd_parse):
+ * frame.c (delete_frame_handler):
+ * ralloc.c (reorder_bloc):
+ * w32menu.c (menubar_id_to_frame, add_left_right_boundary):
+ Remove unused static functions.
+
+ * menu.c (cleanup_popup_menu): Set inside "#ifdef HAVE_NS";
+ it is called only from NS code.
+
+ * w32term.c (my_set_focus): #ifdef away; it is called only from
+ "#ifdef 0" code.
+
+ * w32fns.c (x_edge_detection):
+ * xfaces.c (may_use_scalable_font_p):
+ Remove obsolete static declarations.
+
+2010-07-20 Juanma Barranquero <lekktu@gmail.com>
+
+ * alloc.c (emacs_blocked_free, emacs_blocked_malloc)
+ (emacs_blocked_realloc, uninterrupt_malloc):
+ * fringe.c (w32_reset_fringes):
+ * image.c (convert_mono_to_color_image, lookup_rgb_color)
+ (init_color_table, XPutPixel, jpeg_resync_to_restart_wrapper):
+ * sound.c (be2hs, do_play_sound):
+ * vm-limit.c (get_lim_data, ret_lim_data):
+ * w32term.c (x_free_frame_resources):
+ * xfaces.c (x_create_gc, x_free_gc):
+ Convert definitions to standard C.
+
+2010-07-20 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (Feval, Ffuncall): Use the new names.
+
+ * lisp.h (struct Lisp_Subr): Rename `am' to aMANY and add aUNEVALLED.
+ (DEFUN): Add braces around the union initialisation and use ## to
+ specify the right union alternative and avoid a cast.
+
+2010-07-18 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in ($(BLD)/keyboard.$(O)): Update dependencies.
+
+2010-07-17 Chong Yidong <cyd@stupidchicken.com>
+
+ * frame.c (make_initial_frame): Use set_menu_bar_lines (Bug#6660).
+
+2010-07-17 Jan Djärv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (xg_event_is_for_menubar): Also check that event window
+ is related to the menu bar (Bug#6499).
+ (xg_frame_resized): GTK_IS_MAPPED => gtk_widget_get_mapped, for Gtk 3.0.
+
+2010-07-16 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.h (x_menubar_window_to_frame): Second parameter is XEvent*.
+
+ * xterm.c (handle_one_xevent): Pass event to x_menubar_window_to_frame.
+
+ * xmenu.c (x_activate_menubar): Revert previous fix for Bug#6499,
+ i.e. don't put back ButtonRelease (Bug#6608).
+
+ * xfns.c (x_menubar_window_to_frame): Take XEvent as second parameter
+ instead of Window. Call xg_event_is_for_menubar when
+ USE_GTK (Bug#6499).
+
+ * gtkutil.h (xg_event_is_for_menubar): Declare.
+
+ * gtkutil.c (xg_event_is_for_menubar): New function (Bug#6499).
+
+2010-07-16 Eli Zaretskii <eliz@gnu.org>
+
+ * w32fns.c (x_set_foreground_color): Fix setting the cursor color
+ when it's the same as the old foreground. (Bug#6609)
+
+2010-07-16 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xmenu.c (free_frame_menubar): Only call x_set_window_size if
+ widget is non-null (Bug#6645).
+
+2010-07-15 Andreas Schwab <schwab@linux-m68k.org>
+
+ * xterm.c (x_fully_uncatch_errors, x_trace_wire, x_check_font):
+ Convert old-style definition.
+
+ * xmenu.c (create_and_show_popup_menu, xmenu_show): Fix type of
+ timestamp argument.
+
+2010-07-15 Eli Zaretskii <eliz@gnu.org>
+
+ * fringe.c (update_window_fringes): Restore mistakenly reverted
+ code from 2010-04-17T12:33:05Z!eliz@gnu.org merged in 2010-04-20T13:31:28Z!eliz@gnu.org.
+
+2010-07-14 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (xm_scroll_callback, x_process_timeouts): K&R => prototype.
+ (SET_SAVED_KEY_EVENT): Remove (not used).
+ (SET_SAVED_MENU_EVENT): Rename to SET_SAVED_BUTTON_EVENT and
+ remove size parameter.
+ (handle_one_xevent): Check popup_activated () for menu for Xt also.
+ Remove #ifdef USE_GTK around finish = X_EVENT_DROP.
+ Remove #ifdef USE_MOTIF code that did SET_SAVED_BUTTON_EVENT for
+ ButtonRelease.
+ (x_set_window_size_1): scroll_bar_actual_width is always
+ SCROLL_BAR_COLS * COLUMN_WIDTH for the purpose of frame sizing.
+
+ * xdisp.c (pending_menu_activation): Remove extern declaration.
+ (prepare_menu_bars): Remove setting of pending_menu_activation.
+
+ * xmenu.c (pending_menu_activation): Remove.
+ (x_activate_menubar): Set popup_activated_flag for Xt also.
+ Remove setting of pending_menu_activation.
+ (set_frame_menubar): Remove check of pending_menu_activation.
+ Declare menubar_size before code. Correct spelling in comment.
+
+2010-07-14 Kenichi Handa <handa@m17n.org>
+
+ * font.c (font_open_entity): Cancel previous change.
+ (Ffont_get): Don't check FONT_ENTITY_INDEX of a font-object.
+
+2010-07-13 Eli Zaretskii <eliz@gnu.org>
+
+ Remove subprocesses #ifdefs.
+ * process.c <inhibit_sentinels>: Move to the common part.
+ (Fwaiting_for_user_input_p): Move to the common part; return nil
+ if async subprocesses aren't supported.
+ * sysdep.c (wait_for_termination) [!MSDOS]: Don't compile on
+ MS-DOS. Remove "#ifdef subprocesses".
+ (sys_subshell, sys_select): Remove "#ifdef subprocesses".
+ (gettimeofday): Remove "#ifdef subprocesses".
+ (wait_without_blocking): Remove function.
+ (flush_pending_output, child_setup_tty): Don't compile on MS-DOS.
+ Remove "#ifdef subprocesses".
+ (child_setup_tty): Use WINDOWSNT instead of DOS_NT, since not
+ compiled on MS-DOS.
+ * callproc.c (Fcall_process) [!MSDOS]: Don't call
+ wait_for_termination on MS-DOS.
+ * emacs.c (shut_down_emacs): Remove "#ifndef subprocesses" from
+ initialization of inhibit_sentinels.
+ * keyboard.c (record_asynch_buffer_change): Remove "#ifdef
+ subprocesses" conditional.
+ * callproc.c (Fcall_process) [!subprocesses]: Don't call
+ wait_for_termination, since `buffer' cannot be an integer when
+ async subprocesses are not supported
+ * xdisp.c (decode_mode_spec): Use `MSDOS' instead of `subprocesses'
+ for ifdefing away the call to Fprocess_status.
+
+ * process.c (add_keyboard_wait_descriptor) [!subprocesses]: Ifdef
+ away the entire body of the function.
+
+2010-07-13 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Remove subprocesses #ifdefs from term.c.
+ * process.c (add_keyboard_wait_descriptor)
+ (delete_keyboard_wait_descriptor): Move to common section, do
+ nothing when subprocesses is not defined.
+ * term.c (Fsuspend_tty, Fresume_tty, init_tty):
+ Remove subprocesses #ifdefs.
+
+ Convert maybe_fatal to standard C.
+ * lisp.h (verror): Declare.
+ * eval.c (verror): New function containing the code from ...
+ (error): ... this. Call verror.
+ * term.c (vfatal): New function containing the code from ...
+ (fatal): ... this. Call vfatal.
+ (maybe_fatal): Convert to standard C, use variable number of
+ arguments. Declare as non-return.
+ (init_tty): Fix maybe_fatal call.
+
+2010-07-12 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * xterm.c (x_scroll_bar_set_handle, x_scroll_bar_expose)
+ (_scroll_bar_note_movement): Convert definitions to standard C.
+ * xmenu.c (menu_help_callback, pop_down_menu, xmenu_show):
+ * xfns.c (hack_wm_protocols, x_window, x_window): Likewise.
+
+2010-07-12 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * xterm.c (x_frame_of_widget, x_alloc_nearest_color_for_widget)
+ (x_alloc_lighter_color_for_widget, cvt_string_to_pixel)
+ (cvt_pixel_dtor, x_window_to_menu_bar, xt_action_hook)
+ (xaw_jump_callback, xaw_scroll_callback)
+ (x_create_toolkit_scroll_bar, x_set_toolkit_scroll_bar_thumb)
+ (x_wm_set_size_hint, x_activate_timeout_atimer):
+ Convert definitions to standard C.
+ * xmenu.c (menubar_id_to_frame, popup_get_selection)
+ (popup_activate_callback, popup_deactivate_callback)
+ (menu_highlight_callback, menubar_selection_callback)
+ (apply_systemfont_to_dialog, apply_systemfont_to_menu)
+ (free_frame_menubar, popup_selection_callback, as)
+ (create_and_show_popup_menu, dialog_selection_callback)
+ (create_and_show_dialog):
+ * xfns.c (hack_wm_protocols, x_window):
+ * xfaces.c (x_update_menu_appearance):
+ * widget.c (get_default_char_pixel_size, pixel_to_char_size)
+ (char_to_pixel_size, round_size_to_char, get_wm_shell)
+ (set_frame_size, update_wm_hints, setup_frame_gcs)
+ (update_various_frame_slots, update_from_various_frame_slots)
+ (EmacsFrameInitialize, EmacsFrameRealize, EmacsFrameResize)
+ (EmacsFrameSetValues, EmacsFrameQueryGeometry)
+ (EmacsFrameSetCharSize, widget_store_internal_border): Likewise.
+
+2010-07-12 Andreas Schwab <schwab@linux-m68k.org>
+
+ * dbusbind.c (xd_initialize): Don't compare boolean with a constant.
+
+2010-07-12 Eli Zaretskii <eliz@gnu.org>
+
+ * process.c (setup_process_coding_systems): Move to the part
+ shared by non-subprocesses systems, and make its body empty when
+ subprocesses is not defined.
+ (close_process_descs): Move to the part shared by non-subprocesses
+ systems.
+ (wait_reading_process_output) [!subprocesses]: Convert arg list to
+ ANSI C.
+
+2010-07-12 Andreas Schwab <schwab@linux-m68k.org>
+
+ * editfns.c (transpose_markers): Convert old-style definition.
+ * emacs.c (abort, shut_down_emacs, fixup_locale)
+ (synchronize_system_time_locale)
+ (synchronize_system_messages_locale, syms_of_emacs): Likewise.
+ * floatfns.c (extract_float, matherr, init_floatfns)
+ (syms_of_floatfns): Likewise.
+ * fns.c (make_hash_table): Likewise.
+ * ftfont.c (ftfont_get_otf, ftfont_otf_features)
+ (ftfont_otf_capability, ftfont_get_glyph_id, ftfont_get_metrics)
+ (ftfont_drive_otf, ftfont_shape_by_flt, ftfont_shape)
+ (ftfont_variation_glyphs): Likewise.
+ * gtkutil.c (xg_create_widget, xg_modify_menubar_widgets): Likewise.
+ * keymap.c (describe_map_tree, describe_map, describe_vector): Likewise.
+ * lread.c (read_filtered_event): Likewise.
+ * minibuf.c (read_minibuf_noninteractive, read_minibuf): Likewise.
+ * process.c (wait_reading_process_output): Likewise.
+ * scroll.c (do_line_insertion_deletion_costs): Likewise.
+ * search.c (search_buffer, boyer_moore): Likewise.
+ * syntax.c (scan_sexps_forward): Likewise.
+ * xdisp.c (try_scrolling): Likewise.
+ * xfaces.c (face_at_buffer_position, face_for_overlay_string)
+ (face_at_string_position): Likewise.
+ * xfns.c (x_default_scroll_bar_color_parameter): Likewise.
+ * xselect.c (x_get_window_property, receive_incremental_selection)
+ (x_get_window_property_as_lisp_data, lisp_data_to_selection_data):
+ Likewise.
+ * xterm.c (x_draw_relief_rect, x_draw_box_rect): Likewise.
+
+2010-07-12 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * callproc.c (child_setup): Remove subprocesses conditional.
+ Remove code dealing with SET_EMACS_PRIORITY, unused.
+
+ * buffer.c (Fset_buffer_multibyte): Remove subprocesses conditional.
+ * process.c (close_process_descs): Use DOS_NT instead of WINDOWSNT.
+
+ * emacs.c (__do_global_ctors, __do_global_ctors_aux)
+ (__do_global_dtors, __main): Use void in definition.
+ (main): Remove code dealing with SET_EMACS_PRIORITY, unused.
+ Remove SYMS_MACHINE code, unused. Remove SYMS_SYSTEM, inline
+ the only users from ...
+ * s/ms-w32.h (SYMS_SYSTEM): ... here and ...
+ * s/msdos.h (SYMS_SYSTEM): ... here. Remove.
+ (HAVE_VOLATILE): Remove, unused.
+
+ Convert more function definitions to standard C.
+ * xdisp.c (window_box_edges, handle_single_display_spec)
+ (display_string): Convert definition to standard C.
+ * scroll.c (do_direct_scrolling, scrolling_1):
+ * dispnew.c (allocate_matrices_for_frame_redisplay)
+ (mirrored_line_dance):
+ * coding.c (code_convert_string):
+ * charset.c (map_charset_chars):
+ * ccl.c (Fccl_program_p, Fccl_execute, Fccl_execute_on_string)
+ (Fregister_ccl_program, Fregister_code_conversion_map):
+ * keyboard.c (kbd_buffer_nr_stored): Likewise.
+ (head_table): Make static and const.
+
+2010-07-12 Andreas Schwab <schwab@linux-m68k.org>
+
+ * Makefile.in (C_WARNINGS_SWITCH, PROFILING_CFLAGS)
+ (PROFILING_LDFLAGS): Set from substitution.
+ (ALL_CFLAGS): Add C_WARNINGS_SWITCH and PROFILING_CFLAGS, put
+ CFLAGS last.
+
+2010-07-12 Kenichi Handa <handa@m17n.org>
+
+ * Makefile.in (lisp): Change hebrew.el to hebrew.elc.
+ (shortlisp): Likewise.
+
+ * font.h (enum font_property_index): New member FONT_ENTITY_INDEX.
+
+ * font.c (font_open_entity): Record ENTITY in FONT_OBJECT's slot
+ of FONT_ENTITY_INDEX.
+ (Ffont_get): If KEY is :otf and the font-object doesn't have the
+ property, get the property value dynamically.
+ (Ffont_put): Accept font-entity and font-object too.
+ (Ffont_get_glyhphs): Rename from Fget_font_glyphs. Arguments and
+ return value changed.
+ (syms_of_font): Adjust for the above change.
+
+2010-07-11 Andreas Schwab <schwab@linux-m68k.org>
+
+ * blockinput.h: Remove obsolete comment.
+
+ * lisp.h: Include <stddef.h>.
+ (OFFSETOF): Don't define.
+ (VECSIZE): Use offsetof instead of OFFSETOF.
+ (PSEUDOVECSIZE): Likewise.
+ * process.c (conv_sockaddr_to_lisp): Likewise.
+ * alloc.c: Don't include <stddef.h>.
+ * buffer.h (PER_BUFFER_VAR_OFFSET): Use offsetof.
+
+ * process.c: Remove obsolete comment.
+
+2010-07-11 Chong Yidong <cyd@stupidchicken.com>
+
+ * xfaces.c (Vface_remapping_alist): Doc fix (Bug#6091).
+
+2010-07-11 Andreas Schwab <schwab@linux-m68k.org>
+
+ * callint.c (Fcall_interactively): Use strchr, strrchr instead of
+ index, rindex.
+ * doc.c (get_doc_string, Fsnarf_documentation): Likewise.
+ * editfns.c (Fuser_full_name, Fformat): Likewise.
+ * emacs.c (argmatch, sort_args, decode_env_path): Likewise.
+ * fileio.c (Ffile_symlink_p): Likewise.
+ * filelock.c (current_lock_owner): Likewise.
+ * font.c (font_parse_name, font_parse_family_registry): Likewise.
+ * fontset.c (fontset_pattern_regexp): Likewise.
+ * lread.c (read1): Likewise.
+ * sysdep.c (init_system_name): Likewise.
+ * xfns.c (select_visual): Likewise.
+ * s/hpux10-20.h (index, rindex): Don't define.
+ * s/ms-w32.h (index): Likewise.
+ * s/usg5-4.h: Likewise.
+
+ * callproc.c (relocate_fd): Use F_DUPFD if defined.
+
+ * alloc.c (pending_malloc_warning, malloc_warning): Add const.
+ * callproc.c (relocate_fd, getenv_internal_1, getenv_internal)
+ (egetenv): Likewise.
+ * doprnt.c (doprnt): Likewise.
+ * editfns.c (set_time_zone_rule, format2): Likewise.
+ * emacs.c (decode_env_path): Likewise.
+ * eval.c (signal_error, error): Likewise.
+ * insdel.c (replace_range_2): Likewise.
+ * keyboard.c (cmd_error_internal): Likewise.
+ * lread.c (isfloat_string, make_symbol, dir_warning): Likewise.
+ * print.c (write_string, write_string_1, print_error_message):
+ Likewise.
+ * vm-limit.c (warn_function, memory_warnings): Likewise.
+ * xdisp.c (message1, message1_nolog, message_with_string)
+ (vmessage, message, message_nolog): Likewise.
+ * emacs.c: Remove duplicate declaration.
+ * keyboard.h: Likewise.
+ * lisp.h: Update prototypes.
+
+ * eval.c: Fix indentation problem.
+
+ * keyboard.c: Include "process.h"
+
+ * eval.c: Remove obsolete noinline declaration.
+ * fns.c: Likewise.
+
+2010-07-11 Ken Raeburn <raeburn@raeburn.org>
+
+ * doprnt.c (doprnt): Take a va_list argument instead of count and
+ pointer.
+ * eval.c (error): Change to a standard-C variadic function.
+ * xdisp.c (vmessage): Rename from message, made static, and
+ changed to take a va_list argument.
+ (message): New variadic wrapper.
+ (message_nolog): Now a variadic function, calling vmessage.
+ * lisp.h: Include stdarg.h for va_list.
+ (doprnt, error, message, message_nolog): Decls updated.
+
+2010-07-11 Eli Zaretskii <eliz@gnu.org>
+
+ * process.c (syms_of_process) <delete-exited-processes>: Define
+ even if !subprocesses.
+ (delete_exited_processes): Ditto.
+
+ * msdos.c (syms_of_msdos) <delete-exited-processes>: Remove DEFVAR.
+ (delete_exited_processes): Don't define.
+
+2010-07-10 Chong Yidong <cyd@stupidchicken.com>
+
+ * frame.c (make_frame): Initialize menu_bar_lines and
+ tool_bar_lines members.
+ (make_initial_frame, make_terminal_frame):
+ Initialize menu_bar_lines using value of menu-bar-mode.
+
+ * msdos.c (IT_set_frame_parameters): Don't set menu-bar-lines.
+
+2010-07-10 Eli Zaretskii <eliz@gnu.org>
+
+ * process.c: Reshuffle #include's. Condition some of the global
+ and static variables on `subprocesses'.
+ (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p):
+ Leave only one implementation.
+ (Fget_buffer_process, Fprocess_inherit_coding_system_flag)
+ (kill_buffer_processes, Flist_system_processes)
+ (Fprocess_attributes, init_process, syms_of_process): Unify the
+ implementations for with subprocesses and without them.
+
+2010-07-09 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xmenu.c (set_frame_menubar): Must realize menubar_widget to get the
+ correct size for Motif.
+ (free_frame_menubar): Call x_set_window_size to update frame size.
+
+ * xfns.c (x_window): Set borderWidth to 0 for pane and
+ EmacsFrame. Frame size calculation is wrong otherwise.
+
+2010-07-09 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbusbind.c (xd_initialize): Add new argument RAISE_ERROR, which
+ allows to suppress errors when polling in Emacs' main loop.
+ (Fdbus_init_bus, Fdbus_get_unique_name, Fdbus_call_method)
+ (Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
+ (Fdbus_method_error_internal, Fdbus_send_signal)
+ (xd_get_dispatch_status, xd_read_message, Fdbus_register_signal)
+ (Fdbus_register_method): Use it. (Bug#6579)
+
+2010-07-08 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * alloc.c: Convert DEFUNs to standard C.
+ * buffer.c:
+ * bytecode.c:
+ * callint.c:
+ * callproc.c:
+ * casefiddle.c:
+ * casetab.c:
+ * category.c:
+ * character.c:
+ * charset.c:
+ * chartab.c:
+ * cmds.c:
+ * coding.c:
+ * composite.c:
+ * data.c:
+ * dbusbind.c:
+ * dired.c:
+ * dispnew.c:
+ * doc.c:
+ * dosfns.c:
+ * editfns.c:
+ * emacs.c:
+ * eval.c:
+ * fileio.c:
+ * filelock.c:
+ * floatfns.c:
+ * fns.c:
+ * font.c:
+ * fontset.c:
+ * frame.c:
+ * fringe.c:
+ * image.c:
+ * indent.c:
+ * insdel.c:
+ * keyboard.c:
+ * keymap.c:
+ * lread.c:
+ * macros.c:
+ * marker.c:
+ * menu.c:
+ * minibuf.c:
+ * msdos.c:
+ * nsfns.m:
+ * nsmenu.m:
+ * nsselect.m:
+ * print.c:
+ * process.c:
+ * search.c:
+ * sound.c:
+ * syntax.c:
+ * term.c:
+ * terminal.c:
+ * textprop.c:
+ * undo.c:
+ * w16select.c:
+ * w32console.c:
+ * w32fns.c:
+ * w32font.c:
+ * w32menu.c:
+ * w32proc.c:
+ * w32select.c:
+ * window.c:
+ * xdisp.c:
+ * xfaces.c:
+ * xfns.c:
+ * xmenu.c:
+ * xselect.c:
+ * xsettings.c:
+ * xsmfns.c: Likewise.
+
+2010-07-08 Eli Zaretskii <eliz@gnu.org>
+
+ * process.c (kbd_is_on_hold, hold_keyboard_input)
+ (unhold_keyboard_input, kbd_on_hold_p) [!subprocesses]: Define.
+
+2010-07-08 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
+ (create_and_show_dialog): Don't call apply_systemfont_to_(menu|dialog)
+ unless USE_LUCID.
+
+2010-07-08 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * xdisp.c (store_mode_line_noprop_char): Remove K&R alternative
+ declaration.
+
+ Clean up include guards.
+ * tparam.c: Remove include guards for config.h, string.h and code
+ that assumes #ifndef emacs.
+ * termcap.c:
+ * unexalpha.c:
+ * sysdep.c:
+ * filemode.c:
+ * filelock.c:
+ * bidi.c: Likewise.
+
+ Remove prefix-args.c
+ * prefix-args.c: Remove file.
+ * autodeps.mk (ALLOBJS): Remove reference to prefix-args.
+ * Makefile.in (temacs${EXEEXT}): Remove references to
+ PRE_EDIT_LDFLAGS and POST_EDIT_LDFLAGS.
+ (mostlyclean): Remove reference to prefix-args.
+ (prefix-args): Remove.
+
+ Simplify cstart_of_data, start_of_code and related code.
+ * mem-limits.h: Remove !emacs and _LIBC conditional code.
+ (start_of_data): Merge into start_of_data function.
+ * sysdep.c (start_of_text): Remove. Move simplified versions of
+ it in the only users: unexaix.c and unexec.c.
+ (read_input_waiting): Remove local declaration of quit_char.
+ (start, etext): Remove declarations.
+ (start_of_data): Merge with the version in mem-limits.h and move
+ to vm-limits.c.
+ * vm-limit.c (start_of_data): Merged and simplified version of the
+ code formerly in mem-limits.h and sysdep.c.
+ * unexec.c (start): New declaration, moved from sysdep.c.
+ (start_of_text): Simplified version of the code formerly in sysdep.c.
+ * unexaix.c (start_of_text): Simplified version of the code
+ formerly in sysdep.c.
+ * m/alpha.h (HAVE_TEXT_START): Remove.
+ (TEXT_START): Move ...
+ * unexalpha.c (TEXT_START): ... here.
+ * s/hpux10-20.h (TEXT_START): Remove.
+ * s/darwin.h (TEXT_START):
+ * m/mips.h (TEXT_START):
+ * m/macppc.h (HAVE_TEXT_START):
+ * m/m68k.h (TEXT_START):
+ * m/iris4d.h (TEXT_START):
+ * m/intel386.h (TEXT_START):
+ * m/ibmrs6000.h (TEXT_START):
+ * m/ia64.h (HAVE_TEXT_START):
+ * s/msdos.h (TEXT_START): Likewise.
+
+2010-07-07 Andreas Schwab <schwab@linux-m68k.org>
+
+ * alloc.c (overrun_check_malloc, overrun_check_realloc)
+ (overrun_check_free, xstrdup, allocate_string)
+ (allocate_string_data, compact_small_strings, Fmake_string)
+ (make_unibyte_string, make_multibyte_string)
+ (make_string_from_bytes, make_specified_string, make_float)
+ (Fcons, allocate_terminal, allocate_frame, make_pure_string)
+ (Fgarbage_collect): Replace bcopy, safe_bcopy, bzero, bcmp by
+ memcpy, memmove, memset, memcmp.
+ * atimer.c (start_atimer, set_alarm): Likewise.
+ * buffer.c (clone_per_buffer_values, report_overlay_modification)
+ (mmap_realloc, init_buffer_once): Likewise.
+ * callint.c (Fcall_interactively): Likewise.
+ * callproc.c (Fcall_process, Fcall_process_region, child_setup)
+ (getenv_internal_1): Likewise.
+ * casefiddle.c (casify_object): Likewise.
+ * ccl.c (ccl_driver): Likewise.
+ * character.c (str_as_multibyte, str_to_multibyte): Likewise.
+ * charset.c (load_charset_map_from_file)
+ (load_charset_map_from_file, load_charset_map_from_vector)
+ (Fdefine_charset_internal): Likewise.
+ * cm.c (Wcm_clear): Likewise.
+ * coding.c (decode_eol, decode_coding_object)
+ (Fset_coding_system_priority, make_subsidiaries): Likewise.
+ * data.c (Faset): Likewise.
+ * dired.c (directory_files_internal, file_name_completion_stat):
+ Likewise.
+ * dispnew.c (new_glyph_matrix, adjust_glyph_matrix)
+ (clear_glyph_row, copy_row_except_pointers)
+ (copy_glyph_row_contents, new_glyph_pool, realloc_glyph_pool)
+ (save_current_matrix, restore_current_matrix)
+ (build_frame_matrix_from_leaf_window, mirrored_line_dance)
+ (mirror_line_dance, scrolling_window): Likewise.
+ * doc.c (Fsnarf_documentation, Fsubstitute_command_keys):
+ Likewise.
+ * doprnt.c (doprnt): Likewise.
+ * editfns.c (Fuser_full_name, make_buffer_string_both)
+ (Fmessage_box, Fformat, Ftranspose_regions): Likewise.
+ * emacs.c (sort_args): Likewise.
+ * eval.c (Fapply, Ffuncall): Likewise.
+ * fileio.c (Ffile_name_directory, make_temp_name)
+ (Fexpand_file_name, search_embedded_absfilename)
+ (Fsubstitute_in_file_name, Ffile_symlink_p, Finsert_file_contents)
+ (auto_save_error): Likewise.
+ * fns.c (Fstring_equal, Fcopy_sequence, concat)
+ (string_to_multibyte, Fstring_as_unibyte, Fstring_as_multibyte)
+ (internal_equal, Fclear_string, larger_vector, copy_hash_table)
+ (Fmake_hash_table): Likewise.
+ * fringe.c (Fdefine_fringe_bitmap): Likewise.
+ * ftfont.c (ftfont_text_extents): Likewise.
+ * getloadavg.c (getloadavg): Likewise.
+ * image.c (define_image_type, make_image, make_image_cache)
+ (x_create_x_image_and_pixmap, xbm_image_p)
+ (w32_create_pixmap_from_bitmap_data, xbm_load, xpm_lookup_color)
+ (xpm_image_p, x_create_bitmap_from_xpm_data, xpm_load)
+ (init_color_table, x_build_heuristic_mask, pbm_image_p, pbm_load)
+ (png_image_p, png_read_from_memory, png_load, jpeg_image_p)
+ (tiff_image_p, tiff_read_from_memory, gif_image_p)
+ (gif_read_from_memory, gif_load, svg_image_p, gs_image_p):
+ Likewise.
+ * indent.c (scan_for_column, compute_motion): Likewise.
+ * insdel.c (gap_left, gap_right, make_gap_smaller, copy_text)
+ (insert_1_both, insert_from_gap, replace_range_2): Likewise.
+ * intervals.c (reproduce_tree, reproduce_tree_obj): Likewise.
+ * keyboard.c (echo_char, save_getcjmp, restore_getcjmp)
+ (kbd_buffer_store_event_hold, apply_modifiers_uncached)
+ (store_user_signal_events, menu_bar_items, tool_bar_items)
+ (process_tool_bar_item, append_tool_bar_item)
+ (read_char_minibuf_menu_prompt, read_key_sequence)
+ (Fread_key_sequence, Fread_key_sequence_vector, Frecent_keys):
+ Likewise.
+ * keymap.c (current_minor_maps, Fdescribe_buffer_bindings):
+ Likewise.
+ * lisp.h (STRING_COPYIN): Likewise.
+ * lread.c (Fload, read1, oblookup): Likewise.
+ * msdos.c (Frecent_doskeys): Likewise.
+ * nsfns.m (Fx_create_frame): Likewise.
+ * nsfont.m (nsfont_open, nsfont_text_extents, ns_glyph_metrics):
+ Likewise.
+ * nsimage.m (EmacsImage-initFromSkipXBM:width:height:)
+ (EmacsImage-initForXPMWithDepth:width:height:flip:length:):
+ Likewise.
+ * nsmenu.m (ns_update_menubar): Likewise.
+ * nsterm.m (ns_draw_fringe_bitmap, ns_term_init): Likewise.
+ * print.c (print_unwind, printchar, strout, print_string)
+ (print_error_message): Likewise.
+ * process.c (conv_lisp_to_sockaddr, set_socket_option)
+ (Fmake_network_process, Fnetwork_interface_list)
+ (Fnetwork_interface_info, read_process_output, Fprocess_send_eof)
+ (init_process): Likewise.
+ * ralloc.c (resize_bloc, r_alloc_sbrk, r_alloc_init): Likewise.
+ * regex.c (init_syntax_once, regex_compile, re_compile_fastmap):
+ Likewise.
+ * scroll.c (do_scrolling, do_direct_scrolling)
+ (scrolling_max_lines_saved): Likewise.
+ * search.c (search_buffer, wordify, Freplace_match): Likewise.
+ * sound.c (wav_init, au_init, Fplay_sound_internal): Likewise.
+ * syntax.c (skip_chars, skip_syntaxes): Likewise.
+ * sysdep.c (child_setup_tty, sys_subshell, emacs_get_tty)
+ (emacs_set_tty): Likewise.
+ * term.c (encode_terminal_code, calculate_costs)
+ (produce_special_glyphs, create_tty_output, init_tty, delete_tty):
+ Likewise.
+ * termcap.c (tgetst1, gobble_line): Likewise.
+ * termhooks.h (EVENT_INIT): Likewise.
+ * tparam.c (tparam1): Likewise.
+ * unexalpha.c (unexec): Likewise.
+ * unexec.c (write_segment): Likewise.
+ * unexmacosx.c (unexec_write_zero): Likewise.
+ * w32fns.c (w32_wnd_proc, Fx_create_frame, x_create_tip_frame)
+ (Fx_file_dialog, Fsystem_move_file_to_trash): Likewise.
+ * w32font.c (w32font_list_family, w32font_text_extents)
+ (w32font_list_internal, w32font_match_internal)
+ (w32font_open_internal, compute_metrics, Fx_select_font):
+ Likewise.
+ * w32menu.c (set_frame_menubar, add_menu_item)
+ (w32_menu_display_help, w32_free_submenu_strings): Likewise.
+ * w32term.c (XCreateGC, w32_initialize_display_info): Likewise.
+ * w32uniscribe.c (uniscribe_list_family): Likewise.
+ * w32xfns.c (get_next_msg, post_msg, prepend_msg): Likewise.
+ * window.c (make_window, replace_window, set_window_buffer)
+ (Fsplit_window): Likewise.
+ * xdisp.c (init_iterator, RECORD_OVERLAY_STRING, reseat_to_string)
+ (add_to_log, message3, x_consider_frame_title)
+ (append_space_for_newline, extend_face_to_end_of_line)
+ (decode_mode_spec_coding, init_glyph_string): Likewise.
+ * xfaces.c (x_create_gc, get_lface_attributes_no_remap)
+ (Finternal_copy_lisp_face, Finternal_merge_in_global_face)
+ (face_attr_equal_p, make_realized_face, make_face_cache)
+ (free_realized_faces, lookup_named_face, smaller_face)
+ (face_with_height, lookup_derived_face)
+ (x_supports_face_attributes_p, Finternal_set_font_selection_order)
+ (Finternal_set_font_selection_order, realize_default_face)
+ (compute_char_face, face_at_buffer_position)
+ (face_for_overlay_string, face_at_string_position, merge_faces):
+ Likewise.
+ * xfns.c (xic_create_fontsetname, Fx_create_frame)
+ (Fx_window_property, x_create_tip_frame)
+ (Fx_backspace_delete_keys_p): Likewise.
+ * xfont.c (xfont_list, xfont_match, xfont_list_family)
+ (xfont_text_extents): Likewise.
+ * xmenu.c (set_frame_menubar, xmenu_show): Likewise.
+ * xrdb.c (magic_file_p, x_get_resource): Likewise.
+ * xselect.c (x_queue_event, x_get_window_property)
+ (receive_incremental_selection): Likewise.
+ * xsmfns.c (x_session_check_input): Likewise.
+ * xterm.c (x_send_scroll_bar_event, SET_SAVED_MENU_EVENT)
+ (handle_one_xevent, x_check_errors, xim_initialize, x_term_init):
+ Likewise.
+ * character.h (BCOPY_SHORT): Removed.
+ * config.in: Regenerate.
+ * dispnew.c (safe_bcopy): Only define as dummy if PROFILING.
+ * emacs.c (main) [PROFILING]: Don't declare
+ dump_opcode_frequencies.
+ * lisp.h (safe_bcopy): Remove declaration.
+ (memset) [!HAVE_MEMSET]: Declare.
+ (memcpy) [!HAVE_MEMCPY]: Likewise.
+ (memmove) [!HAVE_MEMMOVE]: Likewise.
+ (memcmp) [!HAVE_MEMCMP]: Likewise.
+ * s/ms-w32.h (bzero, bcopy, bcmp, GAP_USE_BCOPY)
+ (BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE, HAVE_BCOPY, HAVE_BCMP):
+ Don't define.
+ (HAVE_MEMCMP, HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET): Define.
+ * s/msdos.h (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE)
+ (BCOPY_DOWNWARD_SAFE): Don't define.
+ * sysdep.c (memset) [!HAVE_MEMSET]: Define.
+ (memcpy) [!HAVE_MEMCPY]: Define.
+ (memmove) [!HAVE_MEMMOVE]: Define.
+ (memcmp) [!HAVE_MEMCMP]: Define.
+
+2010-07-07 Jan Djärv <jan.h.d@swipnet.se>
+
+ * process.c (kbd_is_on_hold): New variable.
+ (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p):
+ New functions.
+ (wait_reading_process_output): If kbd_on_hold_p returns non-zero,
+ select on empty input mask.
+ (init_process): Initialize kbd_is_on_hold to 0.
+
+ * process.h (hold_keyboard_input, unhold_keyboard_input)
+ (kbd_on_hold_p): Declare.
+
+ * keyboard.c (input_available_signal): Declare.
+ (kbd_buffer_nr_stored): New function.
+ (kbd_buffer_store_event_hold): If kbd_buffer_nr_stored returns
+ more than KBD_BUFFER_SIZE/2, stop reding input (Bug#6571).
+ (kbd_buffer_get_event): If input is suspended and kbd_buffer_nr_stored
+ returns less than KBD_BUFFER_SIZE/4, resume reding input (Bug#6571).
+ (tty_read_avail_input): If input is on hold, return.
+ Don't read more that free slots in kbd_buffer (Bug#6571).
+
+2010-07-07 Eli Zaretskii <eliz@gnu.org>
+
+ * msdos.h:
+ * msdos.c:
+ * dosfns.c:
+ * w16select.c: Convert function definitions to ANSI C.
+
+ * msdos.h (ctrl_break_func, install_ctrl_break_check):
+ Remove unused prototypes.
+
+2010-07-07 Juanma Barranquero <lekktu@gmail.com>
+
+ * coding.c, sysdep.c: Convert some more functions to standard C.
+
+2010-07-07 Juanma Barranquero <lekktu@gmail.com>
+
+ * coding.c (decode_coding_gap, encode_coding_gap, decode_coding_object)
+ (encode_coding_object): Use SPECPDL_INDEX.
+ (syms_of_coding): Use DOS_NT.
+
+2010-07-07 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * intervals.h (interval): Use EMACS_UINT instead of unsigned EMACS_INT.
+
+ Make the function member of Lisp_Subr use standard C prototypes.
+ * lisp.h (struct Lisp_Subr): Use a union for the function member.
+ (DECL_ALIGN): Add a cast for the function.
+ * eval.c (Feval, Ffuncall): Use the proper type for each type
+ function call.
+
+2010-07-06 Chong Yidong <cyd@stupidchicken.com>
+
+ * fringe.c (draw_fringe_bitmap_1): Use lookup_named_face to get
+ fringe face id, so face-remapping-alist works (Bug#6091).
+
+2010-07-06 Juanma Barranquero <lekktu@gmail.com>
+
+ * w32.c, w32console.c, w32fns.c, w32font.c, w32heap.c, w32inevt.c
+ * w32menu.c, w32proc.c, w32reg.c, w32select.c, w32term.c
+ * w32uniscribe.c, w32xfns.c: Convert function definitions to standard C.
+
+2010-07-06 Andreas Schwab <schwab@linux-m68k.org>
+
+ * xterm.c (x_get_keysym_name): Change type of parameter to int.
+ * lisp.h: Declare x_get_keysym_name.
+ * keyboard.c (modify_event_symbol): Don't declare
+ x_get_keysym_name here.
+
+2010-07-06 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * ecrt0.c: Revert conversion to standard C.
+
+2010-07-05 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * vm-limit.c (memory_warnings):
+ * keyboard.c (modify_event_symbol):
+ * floatfns.c (rounding_driver, ceiling2, floor2, truncate2)
+ (round2, emacs_rint):
+ * process.c (send_process, old_sigpipe): Convert function
+ definitions and declarations to standard C.
+
+2010-07-05 Juanma Barranquero <lekktu@gmail.com>
+
+ * buffer.c, cm.c, eval.c, keyboard.c, process.c, term.c, vm-limit.c,
+ * xdisp.c: Convert function definitions to standard C.
+
+ * cm.c (cmputc): Arg C is now int, not char.
+ * process.c (Fmake_network_process): Cast sockaddr_in* to sockaddr*.
+
+2010-07-05 James Cloos <cloos@jhcloos.com>
+
+ * xterm.h (Xatom_net_wm_name, Xatom_net_wm_icon_name): New.
+
+ * xterm.c (x_term_init): Intern the _NET_WM_NAME and
+ _NET_WM_ICON_NAME atoms.
+
+ * xfns.c (x_set_name_internal): Set the EWMH _NET_WM_NAME
+ and _NET_WM_ICON_NAME properties, too, matching what is
+ done in the Gtk+ case.
+
+2010-07-05 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (XTring_bell, XTset_terminal_window): Fix wrong prototype.
+
+ * xsmfns.c (SSDATA): New macro.
+ (smc_save_yourself_CB, x_session_initialize): Use SSDATA for strings
+ passed to strlen/strcpy/strcat.
+ (create_client_leader_window): Surround with #ifndef USE_GTK.
+ Cast 7:th arg to XChangeProperty to (unsigned char *).
+
+ * xsettings.c (something_changedCB, parse_settings)
+ (apply_xft_settings): Reformat prototype.
+ (something_changedCB, init_gconf): Remove unused variable i.
+ (read_settings): Remove unused variable long_len.
+
+ * gtkutil.c (xg_get_pixbuf_from_pix_and_mask)
+ (xg_get_image_for_pixmap, create_dialog)
+ (xg_get_file_with_selection, xg_get_file_name, update_cl_data)
+ (menuitem_highlight_callback, make_menu_item)
+ (xg_create_one_menuitem, create_menus, xg_update_menu_item)
+ (xg_create_scroll_bar, xg_update_scrollbar_pos)
+ (xg_set_toolkit_scroll_bar_thumb, xg_tool_bar_button_cb)
+ (xg_tool_bar_proxy_help_callback, xg_tool_bar_detach_callback)
+ (xg_tool_bar_attach_callback, xg_tool_bar_help_callback)
+ (xg_tool_bar_item_expose_callback): Reformat prototype.
+ (xg_update_menubar): GList *group => GSList *group.
+ (xg_modify_menubar_widgets): Initialize witem to 0, check witem != 0
+ before use.
+ (update_frame_tool_bar): 4:th param to xg_get_image_for_pixmap changed
+ to GTK_IMAGE (wimage).
+
+2010-07-05 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * atimer.c: Use "" instead of <> for local includes for
+ consistency with the rest of the code.
+
+ * xsmfns.c (smc_save_yourself_CB, smc_error_handler):
+ * xrdb.c (get_system_name):
+ * window.c (shrink_windows):
+ * syntax.c (forw_comment):
+ * scroll.c (calculate_scrolling, calculate_direct_scrolling)
+ (ins_del_costs):
+ * mem-limits.h (start_of_data):
+ * lread.c (readevalloop):
+ * gtkutil.c (xg_dialog_response_cb, xg_get_file_with_chooser)
+ (xg_get_file_with_selection, xg_update_menubar, xg_update_submenu):
+ * frame.c (x_get_focus_frame):
+ * floatfns.c (fmod_float):
+ * fileio.c (choose_write_coding_system):
+ * emacs.c (fatal_error_signal, init_cmdargs, argmatch)
+ (malloc_initialize_hook, sort_args, synchronize_locale):
+ * doprnt.c (doprnt):
+ * dired.c (compile_pattern):
+ * data.c (fmod_float):
+ * chartab.c (map_sub_char_table, map_sub_char_table_for_charset)
+ (map_char_table_for_charset):
+ * charset.c (define_charset_internal):
+ * alloc.c (Fgarbage_collect): Convert declarations or definitions
+ to standard C.
+
+2010-07-04 Tetsurou Okazaki <okazaki@be.to> (tiny change)
+ Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * lread.c (read1): Fix up last change to not mess up `c'.
+
+2010-07-04 Juanma Barranquero <lekktu@gmail.com>
+
+ * strftime.c: Revert conversion to standard C (2010-07-04T07:50:25Z!dann@ics.uci.edu).
+
+2010-07-04 Juanma Barranquero <lekktu@gmail.com>
+
+ Fix prototypes.
+
+ * atimer.c (start_atimer): Use EMACS_TIME, not struct timeval.
+ * dired.c (file_name_completion_stat): Use DIRENTRY, not struct dirent.
+ * fileio.c (read_non_regular, read_non_regular_quit): Add Lisp_Object
+ arg, as required by internal_condition_case_1.
+ * print.c (strout): Use const char* for arg PTR.
+ * regex.c (bcmp_translate): Use RE_TRANSLATE_TYPE, not Lisp_Object.
+ (analyse_first): Fix "const const".
+ * sysdep.c (set_file_times): Use EMACS_TIME, not struct timeval.
+ * unexelf.c (round_up, find_section): Use ElfW macro for arguments.
+ * xgselect.c (xg_select): Use SELECT_TYPE, EMACS_TIME.
+
+2010-07-04 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * alloc.c: Convert function definitions to standard C.
+ * atimer.c:
+ * bidi.c:
+ * bytecode.c:
+ * callint.c:
+ * callproc.c:
+ * casefiddle.c:
+ * casetab.c:
+ * category.c:
+ * ccl.c:
+ * character.c:
+ * charset.c:
+ * chartab.c:
+ * cmds.c:
+ * coding.c:
+ * composite.c:
+ * data.c:
+ * dbusbind.c:
+ * dired.c:
+ * dispnew.c:
+ * doc.c:
+ * doprnt.c:
+ * ecrt0.c:
+ * editfns.c:
+ * fileio.c:
+ * filelock.c:
+ * filemode.c:
+ * fns.c:
+ * font.c:
+ * fontset.c:
+ * frame.c:
+ * fringe.c:
+ * ftfont.c:
+ * ftxfont.c:
+ * gtkutil.c:
+ * indent.c:
+ * insdel.c:
+ * intervals.c:
+ * keymap.c:
+ * lread.c:
+ * macros.c:
+ * marker.c:
+ * md5.c:
+ * menu.c:
+ * minibuf.c:
+ * prefix-args.c:
+ * print.c:
+ * ralloc.c:
+ * regex.c:
+ * region-cache.c:
+ * scroll.c:
+ * search.c:
+ * sound.c:
+ * strftime.c:
+ * syntax.c:
+ * sysdep.c:
+ * termcap.c:
+ * terminal.c:
+ * terminfo.c:
+ * textprop.c:
+ * tparam.c:
+ * undo.c:
+ * unexelf.c:
+ * window.c:
+ * xfaces.c:
+ * xfns.c:
+ * xfont.c:
+ * xftfont.c:
+ * xgselect.c:
+ * xmenu.c:
+ * xrdb.c:
+ * xselect.c:
+ * xsettings.c:
+ * xsmfns.c:
+ * xterm.c: Likewise.
+
+2010-07-03 Eli Zaretskii <eliz@gnu.org>
+
+ * msdos.c (IT_set_frame_parameters): Fix setting of colors in
+ frames other than the initial one. Fix reversal of colors when
+ `reverse' is specified in the frame parameters.
+ Call update_face_from_frame_parameter instead of
+ internal-set-lisp-face-attribute. Initialize screen colors from
+ initial_screen_colors[] when f->default_face_done_p is zero,
+ instead of depending on being called with default-frame-alist as
+ the alist argument.
+
+ * xfaces.c (update_face_from_frame_parameter): Move out of
+ HAVE_WINDOW_SYSTEM portion. Condition window-system only parts
+ with HAVE_WINDOW_SYSTEM.
+
+ * msdos.c (IT_set_frame_parameters): Set menu-bar-lines according
+ to menu-bar-mode, if not set in the frame parameters or in
+ default-frame-alist.
+
+ * w32console.c (sys_tputs): Adjust argument list to prototype in
+ term.c.
+
+2010-07-03 Juanma Barranquero <lekktu@gmail.com>
+
+ * lisp.h (memory_warnings): Fix prototype.
+
+ * cm.h (evalcost): Fix prototype.
+
+ * cm.c (evalcost): Fix arg type.
+
+2010-07-02 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * term.c (term_clear_mouse_face, Fidentity):
+ * syssignal.h (signal_handler_t):
+ * lisp.h (memory_warnings):
+ * coding.h (preferred_coding_system):
+ * cm.h (evalcost):
+ * blockinput.h (reinvoke_input_signal): Convert to standard C prototypes.
+
+2010-07-02 Eli Zaretskii <eliz@gnu.org>
+
+ * dosfns.h (msdos_stdcolor_idx, msdos_stdcolor_name): Remove P_
+ from prototypes.
+
+ * msdos.h (load_pixmap): Don't define away.
+
+2010-07-02 Jan Djärv <jan.h.d@swipnet.se>
+
+ * lisp.h:
+ * atimer.h: Remove define for P_.
+
+ * alloc.c: Remove __P and P_ from .c and .m files.
+ * atimer.c:
+ * buffer.c:
+ * callint.c:
+ * category.c:
+ * charset.c:
+ * chartab.c:
+ * cm.c:
+ * coding.c:
+ * composite.c:
+ * data.c:
+ * dired.c:
+ * dispnew.c:
+ * doc.c:
+ * editfns.c:
+ * emacs.c:
+ * eval.c:
+ * fileio.c:
+ * filelock.c:
+ * fns.c:
+ * font.c:
+ * fontset.c:
+ * frame.c:
+ * ftfont.c:
+ * ftxfont.c:
+ * gmalloc.c:
+ * gtkutil.c:
+ * image.c:
+ * indent.c:
+ * intervals.c:
+ * keyboard.c:
+ * keymap.c:
+ * lread.c:
+ * marker.c:
+ * menu.c:
+ * minibuf.c:
+ * print.c:
+ * process.c:
+ * scroll.c:
+ * search.c:
+ * sound.c:
+ * strftime.c:
+ * syntax.c:
+ * sysdep.c:
+ * term.c:
+ * terminal.c:
+ * textprop.c:
+ * unexalpha.c:
+ * w32console.c:
+ * w32fns.c:
+ * w32font.c:
+ * w32menu.c:
+ * w32term.c:
+ * w32uniscribe.c:
+ * window.c:
+ * xdisp.c:
+ * xfaces.c:
+ * xfns.c:
+ * xfont.c:
+ * xftfont.c:
+ * xmenu.c:
+ * xselect.c:
+ * xterm.c: Likewise.
+
+ Remove P_ and __P macros.
+ * atimer.h: Remove P_ and __P macros.
+ * buffer.h:
+ * category.h:
+ * ccl.h:
+ * character.h:
+ * charset.h:
+ * cm.h:
+ * coding.h:
+ * composite.h:
+ * dispextern.h:
+ * disptab.h:
+ * dosfns.h:
+ * font.h:
+ * fontset.h:
+ * frame.h:
+ * gtkutil.h:
+ * indent.h:
+ * intervals.h:
+ * keyboard.h:
+ * keymap.h:
+ * lisp.h:
+ * macros.h:
+ * md5.h:
+ * menu.h:
+ * msdos.h:
+ * nsterm.h:
+ * puresize.h:
+ * region-cache.h:
+ * syntax.h:
+ * syssignal.h:
+ * systime.h:
+ * termhooks.h:
+ * w32font.h:
+ * w32term.h:
+ * widget.h:
+ * window.h:
+ * xgselect.h:
+ * xsettings.h:
+ * xterm.h: Likewise.
+
+2010-07-02 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * lisp.h: Document that USE_LISP_UNION_TYPE is now enabled using autoconf.
+
+ Cleanup old code.
+ * dired.c (BSD4_3): Remove all uses, redundant with BSD4_2.
+ * syssignal.h: Remove code for Lynx, not supported anymore.
+ * vm-limit.c: Remove unused code the depends on emacs not being
+ defined and NO_LIM_DATA being defined.
+ * mem-limits.h: Remove dead code.
+
+2010-07-01 Jan Djärv <jan.h.d@swipnet.se>
+
+ * window.c (Fwindow_absolute_pixel_edges): Doc fix.
+
+ * window.c (calc_absolute_offset, Fwindow_absolute_pixel_edges)
+ (Fwindow_inside_absolute_pixel_edges): New functions (bug#5721).
+
+ * nsfns.m (compute_tip_xy): Do not convert coordinates from frame
+ parameters, they are already absolute.
+
+ * nsterm.m (x_set_window_size, initFrameFromEmacs):
+ Rename FRAME_NS_TOOLBAR_HEIGHT to FRAME_TOOLBAR_HEIGHT.
+
+ * nsterm.h (FRAME_NS_TOOLBAR_HEIGHT): Rename to FRAME_TOOLBAR_HEIGHT.
+
+ * nsmenu.m (update_frame_tool_bar, free_frame_tool_bar):
+ Update FRAME_TOOLBAR_HEIGHT.
+
+ * nsmenu.m (free_frame_tool_bar, update_frame_tool_bar):
+ Add BLOCK/UNBLOCK_INPUT so asserts don't trigger.
+
+2010-06-30 Chong Yidong <cyd@stupidchicken.com>
+
+ * frame.c (get_future_frame_param, Fmake_terminal_frame):
+ Don't check default-frame-alist.
+
+2010-06-30 Andreas Schwab <schwab@linux-m68k.org>
+
+ * process.c (create_process): Avoid using invalid file descriptors.
+
+ * callproc.c (child_setup): Avoid closing a file descriptor twice.
+
+2010-06-30 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
+ Improve documentation. Return font regardless of use_system_font.
+ (syms_of_xsettings): Improve documentation for font-use-system-font.
+
+2010-07-10 Chong Yidong <cyd@stupidchicken.com>
+
+ * xfaces.c (realize_face): Garbage the frame if a face is removed
+ (Bug#6593).
+
+2010-07-05 Andreas Schwab <schwab@linux-m68k.org>
+
+ * keyboard.c: Remove duplicate <setjmp.h>.
+ (read_key_sequence): Remove volatile qualifiers.
+
+2010-07-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * dispextern.h (FRINGE_HEIGHT_BITS): New define.
+ (struct glyph_row): New members left_fringe_offset and
+ right_fringe_offset.
+
+ * xterm.c (x_draw_fringe_bitmap): Don't clip bottom aligned bitmap
+ specially.
+ * w32term.c (w32_draw_fringe_bitmap): Likewise.
+ * nsterm.m (ns_draw_fringe_bitmap): Likewise.
+
+ * fringe.c (draw_fringe_bitmap_1): Don't clip bitmap here.
+ Take account of bitmap offset.
+ (draw_window_fringes): Take account of window vscroll.
+ (update_window_fringes): Likewise. Extend top-aligned top indicator
+ or bottom-aligned bottom indicator to adjacent rows if it doesn't fit
+ in one row. Don't set redraw_fringe_bitmaps_p outside row comparison.
+ Set left_fringe_offset and right_fringe_offset (Bug#5634, Bug#6325).
+
+2010-07-04 Juanma Barranquero <lekktu@gmail.com>
+
+ * w32fns.c (Qtooltip): Declare.
+ Suggested by Andy Moreton <andrewjmoreton@gmail.com>.
+
+2010-07-03 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid
+ grab on just Press (Bug#6499).
+
+2010-07-02 Chong Yidong <cyd@stupidchicken.com>
+
+ * frame.c (Qtooltip): New var.
+ (delete_frame): Use it. Fix faulty if statement. Don't update
+ mode line for tooltip frames. Suggested by Martin Rudalics.
+
+ * xfns.c (x_create_tip_frame):
+ * w32fns.c (x_create_tip_frame): Use it.
+
+2010-06-17 Naohiro Aota <naota@elisp.net> (tiny change)
+
+ * xftfont.c (xftfont_open): Check font width one by one also when
+ spacing is dual.
+
+ * ftfont.c (ftfont_open): Ditto.
+
+2010-06-30 Glenn Morris <rgm@gnu.org>
+
+ * s/sol2-6.h (INHIBIT_X11R6_XIM): Remove, handled by configure now.
+
+ * Makefile.in (CANNOT_DUMP): Update for configure name change.
+
+ * s/freebsd.h (USE_MMAP_FOR_BUFFERS):
+ * s/irix6-5.h (USE_MMAP_FOR_BUFFERS):
+ * s/darwin.h (SYSTEM_MALLOC):
+ * s/sol2-10.h (SYSTEM_MALLOC): Move to configure.
+
+2010-06-29 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsfns.m: extern declare Vmenu_bar_mode, Vtool_bar_mode.
+ (ns_get_screen): Don't assign integer to f.
+ (Fx_display_color_cells): Declarations before statements.
+
+2010-06-28 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xfns.c (x_default_font_parameter): Remove got_from_system
+ (Bug#6526).
+
+ * xterm.h (gtk_widget_get_window, gtk_widget_get_mapped)
+ (gtk_adjustment_get_page_size, gtk_adjustment_get_upper):
+ New defines based on what configure finds.
+
+ * xterm.c (XTflash): Use gtk_widget_get_window.
+ (xg_scroll_callback): Use gtk_adjustment_get_upper and
+ gtk_adjustment_get_page_size.
+ (handle_one_xevent): Use gtk_widget_get_mapped.
+ (x_term_init): Remove HAVE_GTK_MULTIDISPLAY and associated error
+ messages.
+
+ * xmenu.c (create_and_show_popup_menu): Call gtk_widget_get_mapped.
+
+ * gtkutil.h: Replace HAVE_GTK_FILE_BOTH with
+ HAVE_GTK_FILE_SELECTION_NEW.
+
+ * gtkutil.c (xg_display_open, xg_display_close):
+ Remove HAVE_GTK_MULTIDISPLAY, it is always defined.
+ (xg_display_open): Return type is void.
+ (gtk_widget_set_has_window)
+ (gtk_dialog_get_action_area, gtk_dialog_get_content_area)
+ (gtk_widget_get_sensitive, gtk_adjustment_set_page_size)
+ (gtk_adjustment_set_page_increment)
+ (gtk_adjustment_get_step_increment): #define these if not found
+ by configure.
+ (remove_submenu): New define based on Gtk+ version.
+ (xg_set_cursor, xg_frame_resized, xg_event_is_for_scrollbar):
+ Use gtk_widget_get_window.
+ (xg_frame_resized, xg_update_frame_menubar): Use gtk_widget_get_mapped.
+ (xg_create_frame_widgets): Use gtk_widget_set_has_window.
+ (create_dialog): Use gtk_dialog_get_action_area and
+ gtk_dialog_get_content_area.
+ (xg_uses_old_file_dialog, xg_get_file_name): Remove HAVE_GTK_FILE_BOTH
+ and HAVE_GTK_FILE_CHOOSER_DIALOG_NEW. File chooser is always
+ available, so checking for HAVE_GTK_FILE_SELECTION_NEW is enough.
+ (xg_update_menubar, xg_update_submenu, xg_show_toolbar_item):
+ Use g_object_ref and g_object_unref.
+ (xg_update_menu_item, xg_tool_bar_menu_proxy):
+ Use gtk_widget_get_sensitive.
+ (xg_update_submenu): Use remove_submenu.
+ (xg_update_scrollbar_pos): Don't use GtkFixedChild, use child
+ properties instead to get old x and y position.
+ (xg_set_toolkit_scroll_bar_thumb): Use gtk_adjustment_get_page_size,
+ gtk_adjustment_get_step_increment, gtk_adjustment_set_page_size,
+ gtk_adjustment_set_step_increment and gtk_adjustment_set_page_increment.
+ (xg_get_tool_bar_widgets): New function.
+ (xg_tool_bar_menu_proxy, xg_show_toolbar_item)
+ (update_frame_tool_bar): Call xg_get_tool_bar_widgets.
+ (toolbar_set_orientation): New #define based on if configure
+ finds gtk_orientable_set_orientation.
+ (xg_create_tool_bar): Call toolbar_set_orientation.
+ (xg_make_tool_item, xg_show_toolbar_item): Call gtk_box_pack_start
+ instead of gtk_box_pack_start_defaults.
+
+2010-06-28 Chong Yidong <cyd@stupidchicken.com>
+
+ * cmds.c (Fdelete_backward_char): Move into Lisp.
+
+2010-06-27 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * s/freebsd.h (BSD4_2): Remove redundant definition.
+ bsd-common.h defines it already.
+
+2010-06-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * xfns.c (Fx_create_frame): Don't consult X resouces when setting
+ menu-bar-lines and tool-bar-lines. Use menu-bar-mode and
+ tool-bar-mode, which are now set using these X resources at
+ startup, to determine the defaults (Bug#2249).
+
+ * w32fns.c (Fx_create_frame):
+ * nsfns.m (Fx_create_frame): Likewise.
+
+ * frame.c (Vmenu_bar_mode, Vtool_bar_mode): New vars.
+
+2010-06-24 Juanma Barranquero <lekktu@gmail.com>
+
+ * gtkutil.c (xg_update_scrollbar_pos):
+ Avoid C99 mid-block variable declaration.
+
+2010-06-22 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (x_scroll_bar_create): Remove call to xg_show_scroll_bar.
+
+ * gtkutil.h (xg_show_scroll_bar): Remove.
+
+ * gtkutil.c (xg_update_scrollbar_pos): Show/hide scroll bar as needed
+ if height is less than scroll bar min size.
+ (xg_show_scroll_bar): Remove, show moved to xg_update_scrollbar_pos.
+
+ * xfns.c (x_default_font_parameter): Try to open font from system
+ before using it (bug#6478). Rename got_from_gconf to got_from_system.
+
+2010-06-22 Keith Packard <keithp@keithp.com> (tiny change)
+
+ * font.c (font_parse_fcname): Allow . for sizes like 7.5 (bug#6437).
+
+2010-06-20 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (try_scrolling): When scroll-conservatively is set to
+ most-positive-fixnum, be extra accurate when scrolling window
+ start, to avoid missing the cursor line.
+
+2010-06-19 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (try_scrolling): Compute the limit for searching point
+ in forward scroll from scroll_max, instead of an arbitrary limit
+ of 10 screen lines.
+ See http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00766.html
+ and
+ http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00773.html
+ for details.
+
+2010-06-16 Glenn Morris <rgm@gnu.org>
+
+ * editfns.c (Fbyte_to_string): Pacify compiler.
+
+2010-06-16 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * lread.c (read1): Phase out old-style backquotes a bit more.
+
+2010-06-12 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in ($(BLD)/bidi.$(O)): Depend on biditype.h and
+ bidimirror.h.
+
+ * deps.mk (bidi.o): Depend on biditype.h and bidimirror.h.
+
+ * bidi.c (bidi_initialize): Remove explicit initialization of
+ bidi_type_table; include biditype.h instead. Don't support
+ entries whose second codepoint is zero. Initialize bidi_mirror_table.
+ (bidi_mirror_char): Use bidi_mirror_table.
+
+ * biditype.h: New file.
+
+ * bidimirror.h: New file.
+
+ * window.c (syms_of_window): Doc fix (bug#6409).
+
+2010-06-12 Romain Francoise <romain@orebokech.com>
+
+ * Makefile.in (lisp, shortlisp): Use new location of vc-hooks and
+ ediff-hook.
+
+2010-06-10 Glenn Morris <rgm@gnu.org>
+
+ * editfns.c (Fbyte_to_string): Pacify compiler.
+
+ * m/ibms390x.h: Rather than duplicating ibms390.h, just include it.
+
+2010-06-26 Andreas Schwab <schwab@linux-m68k.org>
+
+ * alloc.c (Fmake_byte_code): Don't access undefined argument
+ (Bug#6517).
+
+2010-06-25 Chong Yidong <cyd@stupidchicken.com>
+
+ * xdisp.c (next_element_from_image): Ensure that after-strings are
+ read the next time we hit handle_stop (Bug#1336).
+
+2010-06-23 Andreas Schwab <schwab@linux-m68k.org>
+
+ * lread.c (read1): Signal error if #s is not followed by paren.
+
+2010-06-19 Chong Yidong <cyd@stupidchicken.com>
+
+ * image.c (free_image): Mark frame as garbaged (Bug#6426).
+
+ * keymap.c (Fdefine_key): Doc fix (Bug#6460).
+
+2010-06-15 Glenn Morris <rgm@gnu.org>
+
+ * editfns.c (Fbyte_to_string): Pacify compiler.
+
+2010-06-09 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * dbusbind.c (xd_append_arg): Don't "make-unibyte" the string.
+ Check `object's type before accessing its guts.
+
+2010-06-09 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * s/usg5-4.h: Fix previous change.
+ Suggested by Lawrence Mitchell <wence@gmx.li>
+
+2010-06-08 Andreas Schwab <schwab@linux-m68k.org>
+
+ * minibuf.c (Fall_completions): Add more checks.
+
+2010-06-08 Juanma Barranquero <lekktu@gmail.com>
+
+ * minibuf.c (Fall_completions): Check COLLECTION's size (bug#6378).
+
+2010-06-08 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * lread.c (X_OK): Remove, unused.
+
+ * dispnew.c: Remove obsolete comment.
+
+ Remove INCLUDED_FCNTL.
+ * xterm.c (INCLUDED_FCNTL):
+ * callproc.c (INCLUDED_FCNTL):
+ * alloc.c (INCLUDED_FCNTL):
+ * systty.h (INCLUDED_FCNTL): Remove all uses, not needed anymore.
+ (emacs_get_tty, emacs_set_tty): Declare unconditionally.
+
+2010-06-07 Martin Rudalics <rudalics@gmx.at>
+
+ * window.c (Fselect_window): Move `record_buffer' up to the
+ beginning of this function, so the buffer gets recorded
+ even if the selected window does not change.
+ http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00137.html
+
+2010-06-07 Juanma Barranquero <lekktu@gmail.com>
+
+ * cmds.c (Fforward_char, Fbackward_char): Fix typos in docstrings.
+ (Fforward_line, Fbeginning_of_line): Reflow docstrings.
+
+2010-06-06 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Remove BSTRING related code, all platforms define it.
+ * s/usg5-4.h (BSTRING): Remove definition.
+ * s/template.h (BSTRING):
+ * s/msdos.h (BSTRING):
+ * s/ms-w32.h (BSTRING):
+ * s/hpux10-20.h (BSTRING):
+ * s/gnu-linux.h (BSTRING):
+ * s/darwin.h (BSTRING):
+ * s/cygwin.h (BSTRING):
+ * s/bsd-common.h (BSTRING):
+ * s/aix4-2.h (BSTRING): Likewise.
+ * sysdep.c: Remove code depending on BSTRING not being defined.
+
+2010-06-05 Juanma Barranquero <lekktu@gmail.com>
+
+ Remove obsolete macro BASE_LEADING_CODE_P.
+ * character.h (BASE_LEADING_CODE_P): Remove.
+ * regex.c [!emacs] (BASE_LEADING_CODE_P): Remove.
+ * buffer.c (Fset_buffer_multibyte):
+ * indent.c (scan_for_column, compute_motion):
+ * insdel.c (count_combining_before, count_combining_after):
+ Use LEADING_CODE_P instead of BASE_LEADING_CODE_P.
+
+2010-06-04 Juanma Barranquero <lekktu@gmail.com>
+
+ Turn `directory-sep-char' into a noop.
+
+ * lisp.h [WINDOWSNT] (Vdirectory_sep_char): Don't declare.
+ (DIRECTORY_SEP): Define unconditionally.
+
+ * s/ms-w32.h (DIRECTORY_SEP): Remove.
+
+ * emacs.c (decode_env_path): Don't check DIRECTORY_SEP,
+ call dostounix_filename directly.
+
+ * fileio.c (CORRECT_DIR_SEPS): Remove.
+ (Ffile_name_directory, directory_file_name, Fexpand_file_name)
+ (Fsubstitute_in_file_name): Use dostounix_filename instead.
+ (file_name_as_directory): Use dostounix_filename, DIRECTORY_SEP.
+ (syms_of_fileio) <directory-sep-char>: Move to subr.el.
+
+ * w32proc.c (CORRECT_DIR_SEPS): Remove.
+ (Fw32_short_file_name, Fw32_long_file_name): Use dostounix_filename.
+
+2010-06-03 Andreas Schwab <schwab@linux-m68k.org>
+
+ * process.c (conv_lisp_to_sockaddr): Fix conversion of IPv4 address.
+ (Bug#6346)
+
+2010-06-03 Juanma Barranquero <lekktu@gmail.com>
+
+ * ccl.c (Fccl_program_p): Fix typo in docstring.
+
+2010-06-03 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Move UNEXEC definition to autoconf.
+ * s/usg5-4.h (UNEXEC): Remove, move to configure.in.
+ * s/sol2-10.h (UNEXEC):
+ * s/irix6-5.h (UNEXEC):
+ * s/hpux10-20.h (UNEXEC):
+ * s/gnu-linux.h (UNEXEC):
+ * s/darwin.h (UNEXEC):
+ * s/cygwin.h (UNEXEC):
+ * s/bsd-common.h (UNEXEC):
+ * s/aix4-2.h (UNEXEC):
+ * m/alpha.h (UNEXEC): Likewise.
+ * Makefile.in (UNEXEC_OBJ): Define using @UNEXEC_OBJ@.
+
+2010-06-03 Juanma Barranquero <lekktu@gmail.com>
+
+ Remove obsolete pre-unicode2 macros.
+ * character.h (MULTIBYTE_FORM_LENGTH, PARSE_MULTIBYTE_SEQ): Remove.
+ * composite.c (composition_reseat_it):
+ * data.c (Faset):
+ * fns.c (Ffillarray):
+ * regex.c (re_search_2): Use BYTES_BY_CHAR_HEAD.
+ [!emacs] (BYTES_BY_CHAR_HEAD): Define instead of MULTIBYTE_FORM_LENGTH.
+
+2010-06-03 Juri Linkov <juri@jurta.org>
+
+ * buffer.c (Fother_buffer): Add CHECK_FRAME.
+ (Fswitch_to_buffer): Remove unused variable `err'.
+
+2010-06-03 Glenn Morris <rgm@gnu.org>
+
+ * m/template.h (NO_SOCK_SIGIO): Remove, no longer used.
+
+ * m/hp800.h (alloca) [__NetBSD__ && __GNUC__]: No need to define it,
+ now that AH_BOTTOM does it.
+
+ * m/hp800.h (HAVE_ALLOCA):
+ * m/ibms390x.h (HAVE_ALLOCA): Do not define, no longer needed.
+
+ * m/ia64.h, s/gnu-linux.h, s/gnu.h, s/netbsd.h, s/usg5-4.h:
+ Remove NOT_C_CODE tests, it is always true now.
+
+2010-06-02 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Fix config.h includes.
+ * xsettings.c:
+ * xgselect.c:
+ * nsterm.m:
+ * nsselect.m:
+ * nsimage.m:
+ * nsfont.m:
+ * nsfns.m:
+ * dbusbind.c: Use #include <config.h> instead of "config.h" as all
+ other files do.
+
+ * gmalloc.c: Remove BROKEN_PROTOTYPES reference, unused.
+
+ * s/sol2-6.h: Remove obsolete comments.
+
+ Remove unnecessary alloca.h includes.
+ * keymap.c: Do not include alloca.h, config.h does that.
+ * sysdep.c: Likewise. Do not define fwrite, not used.
+
+2010-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * sysdep.c (child_setup_tty): Move the non-canonical initialization to
+ the HAVE_TERMIO where it belongs (bug#6149).
+
+2010-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keymap.c (Fwhere_is_internal): Fix handling of remapping (in thread
+ of bug#6305).
+
+2010-05-30 Eli Zaretskii <eliz@gnu.org>
+
+ * bidi.c (bidi_move_to_visually_next): Make sure the sentinel
+ state is always cached (bug#6306).
+
+2010-05-29 Eli Zaretskii <eliz@gnu.org>
+
+ Fix cursor motion in bidi-reordered continued lines.
+ * xdisp.c (try_cursor_movement): Backup to non-continuation line
+ only after finding point's row. Fix the logic. Rewrite the loop
+ over continuation lines in bidi-reordered buffers.
+ Return CURSOR_MOVEMENT_MUST_SCROLL upon failure to find a suitable row,
+ rather than CURSOR_MOVEMENT_CANNOT_BE_USED.
+
+2010-05-28 Michael Albinus <michael.albinus@gmx.de>
+
+ * fileio.c (Fdelete_file): Pass TRASH arg to handler call.
+
+2010-05-28 Kenichi Handa <handa@m17n.org>
+
+ * font.c (font_delete_unmatched): Check Vface_ignored_fonts.
+ Don't sheck SPEC if it is nil.
+ (font_list_entities): Call font_delete_unmatched if
+ Vface_ignored_fonts is non-nil. (Bug#6287)
+
+2010-05-28 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (LIBES): Remove $LOADLIBES, it is never set.
+
+2010-05-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * fileio.c (Fdelete_file): Change meaning of optional arg to mean
+ whether to trash.
+ (internal_delete_file, Frename_file): Callers changed.
+ (delete_by_moving_to_trash): Doc fix.
+ (Fdelete_directory_internal): Don't move to trash.
+
+ * callproc.c (delete_temp_file):
+ * buffer.c (Fkill_buffer): Callers changed.
+
+ * lisp.h: Update prototype.
+
+2010-05-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * xdisp.c (redisplay_window): After redisplay, check if point is
+ still valid before setting it (Bug#6177).
+
+2010-05-27 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in, autodeps.mk, deps.mk, ns.mk:
+ Convert comments to Makefile format.
+
+ * Makefile.in (bootstrap-clean): No more Makefile.c.
+
+2010-05-26 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (YMF_PASS_LDFLAGS): Remove.
+ (temacs${EXEEXT}): Use PRE_EDIT_LDFLAGS, POST_EDIT_LDFLAGS.
+
+ * Makefile.in (NS_IMPL_GNUSTEP_INC, NS_IMPL_GNUSTEP_TEMACS_LDFLAGS):
+ Remove.
+ (TEMACS_LDFLAGS): Do not use NS_IMPL_GNUSTEP_TEMACS_LDFLAGS.
+
+2010-05-26 Kenichi Handa <handa@m17n.org>
+
+ * composite.c (composition_compute_stop_pos): Fix condition for
+ backward scanning.
+
+2010-05-25 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (@NS_IMPL_GNUSTEP_INC@, NS_IMPL_GNUSTEP_TEMACS_LDFLAGS):
+ Move before TEMACS_LDFLAGS.
+ (TEMACS_LDFLAGS): Use $NS_IMPL_GNUSTEP_TEMACS_LDFLAGS.
+ (temacs${EXEEXT}): Do not use $NS_IMPL_GNUSTEP_TEMACS_LDFLAGS.
+
+ * Makefile.in (NOT_C_CODE): No longer define.
+ (config.h): No longer include.
+
+ * Makefile.in (LD_SWITCH_SYSTEM_TEMACS): Move definition after some
+ variables it may reference.
+
+ * Makefile.in (LD_SWITCH_SYSTEM_EXTRA): Remove.
+ (TEMACS_LDFLAGS): Remove LD_SWITCH_SYSTEM_EXTRA.
+
+2010-05-25 Kenichi Handa <handa@m17n.org>
+
+ * dispextern.h (struct composition_it): New members rule_idx and
+ charpos.
+
+ * xdisp.c (set_iterator_to_next): While scanning backward, assume
+ that the character positions of IT point the last character of the
+ current grapheme cluster.
+ (next_element_from_composition): Don't change character positions
+ of IT.
+ (append_composite_glyph): Set glyph->charpos to
+ it->cmp_it.charpos.
+
+ * composite.c (autocmp_chars): Change the first argument to RULE,
+ and try composition with RULE only.
+ (composition_compute_stop_pos): Record the index number of the
+ composition rule in CMP_IT->rule_idx.
+ (composition_reseat_it): Call autocmp_chars repeatedly until the
+ correct rule of the composition is found.
+ (composition_update_it): Set CMP_IT->charpos. Assume the CHARPOS
+ is at the last character of the current grapheme cluster when
+ CMP_IT->reversed_p is nonzero.
+
+2010-05-24 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * editfns.c (Fbyte_to_string): New function.
+
+2010-05-24 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * process.c (Fmake_network_process): Set :host to nil if it's not used.
+ Suggested by Masatake YAMATO <yamato@redhat.com>.
+
+2010-05-23 Eli Zaretskii <eliz@gnu.org>
+
+ * dispextern.h (init_iterator): Sync prototype with changed definition.
+
+2010-05-20 enami tsugutomo <tsugutomo.enami@jp.sony.com>
+
+ * s/netbsd.h: If terminfo is found, use it in preference to
+ termcap. (Bug#6190) [Backport from trunk]
+
+2010-05-19 Eli Zaretskii <eliz@gnu.org>
+
+ Redesign and reimplement bidi-aware edge positions of glyph rows.
+
+ * dispextern.h (struct glyph_row): New members minpos and maxpos.
+ (MATRIX_ROW_START_CHARPOS, MATRIX_ROW_START_BYTEPOS)
+ (MATRIX_ROW_END_CHARPOS, MATRIX_ROW_END_BYTEPOS): Reference minpos
+ and maxpos members instead of start.pos and end.pos, respectively.
+
+ * xdisp.c (display_line): Compare IT_CHARPOS with the position in
+ row->start.pos, rather than with MATRIX_ROW_START_CHARPOS.
+ (cursor_row_p): Use row->end.pos rather than MATRIX_ROW_END_CHARPOS.
+ (try_window_reusing_current_matrix, try_window_id):
+ Use ROW->minpos rather than ROW->start.pos.
+ (init_from_display_pos, init_iterator): Use EMACS_INT for
+ character and byte positions.
+ (find_row_edges): Rename from find_row_end. Accept additional
+ arguments for minimum and maximum buffer positions seen by
+ display_line for this row. Don't use iterator to find the
+ position following the maximum one; instead, increment the
+ position found by display_line directly. Fix logic; eol_pos
+ should be tested before the rest. Handle the case of characters
+ delivered from display vector (bug#6036). Fix tests related to
+ it->method. Handle the truncated_on_right_p rows.
+ (RECORD_MAX_MIN_POS): New macro.
+ (display_line): Use it to record the minimum and maximum buffer
+ positions for glyphs in the row being assembled. Record the
+ position of the newline that terminates the line. If word wrap is
+ in effect, restore minimum and maximum positions seen up to the
+ wrap point, when iterator returns to it.
+ (try_window_reusing_current_matrix): Give up if in bidi-reordered
+ row and cursor not already at point. Restore original pre-bidi
+ code for unidirectional buffers.
+
+ * dispnew.c (increment_row_positions, check_matrix_invariants):
+ Increment and check row->start.pos and row->end.pos, in addition
+ to MATRIX_ROW_START_CHARPOS and MATRIX_ROW_END_CHARPOS.
+
+ * .gdbinit (prowlims): Display row->minpos and row->maxpos.
+ Display truncated_on_left_p and truncated_on_right_p flags.
+ Formatting fixes.
+ (pmtxrows): Display the ordinal number of each row. Don't display
+ rows beyond the last one.
+
+ * bidi.c (bidi_cache_iterator_state): Don't zero out new_paragraph:
+ it is not copied by bidi_copy_it.
+
+2010-05-22 Eli Zaretskii <eliz@gnu.org>
+
+ * w32.c (sys_write): Break writes into chunks smaller than 32MB.
+ (Bug#6237)
+
+2010-05-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * image.c (Fimage_flush): Rename from image-refresh.
+
+2010-05-21 Chong Yidong <cyd@stupidchicken.com>
+
+ * xdisp.c (redisplay_internal): Clear caches even if redisplaying
+ just one window.
+
+ * image.c (Vimage_cache_eviction_delay): Decrease to 300.
+ (clear_image_cache): If the number of cached images is unusually
+ large, decrease the cache eviction delay (Bug#6230).
+
+2010-05-21 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (${ns_appdir}, ${ns_appbindir}Emacs, ns-app):
+ Move these rules to ns.mk.
+ * ns.mk: New file.
+
+ * Makefile.in (../src/$(OLDXMENU), $(OLDXMENU)): Always define rules.
+
+ * Makefile.in (CANNOT_DUMP): New, set by configure.
+ (emacs${EXEEXT}, bootstrap-emacs${EXEEXT}): Use $CANNOT_DUMP.
+
+2010-05-20 Juri Linkov <juri@jurta.org>
+
+ * fileio.c (Fdelete_file): Change interative spec to use
+ `read-file-name' like in `find-file-read-args' where the default
+ value is `default-directory' instead of `buffer-file-name'.
+ http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00533.html
+
+2010-05-20 Kevin Ryde <user42@zip.com.au>
+
+ * keyboard.c (Vlast_command, Vkeyboard_translate_table)
+ (Voverriding_terminal_local_map, Vsystem_key_alist)
+ (Vlocal_function_key_map): Fix manual link in docstring (Bug#6224).
+
+2010-05-20 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (DEPDIR): New constant.
+ (DEPFLAGS): Set with configure, not cpp.
+ (MKDEPDIR): New, set by configure.
+ (.c.o, .m.o, ecrt0.o): Use $MKDEPDIR.
+ (clean): Use $DEPDIR.
+ (deps_frag): Include from configure.
+ Move static/dynamic dependency stuff to deps.mk/autodeps.mk.
+ * deps.mk, autodeps.mk: New files, extracted from Makefile.in.
+
+ * bidi.c (bidi_cache_shrink, bidi_cache_iterator_state):
+ Fix reallocation of the cache. (Bug#6210)
+
+2010-05-19 Glenn Morris <rgm@gnu.org>
+
+ * s/msdos.h (ORDINARY_LINK): Move to sed2v2.inp.
+
+ * Makefile.in (LD, YMF_PASS_LDFLAGS): Set with configure, not cpp.
+ (GNULIB_VAR): Remove.
+ (LIBES): Use LIB_GCC instead of GNULIB_VAR.
+
+ * m/ibms390x.h (LINKER):
+ * m/macppc.h (LINKER) [GNU_LINUX]:
+ * s/aix4-2.h (ORDINARY_LINK):
+ * s/cygwin.h (LINKER):
+ * s/darwin.h (ORDINARY_LINK):
+ * s/gnu.h (ORDINARY_LINK):
+ * s/netbsd.h (LINKER):
+ * s/usg5-4.h (ORDINARY_LINK):
+ Move to configure.
+
+ * s/aix4-2.h (LINKER): Remove; this file sets ORDINARY_LINK.
+
+2010-05-18 Chong Yidong <cyd@stupidchicken.com>
+
+ * character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to
+ prevent stack overflow if number of arguments is too large
+ (Bug#6214).
+
+2010-05-18 Juanma Barranquero <lekktu@gmail.com>
+
+ * charset.c (load_charset_map_from_file): Don't call close after fclose.
+
+2010-05-18 Glenn Morris <rgm@gnu.org>
+
+ * s/gnu-linux.h: Combine two conditionals.
+
+ * Makefile.in (otherobj): Include $(VMLIMIT_OBJ) separately from
+ $(POST_ALLOC_OBJ).
+
+ * Makefile.in (RALLOC_OBJ): New, set by configure.
+ (rallocobj): Replace with the previous variable.
+ (otherobj): Use $RALLOC_OBJ.
+
+ * s/gnu.h (REL_ALLOC) [DOUG_LEA_MALLOC]:
+ * s/gnu-linux.h (REL_ALLOC) [DOUG_LEA_MALLOC]: Move undef to configure.
+
+ * Makefile.in (GMALLOC_OBJ, VMLIMIT_OBJ): New, set by configure.
+ (gmallocobj, vmlimitobj): Replace with previous two variables.
+ (otherobj): Use $GMALLOC_OBJ, $VMLIMIT_OBJ.
+
+2010-05-17 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (OLDXMENU_DEPS): New, set by configure.
+ (stamp-oldxmenu): Use $OLDXMENU_DEPS.
+
+2010-05-16 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (${ns_appbindir}Emacs, ns-app): Always define these rules.
+
+ * Makefile.in (clean): Get rid of HAVE_NS conditional.
+
+ * Makefile.in (ns_appdir, ns_appbindir): Now configure adds the
+ trailing "/".
+
+ * Makefile.in (TEMACS_LDFLAGS2): New, set by configure.
+ (temacs${EXEEXT}): Combine the NS_IMPL_GNUSTEP case with the default.
+
+ * Makefile.in (GNUSTEP_SYSTEM_LIBRARIES): Remove, unused.
+ (NS_IMPL_GNUSTEP_TEMACS_LDFLAGS): New, set by configure.
+ (LD) [NS_IMPL_GNUSTEP]: Set to $(CC) -rdynamic.
+ (temacs${EXEEXT}): Remove $LOCALCPP, never defined or referenced.
+ Make most of the NS_IMPL_GNUSTEP case the same as the default case.
+
+ * Makefile.in (temacs${EXEEXT}) [!NS_IMPL_GNUSTEP]:
+ Remove ${STARTFLAGS}, nothing ever sets it.
+
+2010-05-16 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * m/ia64.h (UNEXEC): Remove, set in s/*.h.
+
+2010-05-16 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (LIBX_BASE): Always define.
+
+ * Makefile.in (LIBX_OTHER): Move out of cpp section.
+
+ * Makefile.in (LIBXT): Always define.
+
+2010-05-15 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (OLDXMENU, LIBXMENU, LIBX_OTHER): Always define.
+
+ * Makefile.in (FONT_DRIVERS): Remove, replace with $FONT_OBJ.
+ (obj, SOME_MACHINE_OBJECTS): Use $FONT_OBJ.
+
+2010-05-15 Ken Raeburn <raeburn@raeburn.org>
+
+ * lisp.h (XFLOAT_DATA): Use "0?x:x" to generate an rvalue. (Bug#5916)
+ (LISP_MAKE_RVALUE) [!USE_LISP_UNION_TYPE && !__GNUC__]: Likewise.
+
+ * emacs.c (main): Initialize initial-environment and
+ process-environment before generating from env, not after.
+
+ Handle --version reasonably in CANNOT_DUMP configuration.
+ * emacs.c (emacs_version, emacs_copyright): New string variables.
+ (Vemacs_version, Vemacs_copyright): New Lisp_Object variables.
+ (syms_of_emacs): Defvar them, and initialize them from the C
+ string variables.
+ (main): If initialization hasn't been done, print initial version
+ info from the C strings, instead of starting an interactive session.
+
+2010-05-15 Eli Zaretskii <eliz@gnu.org>
+
+ * bidi.c (bidi_paragraph_init): Don't leave alone garbage values
+ of bidi_it->paragraph_dir. Call bidi_initialize if needed.
+ (bidi_paragraph_init): Remove redundant assertion that we are at
+ the beginning of a line after call to bidi_find_paragraph_start.
+
+ * xdisp.c (Fcurrent_bidi_paragraph_direction): New function.
+ (syms_of_xdisp): Defsubr it.
+
+ * cmds.c (Fforward_char, Fbackward_char): Doc fix.
+
+ * Makefile.in: Fix MSDOS-related comments.
+
+2010-05-15 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (OLDXMENU_TARGET): New, set by configure.
+ (really-lwlib, really-oldXMenu): Always define.
+ ($OLDXMENU): Depend on $OLDXMENU_TARGET.
+
+ * Makefile.in: Simplify cpp conditional.
+
+ * Makefile.in (${ns_appdir}): Simplify using umask.
+
+ * Makefile.in (${ns_appdir}): Remove references to CVS-related files.
+
+2010-05-14 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (specbind): Remove left-over duplicate test.
+ Disallow let-binding frame-local vars. Add comment.
+
+2010-05-14 Eli Zaretskii <eliz@gnu.org>
+
+ Make the cache of bidi iterator states dynamically allocated.
+ * bidi.c (bidi_cache_shrink): New function.
+ (bidi_init_it): Call it.
+ (bidi_cache_iterator_state): Enlarge the cache if needed.
+
+ * bidi.c (bidi_move_to_visually_next): Rename from
+ bidi_get_next_char_visually. All callers changed.
+
+2010-05-14 Kenichi Handa <handa@m17n.org>
+
+ * dispextern.h (struct composition_it): New member reversed_p.
+
+ * composite.c (composition_compute_stop_pos): Search backward if
+ ENDPOS < CHARPOS.
+ (composition_reseat_it): Handle the case that ENDPOS < CHARPOS.
+ Set CMP_IT->reversed_p.
+ (composition_update_it): Pay attention to CMP_IT->reversed_p.
+
+ * xdisp.c (set_iterator_to_next):
+ Call composition_compute_stop_pos with negative ENDPOS if we are
+ scanning backward. Call composition_compute_stop_pos if scan
+ direction is changed.
+ (next_element_from_buffer): Call composition_compute_stop_pos with
+ negative ENDPOS if we are scanning backward.
+ (next_element_from_composition): Pay attention to
+ IT->cmp_it.reversed_p.
+
+2010-05-14 Kenichi Handa <handa@m17n.org>
+
+ * font.c (font_range): Return the range for the font found at first.
+
+2010-05-14 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Always define.
+
+ * Makefile.in (mktime, X11, register): Move undefs to configure.
+
+ * Makefile.in (MSDOS_OBJ): Default to empty, let msdos scripts set it.
+ (MSDOS_X_OBJ): New variable.
+ (MSDOS_SUPPORT_REAL): New constant.
+ (MSDOS_SUPPORT): Set as a variable, not with cpp.
+ (obj): Use MSDOS_X_OBJ.
+ (lisp): Use MSDOS_SUPPORT as a variable.
+
+ * Makefile.in (REAL_MOUSE_SUPPORT): New constant.
+ (GPM_MOUSE_SUPPORT): Now it's a constant.
+ (MOUSE_SUPPORT, TOOLTIP_SUPPORT, WINDOW_SUPPORT): Set with configure,
+ not cpp.
+
+ * Makefile.in (@NS_IMPL_GNUSTEP_INC@): Use in place of #ifdef.
+ (ns_appresdir): Remove, unused.
+
+ * Makefile.in (SHELL): Move outside cpp section.
+
+ * s/netbsd.h (AMPERSAND_FULL_NAME): Remove (defined in AH_BOTTOM).
+
+2010-05-13 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (FONT_DRIVERS): Place with other HAVE_X_WINDOWS stuff.
+ (TOOLTIP_SUPPORT): Place with other HAVE_WINDOW_SYSTEM stuff.
+
+ * Makefile.in (FONT_DRIVERS): If HAVE_X_WINDOWS is defined,
+ HAVE_WINDOW_SYSTEM must be too.
+
+ * Makefile.in (WINNT_SUPPORT): Remove, nt build does not use this file.
+ (lisp): Remove WINNT_SUPPORT.
+
+ * Makefile.in (OLDXMENU, LIBXMENU) [!HAVE_MENUS]:
+ Let configure set these variables (to empty) in this case as well.
+
+ * Makefile.in (LD_SWITCH_X_SITE): Define as a variable, not via cpp.
+ (LIBX_BASE): Use $LD_SWITCH_X_SITE.
+
+ * Makefile.in (C_SWITCH_X_SYSTEM, C_SWITCH_X_SITE, LIB_STANDARD)
+ (LIB_MATH, FONTCONFIG_CFLAGS, FONTCONFIG_LIBS, FREETYPE_CFLAGS)
+ (FREETYPE_LIBS, LIBOTF_CFLAGS, LIBOTF_LIBS, M17N_FLT_CFLAGS)
+ (M17N_FLT_LIBS, GNU_OBJC_CFLAGS, GNUSTEP_SYSTEM_LIBRARIES, LIBGPM)
+ (LIBRESOLV, UNEXEC_OBJ): For clarity, define variables to hold
+ the values output by configure.
+ (ALL_CFLAGS, obj, LIBES, temacs${EXEEXT}): Use the above variables.
+
+2010-05-12 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (YMF_PASS_LDFLAGS, LD, LINKER): Simplify the logic.
+ (LINKER_WAS_SPECIFIED): Remove.
+
+ * Makefile.in (LIB_GCC): Set using configure, not cpp.
+ (GNULIB_VAR) [!ORDINARY_LINK]: Always set to $LIB_GCC.
+ * m/arm.h (LIB_GCC) [GNU_LINUX]:
+ * s/cygwin.h (LIB_GCC):
+ * s/freebsd.h (LIB_GCC):
+ * s/gnu-linux.h (LIB_GCC):
+ * s/msdos.h (LIB_GCC):
+ * s/netbsd.h (LIB_GCC):
+ Move to configure.
+
+2010-05-11 Karel Klíč <kklic@redhat.com>
+
+ * ftfont.c: Fix incorrect parentheses of #if condition for
+ definining M17N_FLT_USE_NEW_FEATURE.
+
+2010-05-11 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (LIBS_SYSTEM) [MSDOS]: Do not reset.
+ * s/msdos.h (MSDOS_LIBS_SYSTEM): Remove.
+
+2010-05-10 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (init_iterator): Don't turn on bidi reordering in
+ unibyte buffers. See
+ http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00263.html.
- * process.c (Fmake_network_process): Don't call turn_on_atimers around
- `connect' (Bug#5723).
+2010-05-10 Glenn Morris <rgm@gnu.org>
-2010-11-04 Helmut Eller <eller.helmut@gmail.com>
+ * Makefile.in (LIBS_SYSTEM): Set using configure, not cpp.
+ (LIBS_SYSTEM) [MSDOS]: Reset with MSDOS_LIBS_SYSTEM.
+ (LIBES): Use LIBS_SYSTEM as a variable.
+ * s/msdos.h (LIBS_SYSTEM): Rename to MSDOS_LIBS_SYSTEM. Always define.
+ * s/aix4-2.h (LIBS_SYSTEM):
+ * s/freebsd.h (LIBS_SYSTEM):
+ * s/hpux10-20.h (LIBS_SYSTEM):
+ * s/sol2-6.h (LIBS_SYSTEM):
+ * s/unixware.h (LIBS_SYSTEM):
+ Move to configure.
- * process.c (Fmake_network_process): Call `select' for interrupted
- `connect' rather than creating new socket (Bug#5173).
+ * s/aix4-2.h (MAIL_USE_LOCKF):
+ * s/bsd-common.h (MAIL_USE_FLOCK):
+ * s/darwin.h (MAIL_USE_FLOCK):
+ * s/gnu-linux.h (MAIL_USE_FLOCK):
+ * s/irix6-5.h (MAIL_USE_FLOCK):
+ * s/template.h (MAIL_USE_FLOCK):
+ Move to configure.
-2010-11-04 Kenichi Handa <handa@m17n.org>
+2010-05-08 Chong Yidong <cyd@stupidchicken.com>
- * font.c (font_delete_unmatched): Check Vface_ignored_fonts.
- Don't sheck SPEC if it is nil.
- (font_list_entities): Call font_delete_unmatched if
- Vface_ignored_fonts is non-nil.
+ * Version 23.2 released.
-2010-11-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+2010-05-08 Andreas Schwab <schwab@linux-m68k.org>
- * dispextern.h (TRY_WINDOW_CHECK_MARGINS)
- (TRY_WINDOW_IGNORE_FONTS_CHANGE): New defines.
+ * composite.c (autocmp_chars): Save point as marker before calling
+ auto-composition-function (Bug#5984).
- * xdisp.c (try_window): Change arg from CHECK_MARGINS to FLAGS.
- Don't abort with fonts change if TRY_WINDOW_IGNORE_FONTS_CHANGE is
- set in FLAGS. Callers with non-zero CHECK_MARGINS changed to use
- TRY_WINDOW_CHECK_MARGINS.
+ * lisp.h (restore_point_unwind): Add prototype.
- * xfns.c (Fx_show_tip): Undo last change. Call try_window with
- TRY_WINDOW_IGNORE_FONTS_CHANGE (Bug#2423).
+ * fileio.c (restore_point_unwind): Remove static attribute.
-2010-11-04 Jan Djärv <jan.h.d@swipnet.se>
+2010-05-08 Kenichi Handa <handa@m17n.org>
- * xfns.c (x_real_positions): Only use _NET_FRAME_EXTENTS if our
- parent is the root window. Check this after traversing window tree.
+ * ftfont.c (M17N_FLT_USE_NEW_FEATURE): Define it if we can use the
+ new feature of libotf and m17n-flt.
+ (ftfont_check_otf) [M17N_FLT_USE_NEW_FEATURE]:
+ Call OTF_check_features even if no specific feature is given.
+ (PACK_OTF_TAG) [M17N_FLT_USE_NEW_FEATURE]: New macro.
+ (ftfont_drive_otf) [M17N_FLT_USE_NEW_FEATURE]: Handle the case
+ that OUT is NULL. Use OTF_drive_gsub_with_log and
+ OTF_drive_gpos_with_log instead of OTF_drive_gsub and
+ OTF_drive_gpos.
+ (ftfont_try_otf) [M17N_FLT_USE_NEW_FEATURE]: New function.
+ (ftfont_shape_by_flt) [M17N_FLT_USE_NEW_FEATURE]:
+ Setup mflt_enable_new_feature and mflt_try_otf.
- * xterm.c (x_term_init): Initialize Xatom_net_frame_extents.
+2010-05-08 Jan Djärv <jan.h.d@swipnet.se>
- * xterm.h (struct x_display_info): Xatom_net_frame_extents is new.
+ * xsettings.c (Ftool_bar_get_system_style): Correct comment.
- * xfns.c (x_real_positions): Try to get _NET_FRAME_EXTENTS first
- before traversing window tree (Bug#5721).
+ * gtkutil.c (xg_pack_tool_bar): Change show_all to show for handle
+ box and toolbar (Bug #6139).
+ (xg_create_tool_bar): Remove comment (Bug #6139).
+ (xg_make_tool_item): Remove gtk_widget_show_all (Bug #6139).
+ (xg_show_toolbar_item): Add gtk_widget_show for weventbox (Bug #6139).
-2010-11-03 Glenn Morris <rgm@gnu.org>
+2010-05-08 Juanma Barranquero <lekktu@gmail.com>
- * Makefile.in (CRT_DIR): New variable, set by configure.
- * m/amdx86-64.h, m/ibms390x.h (START_FILES, LIB_STANDARD):
- Use $CRT_DIR rather than HAVE_LIB64_DIR. (Bug#5655)
+ * makefile.w32-in ($(BLD)/eval.$(O), $(BLD)/w32fns.$(O)):
+ Update dependencies.
-2010-11-01 Jan Djärv <jan.h.d@swipnet.se>
+2010-05-08 Eli Zaretskii <eliz@gnu.org>
- * process.c (kbd_is_on_hold): New variable.
- (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p):
- New functions.
- (wait_reading_process_output): If kbd_on_hold_p returns non-zero,
- select on empty input mask.
- (init_process): Initialize kbd_is_on_hold to 0.
+ * fringe.c (update_window_fringes): Set up truncation bitmaps for
+ R2L lines.
- * process.h (hold_keyboard_input, unhold_keyboard_input)
- (kbd_on_hold_p): Declare.
+2010-05-08 Glenn Morris <rgm@gnu.org>
- * keyboard.c (input_available_signal): Declare.
- (kbd_buffer_nr_stored): New function.
- (kbd_buffer_store_event_hold): If kbd_buffer_nr_stored returns
- more than KBD_BUFFER_SIZE/2, stop reding input (Bug#6571).
- (kbd_buffer_get_event): If input is suspended and kbd_buffer_nr_stored
- returns less than KBD_BUFFER_SIZE/4, resume reding input (Bug#6571).
- (tty_read_avail_input): If input is on hold, return.
- Don't read more that free slots in kbd_buffer (Bug#6571).
+ * Makefile.in (THIS_IS_MAKEFILE): Remove, unused.
-2010-10-31 Chong Yidong <cyd@stupidchicken.com>
+ * Makefile.in (LIBS_TERMCAP): Set with configure, not cpp.
+ (TERMCAP_OBJ): New, set by configure, replacing termcapobj.
+ (termcapobj): Replace with TERMCAP_OBJ.
+ (otherobj): Use $TERMCAP_OBJ instead of $termcapobj.
+ (LIBES): Use LIBS_TERMCAP as a variable.
- * xterm.c (x_connection_closed): Print informative error message
- when aborting on GTK. This requires using shut_down_emacs
- directly instead of Fkill_emacs.
+ * s/freebsd.h (osreldate.h): No longer include, since this file
+ does not use __FreeBSD_version any more.
-2010-10-25 Michael Albinus <michael.albinus@gmx.de>
+ * s/aix4-2.h (TERMINFO):
+ * s/cygwin.h (TERMINFO):
+ * s/darwin.h (TERMINFO, LIBS_TERMCAP) [HAVE_LIBNCURSES]:
+ * s/freebsd.h (TERMINFO, LIBS_TERMCAP):
+ * s/gnu-linux.h (TERMINFO, LIBS_TERMCAP) [HAVE_LIBNCURSES]:
+ * s/gnu.h (TERMINFO, LIBS_TERMCAP) [HAVE_LIBNCURSES]:
+ * s/hpux10-20.h (TERMINFO, LIBS_TERMCAP):
+ * s/irix6-5.h (TERMINFO):
+ * s/netbsd.h (LIBS_TERMCAP):
+ * s/openbsd.h (TERMINFO, LIBS_TERMCAP):
+ * s/sol2-6.h (LIBS_TERMCAP) [!TERMINFO]:
+ * s/usg5-4.h (TERMINFO):
+ Move to configure.
- * dbusbind.c (Fdbus_call_method_asynchronously)
- (Fdbus_register_signal, Fdbus_register_method): Check, whether
- `dbus-registered-objects-table' is initialized.
+2010-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
-2010-10-24 Chong Yidong <cyd@stupidchicken.com>
+ * eval.c (unbind_to): Don't unbind a local binding into the global
+ binding when the local binding disappeared. Inversely, don't unbind
+ a global binding into a newly created local binding.
+ * data.c (set_internal): Make its `buf' arg into a `where' arg so we
+ can specify the frame to use, when applicable. Adjust callers.
- * xterm.c (x_connection_closed): Kill Emacs unconditionally.
+2010-05-07 Vincent Belaïche <vincent.belaiche@gmail.com>
+ Stefan Monnier <monnier@iro.umontreal.ca>
-2010-10-22 Eli Zaretskii <eliz@gnu.org>
+ * floatfns.c (Fisnan, Fcopysign, Ffrexp, Fldexp): New functions.
- * frame.c (Fframep, Fwindow_system): Deprecate use as a predicate.
+2010-05-07 Eli Zaretskii <eliz@gnu.org>
- * dispnew.c (syms_of_display) <initial-window-system, window-system>:
- Deprecate use as a boolean flag.
+ * w32fns.c: Include w32.h.
+ (Fw32_shell_execute): Decode the error message before passing it
+ to `error'. (Bug#6126)
-2010-10-18 Ken Brown <kbrown@cornell.edu>
+ * msdos.c (dos_set_window_size):
+ * w16select.c (Fx_selection_exists_p): Use `Fsymbol_value (foo)'
+ instead of `XSYMBOL (foo)->value'.
- * s/cygwin.h (SIGNALS_VIA_CHARACTERS): New define (bug#7225).
+2010-05-07 Eli Zaretskii <eliz@gnu.org>
-2010-10-15 Kenichi Handa <handa@m17n.org>
+ Fix the MS-DOS build, broken by autoconfiscation.
- Fix incorrect font metrics when the same font is opened with
- different pixelsizes.
+ * Makefile.in: Don't use Make-style comments past the "start of
+ cpp stuff" line.
+ (MSDOS_OBJ): Remove xmenu.o (it is now defined by XMENU_OBJ).
- * xftfont.c: Include composite.h.
- (xftfont_shape): New function.
- (syms_of_xftfont): Set xftfont_driver.shape.
+ * s/msdos.h (UNEXEC): Don't define (@unexec@ in Makefile.in is
+ edited directly by msdos/sed1v2.inp).
-2010-10-13 Damyan Pepper <damyanp@gmail.com>
+2010-05-07 Glenn Morris <rgm@gnu.org>
- Fix handling of font properties on Windows (bug#6303).
- * font.c (font_filter_properties): New function, refactored from
- ftfont_filter_properties.
- * font.h (font_filter_properties): Declare.
- * ftfont.c (ftfont_filter_properties): Use font_filter_properties.
- * w32font.c (w32font_booleans, w32font_non_booleans): New variables.
- (w32font_filter_properties): New function.
- (w32font_driver): Add w32font_filter_properties.
+ * Makefile.in (LD_SWITCH_SYSTEM): Set with configure, not cpp.
+ (LD_SWITCH_SYSTEM_EXTRA): New variable, set by configure.
+ (TEMACS_LDFLAGS): Use $LD_SWITCH_SYSTEM and $LD_SWITCH_SYSTEM_EXTRA,
+ move out of cpp section.
+ * s/freebsd.h (LD_SWITCH_SYSTEM):
+ * s/gnu-linux.h (LD_SWITCH_SYSTEM):
+ * s/netbsd.h (LD_SWITCH_SYSTEM):
+ * s/openbsd.h (LD_SWITCH_SYSTEM): Move to configure.in.
-2010-10-12 Juanma Barranquero <lekktu@gmail.com>
+2010-05-07 Dan Nicolaescu <dann@ics.uci.edu>
- * font.c (Ffont_variation_glyphs):
- * ccl.c (Fccl_execute_on_string): Fix typo in docstring.
+ Define LIB_STANDARD and START_FILES using autoconf.
+ * s/usg5-4.h (LIB_STANDARD):
+ * s/netbsd.h (START_FILES):
+ * s/irix6-5.h (LIB_STANDARD):
+ * s/hpux10-20.h (LIB_STANDARD, START_FILES):
+ * s/gnu-linux.h (START_FILES, LIB_STANDARD):
+ * s/freebsd.h (START_FILES):
+ * s/darwin.h (START_FILES):
+ * s/cygwin.h (START_FILES):
+ * s/aix4-2.h (LIB_STANDARD):
+ * m/ibmrs6000.h (START_FILES): Remove, move logic to configure.in.
+ * Makefile.in (STARTFILES): Rename to START_FILES, define using
+ autoconf, not cpp.
-2010-10-10 Jan Djärv <jan.h.d@swipnet.se>
+2010-05-06 Dan Nicolaescu <dann@ics.uci.edu>
- * nsterm.m (Qleft): Declare.
- (ns_right_alternate_modifier): New variable
- (NSRightAlternateKeyMask): New define.
- (EV_MODIFIERS): Parse NSRightAlternateKeyMask if
- ns_right_alternate_modifier isn't Qleft.
- (keyDown): If ns_right_alternate_modifier isn't Qleft, use it
- as emacs modifier for NSRightAlternateKeyMask.
- (syms_of_nsterm): DEFVAR_LISP ns-right-alternate-modifier.
+ Remove NEED_BSDTTY and NEED_UNISTD_H.
+ * s/hpux10-20.h (NEED_BSDTTY): Remove.
+ * s/aix4-2.h (NEED_UNISTD_H): Remove.
+ * systty.h: Simplify conditionals for including <sys/bsdtty.h>,
+ <sys/ptyio.h> and <unistd.h>.
-2010-10-08 Michael Albinus <michael.albinus@gmx.de>
+ * emacs.c (main): Remove NO_DIR_LIBRARY conditional, unused.
- * dbusbind.c (xd_get_dispatch_status): Return a Lisp_Object.
- (xd_pending_messages): Catch xd_get_dispatch_status calls.
+ * Makefile.in (STARTFILES): Conditionally define to make the usage clear.
+ * s/gnu.h (START_FILES): Remove empty definition.
-2010-10-08 Kenichi Handa <handa@m17n.org>
+2010-05-06 Jan Djärv <jan.h.d@swipnet.se>
- * coding.c (complement_process_encoding_system): Fix previous change.
+ * xterm.c (x_draw_image_relief): Move declaration of extra to beginning.
-2010-10-03 Michael Albinus <michael.albinus@gmx.de>
+2010-05-06 Glenn Morris <rgm@gnu.org>
- * dbusbind.c (syms_of_dbusbind): Move putenv call ...
- (Fdbus_init_bus): ... here. (Bug#7113)
+ * Makefile.in (CPP, LN_S): Remove unused variables.
-2010-10-03 Glenn Morris <rgm@gnu.org>
+2010-05-05 Stefan Monnier <monnier@iro.umontreal.ca>
- * buffer.c (before-change-functions, after-change-functions):
- Three-year overdue doc fix following 2007-08-13 change.
+ * syntax.c (Fchar_syntax): Check the arg is a character (bug#6080).
-2010-10-02 Kenichi Handa <handa@m17n.org>
+2010-05-05 Lawrence Mitchell <wence@gmx.li>
- * coding.c (coding_inherit_eol_type): If parent doesn't specify
- eol-format, inherit from the system's default.
- (complement_process_encoding_system): Make a new coding system
- inherit the original eol-format.
+ * m/sparc.h: Fix typo in earlier change.
-2010-09-30 Kenichi Handa <handa@m17n.org>
+2010-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
- * coding.c (complement_process_encoding_system): New function.
+ Misc tweaks.
+ * eval.c (Fdefvaralias): Remove unintended nested if.
+ (internal_condition_case_2, internal_condition_case_n): Use ANSI type.
- * coding.h (complement_process_encoding_system): Extern it.
+2010-05-04 Bernhard Herzog <bh@intevation.de> (tiny change)
- * callproc.c (Fcall_process): Complement the coding system for
- encoding arguments.
- (Fcall_process_region): Complement the coding system for encoding
- the input to the process.
+ * xsmfns.c (smc_save_yourself_CB): strlen(client_id) => strlen(cwd).
- * process.c (Fstart_process): Complement the coding system for
- encoding arguments.
- (send_process): Complement the coding system for encoding what
- sent to the process.
+2010-05-04 Dan Nicolaescu <dann@ics.uci.edu>
-2010-09-29 Kenichi Handa <handa@m17n.org>
+ Remove BSD_PGRPS.
+ * s/bsd-common.h (BSD_PGRPS): Remove undef.
+ * s/gnu-linux.h (BSD_PGRPS): Remove.
+ * term.c (dissociate_if_controlling_tty):
+ * sysdep.c (narrow_foreground_group, widen_foreground_group)
+ (init_sys_modes, reset_sys_modes):
+ * emacs.c (main):
+ * callproc.c (Fcall_process, child_setup): Remove code depending
+ on BSD_PGRPS.
- * xfont.c (xfont_open): Fix setting of font->average_width from
- :avgwidth property (Bug#7123).
+ Remove POSIX_SIGNALS.
+ * s/usg5-4.h (POSIX_SIGNALS):
+ * s/netbsd.h (POSIX_SIGNALS):
+ * s/msdos.h (POSIX_SIGNALS):
+ * s/ms-w32.h (POSIX_SIGNALS):
+ * s/hpux11.h (POSIX_SIGNALS):
+ * s/gnu.h (POSIX_SIGNALS):
+ * s/gnu-linux.h (POSIX_SIGNALS):
+ * s/freebsd.h (POSIX_SIGNALS):
+ * s/darwin.h (POSIX_SIGNALS):
+ * s/cygwin.h (POSIX_SIGNALS):
+ * s/aix4-2.h (POSIX_SIGNALS): Remove definition.
+ * s/unixware.h:
+ * s/sol2-6.h: Remove comments on POSIX_SIGNALS.
+ * process.c (create_process):
+ * syssignal.h:
+ * sysdep.c (wait_for_termination, init_signals):
+ * process.c (create_process):
+ * msdos.c: POSIX_SIGNALS is always defined on all platforms,
+ remove all code that assumes the contrary.
-2010-09-28 Michael Albinus <michael.albinus@gmx.de>
+2010-05-04 Glenn Morris <rgm@gnu.org>
- * dbusbind.c (syms_of_dbusbind): Use putenv instead of setenv, it
- is more portable.
+ * s/gnu-linux.h (LD_SWITCH_SYSTEM): Use LD_SWITCH_X_SITE_AUX as a shell
+ variable.
+ * s/netbsd.h (LD_SWITCH_SYSTEM_tmp): Remove.
+ (LD_SWITCH_SYSTEM): Use $LD_SWITCH_X_SITE_AUX_RPATH.
+ * s/openbsd.h (LD_SWITCH_SYSTEM_tmp): Remove.
+ (LD_SWITCH_SYSTEM): Use $LD_SWITCH_X_SITE_AUX_RPATH instead of
+ LD_SWITCH_SYSTEM_tmp.
+ * Makefile.in (LD_SWITCH_X_SITE_AUX, LD_SWITCH_X_SITE_AUX_RPATH):
+ New variables, set by configure.
- * keyboard.c (gobble_input): Move call of xd_read_queued_messages ...
- (kbd_buffer_get_event): ... here. This is needed for cygwin, which
- has not defined SIGIO.
+ * s/aix4-2.h (LD_SWITCH_SYSTEM_TEMACS): Move to configure.in.
+ * s/darwin.h (HEADERPAD_EXTRA, LIBS_NSGUI): Remove.
+ (LD_SWITCH_SYSTEM_TEMACS): Move to configure.in.
+ * Makefile.in (LD_SWITCH_SYSTEM_TEMACS): New variable, set by configure.
+ (TEMACS_LDFLAGS): Use $LD_SWITCH_SYSTEM_TEMACS.
-2010-09-27 Michael Albinus <michael.albinus@gmx.de>
+ * s/aix4-2.h (C_SWITCH_SYSTEM):
+ * m/alpha.h (C_SWITCH_MACHINE):
+ Move to configure.in.
+ * Makefile.in (C_SWITCH_MACHINE, C_SWITCH_SYSTEM):
+ New variables, set by configure.
+ (ALL_CFLAGS): Use $C_SWITCH_MACHINE and $C_SWITCH_SYSTEM in place of
+ $c_switch_machine and $c_switch_system.
- * dbusbind.c (syms_of_dbusbind): Set $DBUS_FATAL_WARNINGS to "0".
- (Bug#7113)
+2010-05-04 Dan Nicolaescu <dann@ics.uci.edu>
-2010-09-26 Jan Djärv <jan.h.d@swipnet.se>
+ * s/hpux10-20.h (LIB_STANDARD): New definition.
+ * Makefile.in (ORDINARY_LINK): Remove setting LIB_STANDARD based
+ on it, not used anymore.
- * xgselect.c (xg_select): Clear file descriptors not set from
- rfds and wfds.
+2010-05-03 Chong Yidong <cyd@stupidchicken.com>
-2010-09-21 Stefan Monnier <monnier@iro.umontreal.ca>
+ * eval.c (internal_condition_case_n): Rename from
+ internal_condition_case_2.
+ (internal_condition_case_2): New function.
- * syntax.c (back_comment): Detect the case where a 1-char comment
- starter is also the 2nd char of a 2-char comment ender.
+ * xdisp.c (safe_call): Use internal_condition_case_n.
-2010-09-17 Jan Djärv <jan.h.d@swipnet.se>
+ * fileio.c (Fdelete_file, internal_delete_file): New arg FORCE.
+ (internal_delete_file, Frename_file): Callers changed.
- * gtkutil.c (xg_tool_bar_menu_proxy): Set gtk-menu-items to TRUE.
+ * buffer.c (Fkill_buffer):
+ * callproc.c (delete_temp_file): Callers changed (Bug#6070).
-2010-09-12 Jan Djärv <jan.h.d@swipnet.se>
+ * lisp.h: Update prototypes.
- * xterm.c (get_current_vm_state): New function.
- (do_ewmh_fullscreen): Call get_current_vm_state and compare with
- want_fullscreen so set_wm_state calls are few (Bug#7013).
- (x_handle_net_wm_state): Move code to get_current_vm_state and
- call that function.
+2010-05-03 Glenn Morris <rgm@gnu.org>
-2010-09-11 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
+ * Makefile.in (LIBX_EXTRA, LIBX_BASE): New variables.
+ (LIBXT_OTHER, LIBX_OTHER): New, set by configure.
+ (LIBXT): Set with configure, not cpp.
+ (LIBX): Remove.
+ (LIBES): Replace $LIBX with $LIBX_BASE and $LIBX_OTHER.
- * term.c (tty_set_terminal_modes): Don't initialize twice (bug#7002).
+2010-05-02 Dan Nicolaescu <dann@ics.uci.edu>
-2010-09-08 Kenichi Handa <handa@m17n.org>
+ * m/amdx86-64.h (START_FILES, LIB_STANDARD): Remove.
+ The FreeBSD is not needed, the default works, Solaris version is
+ not needed, and the remaining case is not supported by configure.
- * coding.c (encode_coding_iso_2022): Don't optimize for ASCII if
- we may use designation or locking-shift.
+2010-05-02 Jan Djärv <jan.h.d@swipnet.se>
-2010-09-07 Kenichi Handa <handa@m17n.org>
+ * xsmfns.c (CHDIR_OPT): New define.
+ (smc_save_yourself_CB): Add CHDIR_OPT to options to use when
+ restarting emacs.
- * coding.c (detect_coding_emacs_mule): Fix checking of multibyte
- sequence when the source is multibyte.
+ * xterm.c (x_connection_closed): Call Fkill_emacs instead of
+ shut_down_emacs.
-2010-08-31 Kenichi Handa <handa@m17n.org>
+ * emacs.c (USAGE1): Mention --chdir.
+ (main): Handle --chdir.
+ (standard_args): Add --chdir.
+ (fatal_error_signal): Call Fkill_emacs for SIGTERM and SIGHUP (Bug
+ #5552).
- * dispextern.h (FACE_FOR_CHAR): Use an ASCII face for 8-bit
- characters.
+2010-05-01 Dan Nicolaescu <dann@ics.uci.edu>
- * term.c (encode_terminal_code): Fix the previous change.
- (produce_glyphs): Don't set it->char_to_display here.
- Don't handle unibyte-display-via-language-environment here.
- (produce_special_glyphs): Set temp_it.char_to_display before
- calling produce_glyphs.
+ Remove LD_SWITCH_MACHINE.
+ * Makefile.in (LD_SWITCH_MACHINE): Remove definition, unused.
+ (TEMACS_LDFLAGS): Do not use LD_SWITCH_MACHINE.
- * xdisp.c (get_next_display_element): Set it->char_to_display
- here. Convert all 8-bit bytes from unibyte buffer/string to 8-bit
- characters.
- (get_overlay_arrow_glyph_row): Set it.char_to_display too before
- calling PRODUCE_GLYPHS.
- (append_space_for_newline): Save and store it->char_to_display.
- Set it->char_to_display before calling PRODUCE_GLYPHS.
- (extend_face_to_end_of_line): Set it->char_to_display before
- calling PRODUCE_GLYPHS.
- (get_glyph_face_and_encoding): Set the glyph code an 8-bit
- character to its byte value.
- (get_char_glyph_code): New function.
- (produce_stretch_glyph): Set it2.char_to_display too before
- calling x_produce_glyphs.
- (x_produce_glyphs): Simplify by using the same code for ASCII and
- non-ASCII characters. Don't set it->char_to_display here.
- Don't handle unibyte-display-via-language-environment here. For a
- character of no glyph, use font->space_width instead of FONT_WIDTH.
+ Clean up IRIX code.
+ * m/iris4d.h (TERMINFO, FIRST_PTY_LETTER): Move definitions ...
+ * s/irix6-5.h (TERMINFO, FIRST_PTY_LETTER): ... here.
-2010-08-29 Kenichi Handa <handa@m17n.org>
+ Clean up AIX code.
+ * m/ibmrs6000.inp: Remove file, unused.
+ * m/ibmrs6000.h (IBMR2AIX): Remove, unused.
+ (LD_SWITCH_MACHINE): Rename to LD_SWITCH_SYSTEM_TEMACS, and move
+ definition ...
+ * s/aix4-2.h (LD_SWITCH_SYSTEM_TEMACS): ... here.
- * term.c (encode_terminal_code): Encode byte chars to the
- correspnding bytes.
+ * sysdep.c (child_setup_tty, init_sys_modes): Remove !IBMR2AIX code,
+ unused.
-2010-08-17 Andreas Schwab <schwab@linux-m68k.org>
+2010-05-01 Eli Zaretskii <eliz@gnu.org>
- * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA_LISP
- instead of SAFE_ALLOCA.
+ Emulate POSIX_SIGNALS on MS-Windows.
-2010-08-17 Chong Yidong <cyd@stupidchicken.com>
+ * s/ms-w32.h (POSIX_SIGNALS, struct sigaction, SIG_BLOCK)
+ (SIG_SETMASK, SIG_UNBLOCK): Define.
- * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA
- (Bug#6214).
+ * sysdep.c (sys_signal) [WINDOWSNT]: #ifdef away.
+ (wait_for_termination) [WINDOWSNT]: Move MS-Windows specific code
+ from non-POSIX_SIGNALS section to POSIX_SIGNALS section.
-2010-08-14 Jan Djärv <jan.h.d@swipnet.se>
+ * w32.c (sigemptyset, sigaddset, sigfillset, sigprocmask):
+ New stubs.
- * doc.c (Fsnarf_documentation): Set skip_file only if p[1] is S.
+ Miscellaneous fixes of bidi display.
-2010-08-13 Jan Djärv <jan.h.d@swipnet.se>
+ * xdisp.c (find_row_end): New function, refactored from display_line.
+ (display_line): Use it.
+ (extend_face_to_end_of_line): In almost-filled rows, extend only
+ if the row is R2L and not continued.
+ (display_line): Fix prepending of truncation glyphs to R2L rows.
+ Preserve overlay and string info in row->end.
+ (insert_left_trunc_glyphs): Support addition of left truncation
+ glyphs to R2L rows.
+ (set_cursor_from_row): Don't place cursor on the vertical border
+ glyph between adjacent windows. Fix a crash when a display string
+ is continued to the next line. Don't return zero if cursor was
+ found by `cursor' property of a display string.
+ (try_cursor_movement): Don't assume that row->end == (row+1)->start,
+ test for that explicitly.
- * doc.c (Fsnarf_documentation): Initialize skip_file before
- build-files test.
+2010-05-01 Glenn Morris <rgm@gnu.org>
-2010-08-09 Peter O'Gorman <pogma@thewrittenword.com> (tiny change)
+ * Makefile.in (gmallocobj, rallocobj, vmlimitobj): Initialize to null,
+ for clarity.
+ (OTHER_OBJ): Remove.
+ (PRE_ALLOC_OBJ, POST_ALLOC_OBJ): New, set by configure.
+ (otherobj): Use PRE_ALLOC_OBJ, POST_ALLOC_OBJ rather than OTHER_OBJ.
- * s/hpux10-20.h (HAVE_TERMIOS, NO_TERMIO, ORDINARY_LINK):
- New definitions.
- (HAVE_TERMIO): Remove.
+2010-05-01 Karel Klíč <kklic@redhat.com>
+
+ * fileio.c (Ffile_selinux_context): Context functions may return null.
+
+2010-04-30 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * s/gnu.h (POSIX_SIGNALS, START_FILES): New definitions.
+
+2010-04-30 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (vmlimitobj) [!SYSTEM_MALLOC]: New variable. (Bug#6065)
+ (OTHER_OBJ): Define as a separate variable, for clarity.
+
+2010-04-30 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xsettings.c: include limits.h and update file comment.
+
+2010-04-30 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (OLDXMENU, LIBXMENU) [HAVE_MENUS]:
+ Set with configure, not cpp.
+ (LIBW): Remove, replace with $TOOLKIT_LIBW.
+
+ * Makefile.in (mallocobj): Remove.
+ (otherobj): Simplify using @OTHER_OBJ@.
+
+ * Makefile.in (dispnew.o, frame.o, fringe.o, font.o, fontset.o)
+ (keyboard.o, window.o, xdisp.o, xfaces.o, menu.o):
+ Don't bother making nsgui.h dependency platform-specific.
+
+ * Makefile.in (nsfns.o): Remove duplicate nsgui.h dependency.
+
+2010-04-29 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * process.c (read_process_output, exec_sentinel): Don't burp if the
+ sentinel/filter kills the current buffer (bug#6060).
+
+ Fix wrong-docstring problem introduced with hash-consing. (Bug#6008)
+ * eval.c (Fautoload): Set doc to a unique number rather than to 0.
+ Remove unused var `args'.
+ * lisp.h (XSETCARFASTINT, XSETCDRFASTINT): Remove.
+ (LOADHIST_ATTACH): Wrap with do...while to avoid surprises for callers.
+ * doc.c (store_function_docstring): Use XSETCAR.
+
+2010-04-28 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT): New variables.
+ (WINDOW_SUPPORT) [HAVE_WINDOW_SYSTEM]: Use them.
+
+ * Makefile.in (CYGWIN_OBJ): Set with configure, not cpp.
+
+ * Makefile.in (GPM_MOUSE_SUPPORT): New, set by configure.
+ (MOUSE_SUPPORT) [!HAVE_MOUSE]: Use $GPM_MOUSE_SUPPORT.
+
+ * Makefile.in (FONT_OBJ): New, set by configure.
+ (FONT_DRIVERS): Use $FONT_OBJ.
+
+ * Makefile.in (LIBXMU): Set with configure, not cpp.
+ * s/aix4-2.h (LIBXMU):
+ * s/hpux10-20.h (LIBXMU):
+ Remove definition, now set in configure.
+
+ * Makefile.in (NS_OBJ, NS_SUPPORT): Set with configure, not cpp.
+
+ * m/amdx86-64.h [i386]: Move this test to configure.in.
+
+2010-04-27 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (LIBXTR6): Set with configure, not cpp.
+ * s/unixware.h (NEED_LIBW): Remove definition.
+
+ * Makefile.in (LUCID_LIBW, MOTIF_LIBW): Remove, replacing by...
+ (TOOLKIT_LIBW): New, set by configure.
+ (@X_TOOLKIT_TYPE@): No longer define it.
+
+ * Makefile.in (LIBXP): Remove, since included in MOTIF_LIBW.
+ (MOTIF_LIBW): Set with configure, not cpp.
+ * s/aix4-2.h (LIB_MOTIF):
+ * s/gnu-linux.h (LIB_MOTIF):
+ * s/unixware.h (LIB_MOTIF): Move to configure.in.
+
+2010-04-27 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Reduce CPP usage.
+ * Makefile.in (LIB_X11_LIB): Remove, inline in the only user.
+ (obj): Use autoconf for unexec instead of cpp.
+ (C_SWITCH_SYSTEM, C_SWITCH_MACHINE, C_SWITCH_X_SITE):
+ Remove definitions and undefs. Inline definitions in the only user.
+ (ALL_CFLAGS): Substitute C_SWITCH_X_SYSTEM using autoconf.
+
+2010-04-27 Glenn Morris <rgm@gnu.org>
+
+ * m/amdx86-64.h (START_FILES, LIB_STANDARD): Change the logic around,
+ since the defaults (set by the system file) are fine in most cases.
+ [GNU_LINUX, __OpenBSD__, __NetBSD__, __APPLE__]: Remove sections.
+ * m/ibms390x.h (START_FILES, LIB_STANDARD):
+ * m/macppc.h (START_FILES, LIB_STANDARD) [GNU_LINUX]:
+ * m/sparc.h (START_FILES, LIB_STANDARD) [__linux__]:
+ Remove definitions, since they are set correctly in s/gnu-linux.h.
+ * s/freebsd.h (START_FILES, LIB_STANDARD):
+ * s/gnu-linux.h (START_FILES, LIB_STANDARD):
+ * s/hpux10-20.h (START_FILES):
+ * s/netbsd.h (START_FILES, LIB_STANDARD, START_FILES_1, END_FILES_1):
+ Use $CRT_DIR in place of fixed /usr/lib, /lib directories.
+
+ * Makefile.in (LIBXP, LUCID_LIBW, WIDGET_OBJ): Set via configure.
+ (MOTIF_LIBW): Use $LIBXP.
+ (otherobj): Use $WIDGET_OBJ.
+
+2010-04-26 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * Makefile.in (LIBS_MACHINE): Remove, unused.
+
+ Use autoconf instead of cpp for LIB_MATH.
+ * s/darwin.h (LIB_MATH): Do not define here, move to configure.
+ * s/cygwin.h (LIB_MATH): Likewise.
+ * Makefile.in (LIB_MATH): Do not define with cpp.
+ (LIBES): Use autoconf for LIB_MATH.
+
+2010-04-26 Kenichi Handa <handa@m17n.org>
+
+ * composite.c (Ffind_composition_internal): Fix the return value
+ for an automatic composition.
+
+2010-04-25 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Remove all NO_ARG_ARRAY uses.
+ * fns.c (concat2, concat3, nconc2):
+ * eval.c (apply1, call1, call2, call3, call4, call5, call6)
+ (call7): Remove NO_ARG_ARRAY usage, assume it's always true.
+ * m/xtensa.h (NO_ARG_ARRAY):
+ * m/template.h (NO_ARG_ARRAY):
+ * m/sparc.h (NO_ARG_ARRAY):
+ * m/sh3.h (NO_ARG_ARRAY):
+ * m/mips.h (NO_ARG_ARRAY):
+ * m/macppc.h (NO_ARG_ARRAY):
+ * m/iris4d.h (NO_ARG_ARRAY):
+ * m/intel386.h (NO_ARG_ARRAY):
+ * m/ibms390x.h (NO_ARG_ARRAY):
+ * m/ibms390.h (NO_ARG_ARRAY):
+ * m/ibmrs6000.h (NO_ARG_ARRAY):
+ * m/ia64.h (NO_ARG_ARRAY):
+ * m/hp800.h (NO_ARG_ARRAY):
+ * m/arm.h (NO_ARG_ARRAY):
+ * m/amdx86-64.h (NO_ARG_ARRAY):
+ * m/alpha.h (NO_ARG_ARRAY): Remove definition.
+
+2010-04-25 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (display_line): Don't assume 2nd call to
+ get_next_display_element cannot return zero. (Bug#6030)
+ (iterate_out_of_display_property): New function, body from pop_it.
+ (pop_it): Use it.
+
+2010-04-24 Glenn Morris <rgm@gnu.org>
+
+ * m/amdx86-64.h (START_FILES, LIB_STANDARD) [__OpenBSD__]:
+ For clarity, revert to using fixed /usr/lib rather than $CRT_DIR.
+ (START_FILES, LIB_STANDARD) [__FreeBSD__]: Merge into the generic case,
+ since CRT_DIR defaults to /usr/lib. Suggested by Dan Nicolaescu.
+
+2010-04-24 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (display_line): Use `reseat' instead of `reseat_1', and
+ use `get_next_display_element' and `set_iterator_to_next' to
+ advance to the next character, when looking for the character that
+ begins the next row.
+
+ * .gdbinit: Add a "set Fmake_symbol" line to force GDB to load the
+ definition of "struct Lisp_Symbol".
+
+2010-04-24 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (CRT_DIR): New variable, set by configure.
+ * m/amdx86-64.h, m/ibms390x.h (START_FILES, LIB_STANDARD):
+ Use $CRT_DIR rather than HAVE_LIB64_DIR. (Bug#5655)
+
+2010-04-23 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * Makefile.in: Remove C_SWITCH_X_MACHINE, unused.
+
+ * s/cygwin.h (LIBS_DEBUG): Remove, unused.
+
+ Remove redundant flags.
+ * s/freebsd.h (C_SWITCH_SYSTEM):
+ * s/hpux10-20.h (C_SWITCH_X_SYSTEM, LD_SWITCH_X_DEFAULT):
+ * s/netbsd.h (C_SWITCH_SYSTEM):
+ * s/openbsd.h (LD_SWITCH_X_DEFAULT): Remove, configure takes care
+ of these.
+
+ Simplify m/intel386.h.
+ * m/intel386.h (CRT0_DUMMIES): Remove, inline value in the only
+ user: ecrt0.c.
+ (SOLARIS2): Remove LOAD_AVE_TYPE, LOAD_AVE_CVT, LIBS_MACHINE, unused.
+ (USG5_4): Move LOAD_AVE_TYPE, LOAD_AVE_CVT, FSCALE definitions to
+ the only user: s/unixware.h.
+ * ecrt0.c: Remove #ifndef static. Inline CRT0_DUMMIES definition
+ from m/intel386.h.
+ * s/unixware.h (LOAD_AVE_TYPE, LOAD_AVE_CVT, FSCALE):
+ Definitions moved here from m/intel386.h.
+
+ * m/mips.h: Remove #if 0 code.
+
+2010-04-23 Eli Zaretskii <eliz@gnu.org>
+
+ Fix display of composed characters from L2R scripts in bidi buffers.
+ * xdisp.c (set_iterator_to_next, next_element_from_composition):
+ After advancing IT past the composition, resync the bidi iterator
+ with IT's position. (Bug#5977)
+
+2010-04-23 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * Makefile.in (LD_SWITCH_MACHINE_TEMACS): Remove, unused.
+ (TEMACS_LDFLAGS): Don't use LD_SWITCH_SYSTEM_TEMACS.
+
+2010-04-23 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * gtkutil.c: Include xsettings.h for Ftool_bar_get_system_style.
+
+2010-04-23 Eli Zaretskii <eliz@gnu.org>
+
+ Support `display' text properties and overlay strings in bidi buffers.
+ * xdisp.c (pop_it): When the stack is popped after displaying
+ from a string, bidi-iterate to exit from the text portion covered
+ by the `display' property or overlay. (Bug#5988, bug#5920)
+
+2010-04-23 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * m/macppc.h (LD_SWITCH_SYSTEM_TEMACS): Remove #undef.
+ (LD_SWITCH_MACHINE_TEMACS): Remove, configure sets nocombreloc.
+
+ * s/netbsd.h (LD_SWITCH_SYSTEM_TEMACS): Remove, configure sets nocombreloc.
+ * s/openbsd.h (LD_SWITCH_SYSTEM_TEMACS): Remove.
+
+ Simplify STARTFILES definition.
+ * s/hpux10-20.h (START_FILES): Explicitly define here instead of
+ relying on Makefile.in to define it.
+ * s/cygwin.h (START_FILES): Likewise.
+ * Makefile.in (STARTFILES): Remove conditional code, not needed anymore.
+
+ Clean up Solaris code.
+ * s/sol2-6.h (LD_SWITCH_SYSTEM_TEMACS, C_SWITCH_X_SYSTEM)
+ (LIB_MOTIF): Remove, configure takes care of this.
+ (NOT_USING_MOTIF): Remove, unused.
+ * xrdb.c: Remove #if 0-ed #include.
+ (SYSV): Remove conditional for old SysV.
+ * sysdep.c (closedir): Remove conditional code for Solaris,
+ Solaris has closedir.
+
+2010-04-22 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xsettings.c (read_and_apply_settings): Check if current_font is
+ NULL before strcmp (Bug#6001).
+
+2010-04-21 Dan Nicolaescu <dann@ics.uci.edu>
+
+ Clean up HP-UX files.
+ * m/hp800.h (NO_REMAP, VIRT_ADDR_VARIES, DATA_SEG_BITS)
+ (DATA_START, TEXT_START, LOAD_AVE_TYPE, LOAD_AVE_CVT)
+ (LDAV_SYMBOL, index, rindex): Move definitions only used in HP-UX ...
+ * s/hpux10-20.h: ... to the only user, here.
+
+2010-04-21 Eli Zaretskii <eliz@gnu.org>
+
+ * bidi.c (bidi_find_paragraph_start, bidi_at_paragraph_end): Don't
+ use buffer-local values of paragraph-start and paragraph-separate.
+ <paragraph_start_re, paragraph_separate_re>: Rename from
+ fallback_paragraph_start_re and fallback_paragraph_separate_re.
+ (Bug#5992)
+
+2010-04-21 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xsettings.c: Qmonospace_font_name, Qtool_bar_style and
+ current_tool_bar_style are new.
+ (store_config_changed_event): Rename from store_font_changed_event.
+ (XSETTINGS_TOOL_BAR_STYLE): New define.
+ (SEEN_FONT, SEEN_TB_STYLE): New enum values.
+ (struct xsettings): Add font and tb_style, set xft stuff inside #ifdef
+ HAVE_XFT.
+ (something_changedCB): store_font_changed_event is now
+ store_config_changed_event.
+ (parse_settings): Rename from parse_xft_settings.
+ Read non-xft xsettings outside #ifdef HAVE_XFT.
+ (read_settings): Rename from read_xft_settings.
+ (apply_xft_settings): Take current settings as parameter. Do not
+ call read_(xft)_settings.
+ (read_and_apply_settings): New function.
+ (xft_settings_event): Do non-xft stuff out of HAVE_XFT.
+ Call read_and_apply_settings if there are settings to be read.
+ (init_xsettings): Rename from init_xfd_settings.
+ Call read_and_apply_settings unconditionally.
+ (xsettings_initialize): Call init_xsettings.
+ (Ftool_bar_get_system_style): New function.
+ (syms_of_xsettings): Define Qmonospace_font_name and
+ Qtool_bar_style. Initialize current_tool_bar_style to nil.
+ defsubr Stool_bar_get_system_style. Fprovide on
+ dynamic-setting.
+ Move misplaced HAVE_GCONF
+
+ * xsettings.h (Ftool_bar_get_system_style): Declare.
+
+ * xdisp.c: Vtool_bar_style, tool_bar_max_label_size,
+ Qtext, Qboth, Qboth_horiz are new.
+ (syms_of_xdisp): Intern Qtext, Qboth, Qboth_horiz, DEFVAR
+ Vtool_bar_style, tool_bar_max_label_size.
+
+ * lisp.h: Extern declare Qtext, Qboth, Qboth_horiz.
+
+ * keyboard.c: QClabel is new.
+ (parse_tool_bar_item): Take out QClabel from tool bar items.
+ Try to construct a label if ther is no QClabel.
+ (syms_of_keyboard): Intern :label as QClabel.
+
+ * dispextern.h (tool_bar_item_idx): TOOL_BAR_ITEM_LABEL is new.
+ (Vtool_bar_style, tool_bar_max_label_size, DEFAULT_TOOL_BAR_LABEL_SIZE):
+ New.
+
+ * Makefile.in (SOME_MACHINE_LISP): font-setting.el renamed to
+ dynamic-setting.el.
+
+ * gtkutil.c (xg_tool_bar_menu_proxy): Handle label in tool bar item.
+ (xg_make_tool_item, xg_show_toolbar_item): New function.
+ (update_frame_tool_bar): Take label from TOOL_BAR_ITEM_LABEL.
+ Call xg_make_tool_item to make a tool bar item.
+ Call xg_show_toolbar_item. Use wtoolbar instead of x->toolbar_widget.
+
+ * xterm.c (x_draw_image_relief): Take Vtool_bar_button_margin
+ into account for toolbars.
+
+2010-04-21 Jan Djärv <jan.h.d@swipnet.se>
+
+ * data.c (make_blv): Declarations before code (Bug#5993).
+
+2010-04-21 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (DBUS_OBJ, GTK_OBJ, XMENU_OBJ, XOBJ):
+ Define using autoconf, not cpp.
+ (LIBXSM): New variable, set by autoconf.
+ (LIBXT): Use $LIBXSM.
+
+2010-04-21 Dan Nicolaescu <local_user@dannlt>
+
+ Remove NOMULTIPLEJOBS, unused.
+ * s/template.h (NOMULTIPLEJOBS):
+ * s/msdos.h (NOMULTIPLEJOBS): Remove, unused.
+
+ Simplify LD_SWITCH_SYSTEM_TEMACS usage.
+ * s/freebsd.h (LD_SWITCH_SYSTEM_TEMACS):
+ * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Remove, configure
+ detects -znocombreloc and passes it to the linker
+ * s/hpux10-20.h (LD_SWITCH_SYSTEM_TEMACS): Remove, empty.
+
+2010-04-21 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (LIBSELINUX_LIBS): Move out of #ifdef.
+
+2010-04-21 Karel Klíč <kklic@redhat.com>
+
+ * Makefile.in (LIBSELINUX_LIBS): New.
+ (LIBES): Add $LIBSELINUX_LIBS.
+ * eval.c, lisp.h (call7): New function.
+ * fileio.c [HAVE_LIBSELINUX]: Include selinux headers.
+ (Ffile_selinux_context, Fset_file_selinux_context):
+ New functions.
+ (Fcopy_file): New parameter preserve-selinux-context.
+ (Frename_file): Preserve selinux context when renaming by copy-file.
+
+2010-04-21 Juanma Barranquero <lekktu@gmail.com>
+ Eli Zaretskii <eliz@gnu.org>
+
+ Don't depend on cm.c or termcap.c on Windows, use stubs.
+ * makefile.w32-in (OBJ1): Remove cm.$(O) and termcap.$(O).
+ ($(BLD)/cm.$(O), $(BLD)/termcap.$(O)): Remove.
+ * w32console.c (current_tty, cost): New vars; lifted from cm.c.
+ (evalcost, cmputc, cmcheckmagic, cmcostinit, cmgoto, Wcm_clear)
+ (sys_tputs, sys_tgetstr): New stubs.
+ * s/ms-w32.h (chcheckmagic, cmcostinit, cmgoto, cmputc, Wcm_clear)
+ (tputs, tgetstr): New; define to sys_*.
+
+2010-04-20 Juanma Barranquero <lekktu@gmail.com>
+
+ * buffer.c (syms_of_buffer) <bidi-display-reordering>: Doc fix.
+
+2010-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
+ Just signal a warning rather than an error when inside a let.
+ (Fmake_variable_frame_local): Add the same test.
+
+ * font.c (syms_of_font): Make the style table vars read-only.
+
+ * buffer.h (struct buffer): Remove unused var `direction_reversed'.
+ * buffer.c (init_buffer_once, syms_of_buffer): Remove its initialization.
+
+ * bidi.c (bidi_initialize): Simplify fallback_paragraph_*_re init.
+
+2010-04-20 Eli Zaretskii <eliz@gnu.org>
+
+ Fix R2L paragraph display on TTY.
+
+ * xdisp.c (unproduce_glyphs): New function.
+ (display_line): Use it when produced glyphs are discarded from R2L
+ glyph rows.
+ (append_composite_glyph): In R2L rows, prepend the glyph rather
+ than appending it.
+
+ * term.c (append_composite_glyph): In R2L rows, prepend the glyph
+ rather than append it. Set up the resolved_level and bidi_type
+ attributes of the appended glyph.
+ (produce_special_glyphs): Mirror the backslash continuation
+ character in R2L lines.
+
+ Implement display of R2L paragraphs in GUI sessions.
+
+ * xdisp.c [HAVE_WINDOW_SYSTEM]: Add prototype for
+ append_stretch_glyph.
+ (set_cursor_from_row) <cursor_x>: Remove unused variable.
+ Fix off-by-one error in computing x at end of text in the row.
+ (append_stretch_glyph): In reversed row, prepend the glyph rather
+ than append it. Set resolved_level and bidi_type of the glyph.
+ (extend_face_to_end_of_line): If the row is reversed, prepend a
+ stretch glyph whose width is such that the rightmost glyph will be
+ drawn at the right margin of the window. Fix off-by-one error on
+ TTY frames in testing whether a line needs face extension.
+ Fix face extension at ZV. If this is the last glyph row, use
+ DEFAULT_FACE_ID, to avoid painting the rest of the window with the
+ region face.
+ (set_cursor_from_row, display_line):
+ Use MATRIX_ROW_CONTINUATION_LINE_P instead of testing value of
+ row->continuation_lines_width.
+ (next_element_from_buffer): Don't call bidi_paragraph_init if we
+ are at ZV. Fixes a crash when reseated to ZV by
+ try_window_reusing_current_matrix.
+ (display_and_set_cursor, erase_phys_cursor): Handle negative HPOS,
+ which happens with R2L glyph rows. Fixes a crash when inserting a
+ character at end of an R2L line.
+ (set_cursor_from_row): Don't be fooled by truncated rows: don't
+ treat them as having zero-width characters. Improve comments.
+ Don't reverse pos_before and pos_after for reversed glyph rows.
+ Set cursor.x to negative value when the cursor might be on the
+ left fringe.
+ (IT_OVERFLOW_NEWLINE_INTO_FRINGE): For R2L lines, consider the
+ left fringe, not the right one.
+ (notice_overwritten_cursor, draw_phys_cursor_glyph)
+ (erase_phys_cursor): For reversed cursor_row, support cursor on
+ the left fringe.
+
+ * fringe.c (update_window_fringes): For R2L rows, swap the bitmaps
+ of continuation indicators on the fringes.
+ (draw_fringe_bitmap): For reversed glyph rows, allow cursor on the
+ left fringe.
+
+ * w32term.c (w32_draw_window_cursor): For reversed glyph rows,
+ draw cursor on the left fringe.
+
+ * xterm.c (x_draw_window_cursor): For reversed glyph rows, draw
+ cursor on the left fringe.
+
+ * dispnew.c (update_text_area): Handle reversed desired rows when
+ the cursor is on the left fringe.
+ (set_window_cursor_after_update): Limit cursor's hpos by -1 from
+ below, not by 0, for when the cursor is on the left fringe.
+
+2010-04-20 Jan Djärv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (xg_event_is_for_scrollbar): Check if grabbed
+ widget is a scrollbar.
+
+2010-04-20 Kenichi Handa <handa@m17n.org>
+
+ * charset.c (char_charset): Consider Vcharset_non_preferred_head
+ only when the arg CHARSET_LIST is nil.
+
+2010-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ Make variable forwarding explicit rather the using special values.
+ Basically, this makes the structure of buffer-local values and object
+ forwarding explicit in the type of Lisp_Symbols rather than use
+ special Lisp_Objects for that. This tends to lead to slightly more
+ verbose code, but is more C-like, simpler, and makes it easier to make
+ sure we handled all cases, among other things by letting the compiler
+ help us check it.
+ * lisp.h (enum Lisp_Misc_Type, union Lisp_Misc):
+ Removing forwarding objects.
+ (enum Lisp_Fwd_Type, enum symbol_redirect, union Lisp_Fwd): New types.
+ (struct Lisp_Symbol): Make the various forms of variable-forwarding
+ explicit rather than hiding them inside Lisp_Object "values".
+ (XFWDTYPE): New macro.
+ (XINTFWD, XBOOLFWD, XOBJFWD, XKBOARD_OBJFWD): Redefine.
+ (XBUFFER_LOCAL_VALUE): Remove.
+ (SYMBOL_VAL, SYMBOL_ALIAS, SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL)
+ (SET_SYMBOL_ALIAS, SET_SYMBOL_BLV, SET_SYMBOL_FWD): New macros.
+ (SYMBOL_VALUE, SET_SYMBOL_VALUE): Remove.
+ (struct Lisp_Intfwd, struct Lisp_Boolfwd, struct Lisp_Objfwd)
+ (struct Lisp_Buffer_Objfwd, struct Lisp_Kboard_Objfwd):
+ Remove the Lisp_Misc_* header.
+ (struct Lisp_Buffer_Local_Value): Redefine.
+ (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): New macros.
+ (struct Lisp_Misc_Any): Add filler to get the right size.
+ (struct Lisp_Free): Use struct Lisp_Misc_Any rather than struct
+ Lisp_Intfwd.
+ (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
+ (DEFVAR_KBOARD): Allocate a forwarding object.
+ * data.c (do_blv_forwarding, store_blv_forwarding): New macros.
+ (let_shadows_global_binding_p): New function.
+ (union Lisp_Val_Fwd): New type.
+ (make_blv): New function.
+ (swap_in_symval_forwarding, indirect_variable, do_symval_forwarding)
+ (store_symval_forwarding, swap_in_global_binding, Fboundp)
+ (swap_in_symval_forwarding, find_symbol_value, Fset)
+ (let_shadows_buffer_binding_p, set_internal, default_value)
+ (Fset_default, Fmake_variable_buffer_local, Fmake_local_variable)
+ (Fkill_local_variable, Fmake_variable_frame_local)
+ (Flocal_variable_p, Flocal_variable_if_set_p)
+ (Fvariable_binding_locus):
+ * xdisp.c (select_frame_for_redisplay):
+ * lread.c (Fintern, Funintern, init_obarray, defvar_int)
+ (defvar_bool, defvar_lisp_nopro, defvar_lisp, defvar_kboard):
+ * frame.c (store_frame_param):
+ * eval.c (Fdefvaralias, Fuser_variable_p, specbind, unbind_to):
+ * bytecode.c (Fbyte_code) <varref, varset>: Adapt to the new symbol
+ value structure.
+ * buffer.c (PER_BUFFER_SYMBOL): Move from buffer.h.
+ (clone_per_buffer_values): Only adjust markers into the current buffer.
+ (reset_buffer_local_variables): PER_BUFFER_IDX is never -2.
+ (Fbuffer_local_value, set_buffer_internal_1)
+ (swap_out_buffer_local_variables):
+ Adapt to the new symbol value structure.
+ (DEFVAR_PER_BUFFER): Allocate a Lisp_Buffer_Objfwd object.
+ (defvar_per_buffer): Take a new arg for the fwd object.
+ (buffer_lisp_local_variables): Return a proper alist (different fix
+ for bug#4138).
+ * alloc.c (Fmake_symbol): Use SET_SYMBOL_VAL.
+ (Fgarbage_collect): Don't handle buffer_defaults specially.
+ (mark_object): Handle new symbol value structure rather than the old
+ special Lisp_Misc_* objects.
+ (gc_sweep) <symbols>: Free also the buffer-local-value objects.
+ * term.c (set_tty_color_mode):
+ * bidi.c (bidi_initialize): Don't access the ->value field directly.
+ * buffer.h (PER_BUFFER_VAR_OFFSET): Don't bother with
+ a buffer_local_flags.
+ * print.c (print_object): Get rid of impossible forwarding objects.
+
+2010-04-19 Eli Zaretskii <eliz@gnu.org>
+
+ * bidi.c (bidi_get_type, bidi_get_category)
+ (bidi_at_paragraph_end, bidi_resolve_weak, bidi_resolve_neutral)
+ (bidi_type_of_next_char, bidi_level_of_next_char):
+ Declare static. Use `INLINE' rather than `inline'.
+
+2010-04-19 Juanma Barranquero <lekktu@gmail.com>
+
+ * dired.c (Ffile_attributes): Fix typo in docstring.
+
+2010-04-19 Adrian Robert <Adrian.B.Robert@gmail.com>
+
+ * nsmenu.m (EmacsDialog-runDialogAt:): Declare ret as
+ NSInteger (Bug#5811).
+
+2010-04-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
+ (PTY_OPEN): New defines. Use openpty (Bug#726, Bug#5819).
+
+2010-04-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-2010-08-06 Kenichi Handa <handa@m17n.org>
+ * frame.h (FRAME_LINE_TO_PIXEL_Y): Add missing parenthesis.
- * charset.c: Include <stdlib.h>
- (struct charset_sort_data): New struct.
- (charset_compare): New function.
- (Fsort_charsets): New function.
- (syms_of_charset): Declare Fsort_charsets as a Lisp function.
+2010-04-19 Chong Yidong <cyd@stupidchicken.com>
- * coding.c (decode_coding_iso_2022): Fix checking of dimension
- number in CTEXT extended segment.
+ * xdisp.c (prepare_menu_bars): Don't call ns_set_doc_edited for
+ terminal frames (Bug#5837).
-2010-08-01 Juanma Barranquero <lekktu@gmail.com>
+2010-04-19 Eli Zaretskii <eliz@gnu.org>
- * w32fns.c (syms_of_w32fns) <x-max-tooltip-size>: Fix typo in docstring.
- * xfns.c (syms_of_xfns) <x-max-tooltip-size>: Reflow docstring.
+ * .gdbinit (xsubchartable): New command.
-2010-07-30 Juanma Barranquero <lekktu@gmail.com>
+2010-04-19 Eli Zaretskii <eliz@gnu.org>
- * fns.c (Fsubstring_no_properties, Fnthcdr, Ffeaturep)
- (Fhash_table_size): Fix typos in docstrings.
- (Fmake_hash_table): Doc fix.
+ * xdisp.c (display_line): Don't write beyond the last glyph row in
+ the desired matrix. Fixes a crash in "emacs -nw" (bug#5972), see
+ http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00075.html
+ and
+ http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00213.html
-2010-07-28 Juanma Barranquero <lekktu@gmail.com>
+2010-04-18 Stefan Monnier <monnier@iro.umontreal.ca>
- * minibuf.c (syms_of_minibuf) <read-buffer-function>:
- Doc fix (bug#5625).
+ * alloc.c (Fpurecopy): Hash-cons if requested.
+ (syms_of_alloc): Update purify-flag docstring.
-2010-07-27 Ken Brown <kbrown@cornell.edu>
+2010-04-18 Jan Djärv <jan.h.d@swipnet.se>
- * dired.c (DIRENTRY_NONEMPTY) [cygwin]: Use d_ino instead of
- the MSDOS definition.
+ * gtkutil.c (xg_set_geometry): Set size in geometry string also.
+ (x_wm_set_size_hint): Set USER_POS in hint_flags (Bug#5968).
-2010-07-25 Christoph Scholtes <cschol2112@gmail.com>
+2010-04-17 Eli Zaretskii <eliz@gnu.org>
- * minibuf.c (Fread_buffer): Doc fix (bug#6528).
+ Fix a crash when an NSM character is inserted at BEGV.
-2010-07-22 Christoph Scholtes <cschol2112@gmail.com>
+ * bidi.c (bidi_init_it): Fix initialization of bidi_it->prev.
+ (bidi_resolve_weak): Don't use prev.type_after_w1 if it is
+ NEUTRAL_B or UNKNOWN_BT.
- * window.c (Fwindow_height): Doc fix (bug#6518).
+2010-04-16 Eli Zaretskii <eliz@gnu.org>
-2010-07-21 Juanma Barranquero <lekktu@gmail.com>
+ * xdisp.c (set_cursor_from_row): Don't consider possibility of
+ other rows with cursor unless they are different from this row and
+ this row is part of a continued line. (Bug#5943)
- * buffer.c (syms_of_buffer) <fringe-indicator-alist>: Doc fix.
+2010-04-16 Dan Nicolaescu <dann@ics.uci.edu>
-2010-07-17 Jan Djärv <jan.h.d@swipnet.se>
+ * s/freebsd.h: Restore osreldate.h include.
+ Suggested by Naohiro Aota.
- * gtkutil.c (xg_event_is_for_menubar): Also check that event window
- is related to the menu bar (Bug#6499).
+2010-04-16 Jan Djärv <jan.h.d@swipnet.se>
-2010-07-14 Jan Djärv <jan.h.d@swipnet.se>
+ * xmenu.c (apply_systemfont_to_menu): *childs was incorrectly used.
- * xterm.h (x_menubar_window_to_frame): Second parameter is XEvent*.
+2010-04-16 Ken Brown <kbrown@cornell.edu> (tiny change)
- * xterm.c (handle_one_xevent): Pass event to x_menubar_window_to_frame.
+ * s/cygwin.h: Avoid linking against static libgcc.
- * xmenu.c (x_activate_menubar): Revert previous fix for Bug#6499,
- i.e. don't put back ButtonRelease (Bug#6608).
+2010-04-15 Juri Linkov <juri@jurta.org>
- * xfns.c (x_menubar_window_to_frame): Take XEvent as second parameter
- instead of Window. Call xg_event_is_for_menubar when
- USE_GTK (Bug#6499).
+ * window.c: Add Qscroll_command.
+ Remove Vscroll_preserve_screen_position_commands.
+ (window_scroll_pixel_based, window_scroll_line_based): Check the
+ `scroll-command' property on the last command instead of searching
+ the last command in Vscroll_preserve_screen_position_commands.
+ (syms_of_window): Initialize and staticpro `Qscroll_command'.
+ Put Qscroll_command property on Qscroll_up and Qscroll_down.
+ (scroll-preserve-screen-position): Doc fix.
+ (Vscroll_preserve_screen_position_commands): Remove variable.
- * gtkutil.h (xg_event_is_for_menubar): Declare.
+2010-04-15 Dan Nicolaescu <dann@ics.uci.edu>
- * gtkutil.c (xg_event_is_for_menubar): New function (Bug#6499).
+ * xdisp.c (message): Do not use NO_ARG_ARRAY.
-2010-07-14 Eli Zaretskii <eliz@gnu.org>
+2010-04-14 Dan Nicolaescu <dann@ics.uci.edu>
- * w32fns.c (x_set_foreground_color): Fix setting the cursor color
- when it's the same as the old foreground. (Bug#6609)
+ Reduce cpp use in Makefile.in.
+ * Makefile.in (DBUS_CFLAGS, DBUS_LIBS, GCONF_CFLAGS, GCONF_LIBS)
+ (LIBSOUND, CFLAGS_SOUND, RSVG_LIBS, RSVG_CFLAGS, INTERVALS_H)
+ (GETLOADAVG_LIBS, RUN_TEMACS): Move to the autoconf section.
+ (ORDINARY_LINK): Remove, defined in src/s/gnu.h.
+ (CRT0_COMPILE): Remove, inline it in the only user.
-2010-07-10 Chong Yidong <cyd@stupidchicken.com>
+2010-04-14 Juri Linkov <juri@jurta.org>
- * xfaces.c (realize_face): Garbage the frame if a face is removed
- (Bug#6593).
+ * window.c (keys_of_window): Rebind `C-v' from `scroll-up' to
+ `scroll-up-command' and `M-v' from `scroll-down' to
+ `scroll-down-command'.
-2010-07-05 Andreas Schwab <schwab@linux-m68k.org>
+2010-04-14 Juri Linkov <juri@jurta.org>
- * keyboard.c: Remove duplicate <setjmp.h>.
- (read_key_sequence): Remove volatile qualifiers.
+ * window.c (Vscroll_preserve_screen_position_commands): New variable
+ with the default value as the list of Qscroll_down and Qscroll_up.
+ (window_scroll_pixel_based, window_scroll_line_based): Search the
+ last command in the list Vscroll_preserve_screen_position_commands
+ instead of comparing with Qscroll_up and Qscroll_down.
-2010-07-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+2010-04-13 Jan Djärv <jan.h.d@swipnet.se>
- * dispextern.h (FRINGE_HEIGHT_BITS): New define.
- (struct glyph_row): New members left_fringe_offset and
- right_fringe_offset.
+ * gtkutil.c (xg_set_geometry): Set geometry for PPosition also.
+ (x_wm_set_size_hint): Dont set position flags, gtk_window_parse_geometry
+ does that.
- * xterm.c (x_draw_fringe_bitmap): Don't clip bottom aligned bitmap
- specially.
- * w32term.c (w32_draw_fringe_bitmap): Likewise.
- * nsterm.m (ns_draw_fringe_bitmap): Likewise.
+ * xfns.c (Fx_create_frame, x_create_tip_frame): Set default border width
+ to zero.
- * fringe.c (draw_fringe_bitmap_1): Don't clip bitmap here.
- Take account of bitmap offset.
- (draw_window_fringes): Take account of window vscroll.
- (update_window_fringes): Likewise. Extend top-aligned top indicator
- or bottom-aligned bottom indicator to adjacent rows if it doesn't fit
- in one row. Don't set redraw_fringe_bitmaps_p outside row comparison.
- Set left_fringe_offset and right_fringe_offset (Bug#5634, Bug#6325).
+2010-04-13 Stefan Monnier <monnier@iro.umontreal.ca>
-2010-07-04 Juanma Barranquero <lekktu@gmail.com>
+ * term.c (init_tty): Move common text outside of #ifdef TERMINFO.
- * w32fns.c (Qtooltip): Declare.
- Suggested by Andy Moreton <andrewjmoreton@gmail.com>.
+ Try to solve the problem of spurious EOF chars in long lines of text
+ sent to interactive subprocesses.
+ * sysdep.c (child_setup_tty): Do not enable ICANON any more.
+ (system_process_attributes): Remove unused var `ttotal'.
+ * process.c (send_process): Don't bother breaking long line with EOF
+ chars when talking to ttys any more.
+ (wait_reading_process_output): Output a warning when called in such
+ a way that it could block without being interruptible.
-2010-07-03 Jan Djärv <jan.h.d@swipnet.se>
+ Try to detect file modification within the same second.
+ * buffer.h (struct buffer): New field modtime_size.
+ * buffer.c (reset_buffer): Initialize it.
+ * fileio.c (Finsert_file_contents, Fwrite_region): Set it.
+ (Fverify_visited_file_modtime): Check it.
+ (Fclear_visited_file_modtime, Fset_visited_file_modtime): Clear it.
+ (Fset_visited_file_modtime): Set (or clear) it.
- * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid
- grab on just Press (Bug#6499).
+2010-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
-2010-07-02 Chong Yidong <cyd@stupidchicken.com>
+ * process.c (status_notify): Remove unused var `ro'.
- * frame.c (Qtooltip): New var.
- (delete_frame): Use it. Fix faulty if statement. Don't update
- mode line for tooltip frames. Suggested by Martin Rudalics.
+2010-04-12 Jan Djärv <jan.h.d@swipnet.se>
- * xfns.c (x_create_tip_frame):
- * w32fns.c (x_create_tip_frame): Use it.
+ * xfns.c (select_visual): Don't call error if XGetVisualInfo returns
+ more than one visual (Bug#5938).
-2010-06-30 Naohiro Aota <naota@elisp.net> (tiny change)
+2010-04-12 Dan Nicolaescu <dann@ics.uci.edu>
- * xftfont.c (xftfont_open): Check font width one by one also when
- spacing is dual.
+ * Makefile.in (C_SWITCH_SYSTEM,C_SWITCH_MACHINE,C_SWITCH_X_SITE):
+ Undefine.
- * ftfont.c (ftfont_open): Ditto.
+2010-04-11 Dan Nicolaescu <dann@ics.uci.edu>
-2010-06-26 Andreas Schwab <schwab@linux-m68k.org>
+ Remove C_SWITCH_SYSTEM_TEMACS.
+ * s/darwin.h (C_SWITCH_SYSTEM_TEMACS): Remove.
+ (malloc, realloc, free): Use emacs, not temacs for conditional
+ definition.
- * alloc.c (Fmake_byte_code): Don't access undefined argument
- (Bug#6517).
+ * Makefile.in (C_SWITCH_SYSTEM_TEMACS): Remove.
+ (ALL_CFLAGS): Do not use C_SWITCH_SYSTEM_TEMACS.
-2010-06-25 Chong Yidong <cyd@stupidchicken.com>
+ Use autoconf, not cpp for some variables.
+ * Makefile.in (C_SWITCH_SYSTEM, C_SWITCH_MACHINE)
+ (C_SWITCH_X_SITE): Define using autoconf, not cpp.
+ (ALL_CFLAGS): Use them as make variables.
+ (really-lwlib, really-oldXMenu): Do not pass them.
- * xdisp.c (next_element_from_image): Ensure that after-strings are
- read the next time we hit handle_stop (Bug#1336).
+2010-04-11 Jan Djärv <jan.h.d@swipnet.se>
-2010-06-23 Andreas Schwab <schwab@linux-m68k.org>
+ * xmenu.c (apply_systemfont_to_dialog): New.
+ (create_and_show_dialog): Call apply_systemfont_to_dialog if HAVE_XFT.
- * lread.c (read1): Signal error if #s is not followed by paren.
+2010-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
-2010-06-19 Chong Yidong <cyd@stupidchicken.com>
+ * process.c (exec_sentinel): Preserve current-buffer.
- * image.c (free_image): Mark frame as garbaged (Bug#6426).
+ * process.c (read_process_output): Move the save-current-buffer to
+ apply to both the filter and the non-filter branches.
- * keymap.c (Fdefine_key): Doc fix (Bug#6460).
+2010-04-10 Dan Nicolaescu <dann@ics.uci.edu>
-2010-06-15 Glenn Morris <rgm@gnu.org>
+ * s/msdos.h (UNEXEC): New definition.
- * editfns.c (Fbyte_to_string): Pacify compiler.
+2010-04-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-2010-06-09 Stefan Monnier <monnier@iro.umontreal.ca>
+ * dispextern.h (TRY_WINDOW_CHECK_MARGINS)
+ (TRY_WINDOW_IGNORE_FONTS_CHANGE): New defines.
- * dbusbind.c (xd_append_arg): Don't "make-unibyte" the string.
- Check `object's type before accessing its guts.
+ * xdisp.c (try_window): Change arg from CHECK_MARGINS to FLAGS.
+ Don't abort with fonts change if TRY_WINDOW_IGNORE_FONTS_CHANGE is
+ set in FLAGS. Callers with non-zero CHECK_MARGINS changed to use
+ TRY_WINDOW_CHECK_MARGINS.
-2010-06-08 Andreas Schwab <schwab@linux-m68k.org>
+ * xfns.c (Fx_show_tip): Undo last change. Call try_window with
+ TRY_WINDOW_IGNORE_FONTS_CHANGE (Bug#2423). Subtract last glyph's
+ width only when it is for padding.
- * minibuf.c (Fall_completions): Add more checks.
+2010-04-09 Jan Djärv <jan.h.d@swipnet.se>
-2010-06-08 Juanma Barranquero <lekktu@gmail.com>
+ * xfns.c (Fx_show_tip): Call try_window in a loop until
+ fonts_changed_p is zero (Bug#2423).
- * minibuf.c (Fall_completions): Check COLLECTION's size (bug#6378).
+2010-04-08 Eli Zaretskii <eliz@gnu.org>
-2010-06-03 Andreas Schwab <schwab@linux-m68k.org>
+ * xdisp.c (set_cursor_from_row): Don't dereference glyphs beyond
+ the end of TEXT_AREA. (Bug#5856)
- * process.c (conv_lisp_to_sockaddr): Fix conversion of IPv4
- address. (Bug#6346)
+2010-04-08 Jan Djärv <jan.h.d@swipnet.se>
-2010-06-03 Juanma Barranquero <lekktu@gmail.com>
+ * xsettings.c (XSETTINGS_FONT_NAME): Move XSETTINGS_FONT_NAME out of
+ HAVE_GCONF.
- * ccl.c (Fccl_program_p): Fix typo in docstring.
+2010-04-08 Eli Zaretskii <eliz@gnu.org>
-2010-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
+ * bidi.c (bidi_resolve_weak): Use prev.type_after_w1, instead of
+ prev.orig_type, for resolving type of NSM. (Bug#5858)
- * keymap.c (Fwhere_is_internal): Fix handling of remapping (in thread
- of bug#6305).
+2010-04-08 Jan Djärv <jan.h.d@swipnet.se>
-2010-05-27 Chong Yidong <cyd@stupidchicken.com>
+ * xsettings.c (current_font, SYSTEM_FONT, XSETTINGS_FONT_NAME): New.
+ (parse_xft_settings): Also check for XSETTINGS_FONT_NAME and save that
+ in current_font.
+ (init_gconf): Read value of SYSTEM_FONT and save it in current_font.
+ (Ffont_get_system_normal_font, xsettings_get_system_normal_font):
+ New functions.
+ (syms_of_xsettings): Initialize current_font.
+ defsubr Sfont_get_system_normal_font.
- * xdisp.c (redisplay_window): After redisplay, check if point is
- still valid before setting it (Bug#6177).
+ * xsettings.h (Ffont_get_system_normal_font)
+ (xsettings_get_system_normal_font): Declare.
-2010-05-20 enami tsugutomo <tsugutomo.enami@jp.sony.com>
+ * xfns.c (extern xlwmenu_default_font): Remove.
+ (Fx_create_frame): Remove setting of xlwmenu_default_font, moved
+ to xlwmenu.c.
- * s/netbsd.h: If terminfo is found, use it in preference to
- termcap. (Bug#6190) [Backport from trunk]
+ * menu.c (digest_single_submenu): If USE_LUCID and HAVE_XFT, encode
+ menu items in UTF-8.
-2010-05-20 Kevin Ryde <user42@zip.com.au>
+ * xmenu.c: include xsettings.h and xlwmenu.h if USE_LUCID.
+ (apply_systemfont_to_menu): New function.
+ (set_frame_menubar, create_and_show_popup_menu):
+ Call apply_systemfont_to_menu.
- * keyboard.c (Vlast_command, Vkeyboard_translate_table)
- (Voverriding_terminal_local_map, Vsystem_key_alist)
- (Vlocal_function_key_map): Fix manual link in docstring (Bug#6224).
+2010-04-07 Jan Djärv <jan.h.d@swipnet.se>
-2010-05-19 Stefan Monnier <monnier@iro.umontreal.ca>
+ * frame.h (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Don't use
+ FRAME_LINE_TO_PIXEL_Y.
- * editfns.c (Fbyte_to_string): New function.
+ * xterm.c (x_set_window_size_1): Don't add border_width/height to
+ pixelwidth/height.
-2010-05-18 Chong Yidong <cyd@stupidchicken.com>
+2010-04-07 Dan Nicolaescu <dann@ics.uci.edu>
- * character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to
- prevent stack overflow if number of arguments is too large
- (Bug#6214).
+ Simplify code for HP machines.
+ * m/hp800.h (LOAD_AVE_TYPE, LOAD_AVE_CVT, NO_REMAP): Do not define
+ for GNU_LINUX, not needed.
+ (UNEXEC, NEED_BSDTTY): Move definitions...
+ * s/hpux10-20.h (UNEXEC, NEED_BSDTTY): ... here.
-2010-05-11 Eli Zaretskii <eliz@gnu.org>
+ * m/iris4d.h (UNEXEC): Move definition ...
+ * s/irix6-5.h (UNEXEC): ... here.
- * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(SRC)/w32.h.
+2010-04-04 Jan Djärv <jan.h.d@swipnet.se>
- * w32fns.c: Include w32.h.
- (Fw32_shell_execute): Decode the error message before passing it
- to `error'. (Bug#6126)
+ * xfns.c (set_machine_and_pid_properties): New function.
+ (Fx_create_frame): Call set_machine_and_pid_properties.
-2010-05-11 Karel Klic <kklic@redhat.com>
+2010-04-03 Eli Zaretskii <eliz@gnu.org>
- * ftfont.c: Fix incorrect parentheses of #if condition for
- definining M17N_FLT_USE_NEW_FEATURE.
+ * bidi.c (bidi_resolve_explicit, bidi_level_of_next_char):
+ Check bidi_it->bytepos against ZV_BYTE instead of bidi_it->ch against
+ BIDI_EOB. Fixes infloop with vertical cursor motion at ZV.
-2010-05-07 Chong Yidong <cyd@stupidchicken.com>
+ * w32fns.c (x_create_tip_frame): Copy `parms' before we modify it
+ in this function. (Bug#5703)
- * Version 23.2 released.
+2010-04-03 Chong Yidong <cyd@stupidchicken.com>
-2010-04-30 Andreas Schwab <schwab@linux-m68k.org>
+ * nsterm.h: Fix last change.
- * composite.c (autocmp_chars): Save point as marker before calling
- auto-composition-function (Bug#5984).
+2010-04-03 Dan Nicolaescu <dann@ics.uci.edu>
- * lisp.h (restore_point_unwind): Add prototype.
+ * m/intel386.h (NO_REMAP): Move definition ...
+ * s/msdos.h (NO_REMAP): ... here.
- * fileio.c (restore_point_unwind): Remove static attribute.
+ * m/vax.h (CRT0_DUMMIES): Remove, unused.
-2010-04-23 Kenichi Handa <handa@m17n.org>
+ * ecrt0.c: Remove MSDOS, m68k and __sparc__ conditionals, file not
+ used on those platforms.
- * ftfont.c (M17N_FLT_USE_NEW_FEATURE): Define it if we can use the
- new feature of libotf and m17n-flt.
- (ftfont_check_otf) [M17N_FLT_USE_NEW_FEATURE]:
- Call OTF_check_features even if no specific feature is given.
- (PACK_OTF_TAG) [M17N_FLT_USE_NEW_FEATURE]: New macro.
- (ftfont_drive_otf) [M17N_FLT_USE_NEW_FEATURE]: Handle the case
- that OUT is NULL. Use OTF_drive_gsub_with_log and
- OTF_drive_gpos_with_log instead of OTF_drive_gsub and
- OTF_drive_gpos.
- (ftfont_try_otf) [M17N_FLT_USE_NEW_FEATURE]: New function.
- (ftfont_shape_by_flt) [M17N_FLT_USE_NEW_FEATURE]:
- Setup mflt_enable_new_feature and mflt_try_otf.
+2010-04-02 Dan Nicolaescu <dann@ics.uci.edu>
-2010-04-19 Juanma Barranquero <lekktu@gmail.com>
+ Remove extern errno declarations.
+ * xterm.c:
+ * xrdb.c:
+ * w32term.c:
+ * unexec.c:
+ * unexaix.c:
+ * sysdep.c:
+ * process.c:
+ * lread.c:
+ * keyboard.c:
+ * floatfns.c:
+ * filelock.c:
+ * fileio.c:
+ * emacs.c (main):
+ * ecrt0.c:
+ * dispnew.c:
+ * callproc.c:
+ * buffer.c: Remove errno extern declarations.
+ * s/netbsd.h (NEED_ERRNO): Remove.
- * dired.c (Ffile_attributes): Fix typo in docstring.
+2010-04-01 Dan Nicolaescu <dann@ics.uci.edu>
-2010-04-13 Adrian Robert <Adrian.B.Robert@gmail.com>
+ Remove all uses of LIBX11_SYSTEM.
+ * Makefile.in (LIBX11_SYSTEM): Remove.
+ * s/msdos.h (LIBX11_SYSTEM): Do not define, define LIBS_SYSTEM
+ instead.
- * nsmenu.m (EmacsDialog-runDialogAt:): Declare ret as
- NSInteger (Bug#5811).
+2010-04-01 Eli Zaretskii <eliz@gnu.org>
-2010-04-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+ Remove support for DJGPP v1.x (bug#5813).
- * s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
- (PTY_OPEN): New defines. Use openpty (Bug#726, Bug#5819).
+ * w16select.c (__dpmi_int): Remove DJGPP v1.x compatibility.
+ * s/msdos.h:
+ * unexec.c (make_hdr, copy_text_and_data):
+ * sysdep.c (wait_for_termination, sys_subshell):
+ * msdos.c (dos_set_window_size, msdos_set_cursor_shape)
+ (IT_set_terminal_modes, __write, _rename, gethostname)
+ (gettimeofday, alarm, fork, kill, dos_ttraw, dos_ttcooked)
+ (run_msdos_command, abort): Remove DJGPP v1.x code and tests of
+ the value of __DJGPP__.
+ (nice, pause, sigsetmask, sigblock): Remove DJGPP v1.x
+ compatibility code.
+ * lread.c:
+ * gmalloc.c (memalign):
+ * fileio.c (Fcopy_file, check_executable, Ffile_modes):
+ * emacs.c (main):
+ * dosfns.c (init_dosfns):
+ * dired.c (file_name_completion_stat): Remove tests of __DJGPP__.
-2010-04-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+2010-04-01 Eli Zaretskii <eliz@gnu.org>
- * frame.h (FRAME_LINE_TO_PIXEL_Y): Add missing parenthesis.
+ * xdisp.c (set_cursor_from_row): Fix cursor positioning when the
+ string with `cursor' property comes from an `after-string'
+ overlay. (Bug#5816)
-2010-04-07 Jan Djärv <jan.h.d@swipnet.se>
+2010-04-01 Glenn Morris <rgm@gnu.org>
- * frame.h (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Don't use
- FRAME_LINE_TO_PIXEL_Y.
+ * Makefile.in (LIBTIFF, LIBJPEG, LIBPNG, LIBGIF, LIBXPM, XFT_LIBS):
+ Define as Makefile variables.
+ (LIBX): Use above variables rather than directly using autoconf.
- * xterm.c (x_set_window_size_1): Don't add border_width/height to
- pixelwidth/height.
+2010-03-31 Dan Nicolaescu <dann@ics.uci.edu>
-2010-04-05 Chong Yidong <cyd@stupidchicken.com>
+ Clean up BSD_SYSTEM use.
+ * xterm.c:
+ * process.c:
+ * emacs.c: Use HAVE_SYS_IOCTL_H instead of BSD_SYSTEM as a guard
+ for including <sys/ioctl.h>.
+ * sysdep.c (wait_without_blocking): Remove BSD_SYSTEM case, this
+ code is only used for MSDOS.
- * xdisp.c (prepare_menu_bars): Don't call ns_set_doc_edited for
- terminal frames (Bug#5837).
+2010-03-31 Juri Linkov <juri@jurta.org>
+
+ * image.c: Add `Qextension_data'.
+ (syms_of_image): Initialize and staticpro `Qextension_data'.
+ (Fimage_metadata): Rename from `Fimage_extension_data'.
+ (gif_load): Put GIF extension data to the property
+ `Qextension_data'.
2010-03-31 Chong Yidong <cyd@stupidchicken.com>