Merge from trunk.

This commit is contained in:
Paul Eggert 2011-07-19 13:33:28 -07:00
commit 0d8de0fd0a
29 changed files with 607 additions and 404 deletions

View file

@ -123,132 +123,136 @@ names of the people who have checked it.
SECTION READERS
----------------------------------
etc/TUTORIAL rgm (but see Bug#3783)
etc/TUTORIAL.bg
etc/TUTORIAL.cn
etc/TUTORIAL.cs
etc/TUTORIAL.de Werner Lemberg
etc/TUTORIAL.eo
etc/TUTORIAL.es
etc/TUTORIAL.fr
etc/TUTORIAL.it
etc/TUTORIAL.ja
etc/TUTORIAL.ko
etc/TUTORIAL.nl
etc/TUTORIAL.pl
etc/TUTORIAL.pt_BR
etc/TUTORIAL.ro
etc/TUTORIAL.ru
etc/TUTORIAL.sk
etc/TUTORIAL.sl
etc/TUTORIAL.sv
etc/TUTORIAL.th
etc/TUTORIAL.zh
TUTORIAL
TUTORIAL.bg
TUTORIAL.cn
TUTORIAL.cs
TUTORIAL.de
TUTORIAL.eo
TUTORIAL.es
TUTORIAL.fr
TUTORIAL.he
TUTORIAL.it
TUTORIAL.ja
TUTORIAL.ko
TUTORIAL.nl
TUTORIAL.pl
TUTORIAL.pt_BR
TUTORIAL.ro
TUTORIAL.ru
TUTORIAL.sk
TUTORIAL.sl
TUTORIAL.sv
TUTORIAL.th
TUTORIAL.zh
** Check the manual.
abbrevs.texi -- cyd
ack.texi -- rgm
abbrevs.texi
ack.texi
anti.texi
arevert-xtra.texi
basic.texi -- cyd
buffers.texi -- cyd
building.texi -- cyd
calendar.texi -- rgm
cal-xtra.texi -- rgm
cmdargs.texi -- cyd
commands.texi -- cyd
custom.texi -- cyd
dired.texi -- cyd
basic.texi
buffers.texi
building.texi
calendar.texi
cal-xtra.texi
cmdargs.texi
commands.texi
custom.texi
dired.texi
dired-xtra.texi
display.texi -- cyd
emacs.texi -- cyd
display.texi
emacs.texi
emacs-xtra.texi
emerge-xtra.texi
entering.texi -- cyd
files.texi -- cyd
fixit.texi -- cyd
fortran-xtra.texi -- rgm
frames.texi -- cyd
entering.texi
files.texi
fixit.texi
fortran-xtra.texi
frames.texi
glossary.texi
help.texi -- cyd
indent.texi -- cyd
killing.texi -- cyd
kmacro.texi -- cyd
macos.texi -- davidswelt
maintaining.texi -- cyd
major.texi -- cyd
mark.texi -- cyd
mini.texi -- cyd
misc.texi -- cyd
msdog.texi -- eliz
msdog-xtra.texi -- eliz
mule.texi -- cyd
m-x.texi -- cyd
programs.texi -- cyd
regs.texi -- cyd
rmail.texi -- rgm
screen.texi -- cyd
search.texi -- cyd
sending.texi -- rgm (maybe needs some brief mailclient.el details in
"Mail Sending" section?)
text.texi -- cyd
trouble.texi -- cyd
windows.texi -- rudalics
xresources.texi -- cyd
help.texi
indent.texi
killing.texi
kmacro.texi
macos.texi
maintaining.texi
major.texi
mark.texi
mini.texi
misc.texi
msdog.texi
msdog-xtra.texi
mule.texi
m-x.texi
picture-xtra.texi
programs.texi
regs.texi
rmail.texi
screen.texi
search.texi
sending.texi
text.texi
trouble.texi
vc-xtra.texi
vc1-xtra.texi
windows.texi
xresources.texi
** Check the Lisp manual.
abbrevs.texi -- cyd
advice.texi -- cyd
anti.texi -- cyd
abbrevs.texi
advice.texi
anti.texi
back.texi
backups.texi -- cyd
buffers.texi -- cyd
commands.texi -- cyd
compile.texi -- cyd
control.texi -- cyd
customize.texi -- cyd
debugging.texi -- cyd
display.texi -- cyd
backups.texi
buffers.texi
commands.texi
compile.texi
control.texi
customize.texi
debugging.texi
display.texi
edebug.texi
elisp.texi
errors.texi -- cyd
eval.texi -- cyd
files.texi -- cyd
frames.texi -- cyd
functions.texi -- cyd
hash.texi -- cyd
help.texi -- cyd
hooks.texi -- cyd
errors.texi
eval.texi
files.texi
frames.texi
functions.texi
hash.texi
help.texi
hooks.texi
index.texi
internals.texi -- cyd
intro.texi -- cyd
keymaps.texi -- cyd
lists.texi -- cyd
loading.texi -- cyd
locals.texi -- cyd
macros.texi -- cyd
maps.texi -- cyd
markers.texi -- cyd
minibuf.texi -- cyd
modes.texi -- cyd
nonascii.texi -- cyd
numbers.texi -- cyd
objects.texi -- cyd
os.texi -- cyd
positions.texi -- cyd
internals.texi
intro.texi
keymaps.texi
lists.texi
loading.texi
locals.texi
macros.texi
maps.texi
markers.texi
minibuf.texi
modes.texi
nonascii.texi
numbers.texi
objects.texi
os.texi
package.texi
positions.texi
processes.texi
searching.texi -- cyd
sequences.texi -- cyd
streams.texi -- cyd
strings.texi -- cyd
symbols.texi -- cyd
syntax.texi -- cyd
text.texi -- cyd
tips.texi -- cyd
variables.texi -- cyd
windows.texi -- rudalics
searching.texi
sequences.texi
streams.texi
strings.texi
symbols.texi
syntax.texi
text.texi
tips.texi
variables.texi
windows.texi
* PLANNED ADDITIONS

View file

@ -1,3 +1,14 @@
2011-07-18 Andreas Schwab <schwab@linux-m68k.org>
* charsets/GB180302.map: Update to 2005 edition.
* charsets/GB180304.map: Likewise.
2011-07-17 Bill Wohler <wohler@newt.com>
Release MH-E version 8.2.93.
* NEWS, MH-E-NEWS: Update for MH-E release 8.2.93.
2011-07-16 Bill Wohler <wohler@newt.com>
Release MH-E version 8.2.92.

View file

@ -3,6 +3,11 @@
Copyright (C) 2001-2011 Free Software Foundation, Inc.
See the end of the file for license conditions.
* Changes in MH-E 8.2.93
Version 8.2.93 reverts back to using `switch-to-buffer' which the
Emacs developers decided was fine to call from programs after all.
* Changes in MH-E 8.2.92
Version 8.2.92 actually corrects the error in the modeline glyph when

View file

@ -488,7 +488,7 @@ $ESHELL nor variable `explicit-shell-file-name' is set.
** MH-E
*** Upgraded to MH-E version 8.2.92. See MH-E-NEWS for details.
*** Upgraded to MH-E version 8.2.93. See MH-E-NEWS for details.
** comint and modes derived from it use the generic completion code.
@ -1077,6 +1077,11 @@ syntactic rules.
** Syntax tables support a new "comment style c" additionally to style b.
** frame-local variables cannot be let-bound any more.
** prog-mode is a new major-mode meant to be the parent of programming mode.
The prog-mode-hook it defines can be used to enable features for
programming modes. For example:
(add-hook 'prog-mode-hook 'flyspell-prog-mode)
enables on the fly spell checking for comments and strings for
programming modes.
** define-minor-mode accepts a new keyword :variable.
** `delete-file' and `delete-directory' now accept optional arg TRASH.

View file

@ -2048,17 +2048,20 @@
0xA6B9-0xA6C0 0xE785
0xA6C1-0xA6D1 0x03B1
0xA6D2-0xA6D8 0x03C3
0xA6D9-0xA6DF 0xE78D
0xA6D9 0xFE10
0xA6DA 0xFE12
0xA6DB 0xFE11
0xA6DC-0xA6DF 0xFE13
0xA6E0-0xA6E1 0xFE35
0xA6E2-0xA6E3 0xFE39
0xA6E4-0xA6E5 0xFE3F
0xA6E6-0xA6E7 0xFE3D
0xA6E8-0xA6EB 0xFE41
0xA6EC-0xA6ED 0xE794
0xA6EC-0xA6ED 0xFE17
0xA6EE-0xA6EF 0xFE3B
0xA6F0-0xA6F1 0xFE37
0xA6F2 0xFE31
0xA6F3 0xE796
0xA6F3 0xFE19
0xA6F4-0xA6F5 0xFE33
0xA6F6-0xA6FE 0xE797
0xA740-0xA77E 0xE706
@ -2124,7 +2127,7 @@
0xA8B9 0x00FC
0xA8BA 0x00EA
0xA8BB 0x0251
0xA8BC 0xE7C7
0xA8BC 0x1E3F
0xA8BD 0x0144
0xA8BE 0x0148
0xA8BF 0x01F9
@ -10385,13 +10388,15 @@
0xFE4B-0xFE4C 0xFA23
0xFE4D-0xFE4F 0xFA27
0xFE50 0x2E81
0xFE51-0xFE53 0xE816
0xFE51 0x00020087
0xFE52 0x00020089
0xFE53 0x000200CC
0xFE54 0x2E84
0xFE55 0x3473
0xFE56 0x3447
0xFE57 0x2E88
0xFE58 0x2E8B
0xFE59 0xE81E
0xFE59 0x9FB4
0xFE5A 0x359E
0xFE5B 0x361A
0xFE5C 0x360E
@ -10399,17 +10404,18 @@
0xFE5E 0x2E97
0xFE5F 0x396E
0xFE60 0x3918
0xFE61 0xE826
0xFE61 0x9FB5
0xFE62 0x39CF
0xFE63 0x39DF
0xFE64 0x3A73
0xFE65 0x39D0
0xFE66-0xFE67 0xE82B
0xFE66-0xFE67 0x9FB6
0xFE68 0x3B4E
0xFE69 0x3C6E
0xFE6A 0x3CE0
0xFE6B 0x2EA7
0xFE6C-0xFE6D 0xE831
0xFE6C 0x000215D7
0xFE6D 0x9FB8
0xFE6E 0x2EAA
0xFE6F 0x4056
0xFE70 0x415F
@ -10417,7 +10423,7 @@
0xFE72 0x4337
0xFE73 0x2EB3
0xFE74-0xFE75 0x2EB6
0xFE76 0xE83B
0xFE76 0x0002298F
0xFE77 0x43B1
0xFE78 0x43AC
0xFE79 0x2EBB
@ -10425,7 +10431,7 @@
0xFE7B 0x44D6
0xFE7C 0x4661
0xFE7D 0x464C
0xFE7E 0xE843
0xFE7E 0x9FB9
0xFE80 0x4723
0xFE81 0x4729
0xFE82 0x477C
@ -10440,12 +10446,13 @@
0xFE8D 0x499B
0xFE8E 0x49B7
0xFE8F 0x49B6
0xFE90-0xFE91 0xE854
0xFE90 0x9FBA
0xFE91 0x000241FE
0xFE92 0x4CA3
0xFE93-0xFE95 0x4C9F
0xFE96 0x4C77
0xFE97 0x4CA2
0xFE98-0xFE9E 0x4D13
0xFE9F 0x4DAE
0xFEA0 0xE864
0xFEA0 0x9FBB
0xFEA1-0xFEFE 0xE468

View file

@ -40,7 +40,8 @@
0x8130CC30-0x8130D134 0x03CA
0x8130D135-0x8130D238 0x0402
0x8130D239 0x0450
0x8130D330-0x8136A531 0x0452
0x8130D330-0x8135F436 0x0452
0x8135F438-0x8136A531 0x1E40
0x8136A532-0x8136A533 0x2011
0x8136A534 0x2017
0x8136A535-0x8136A536 0x201A
@ -171,8 +172,10 @@
0x8234EB33-0x8234F633 0x4CA4
0x8234F634-0x82358731 0x4D1A
0x82358732-0x82358F32 0x4DAF
0x82358F33-0x8336C738 0x9FA6
0x82358F33-0x82359036 0x9FA6
0x82359135-0x8336C738 0x9FBC
0x8336C739 0xE76C
0x8135F437 0xE7C7
0x8336C830 0xE7C8
0x8336C831-0x8336C933 0xE7E7
0x8336C934 0xE815
@ -196,7 +199,8 @@
0x84309B39-0x84309C34 0xFA19
0x84309C35 0xFA22
0x84309C36-0x84309C37 0xFA25
0x84309C38-0x84318537 0xFA2A
0x84309C38-0x84318235 0xFA2A
0x84318336-0x84318537 0xFE1A
0x84318538 0xFE32
0x84318539-0x84318632 0xFE45
0x84318633 0xFE53

View file

@ -1,5 +1,38 @@
2011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
* view.el (view-buffer): Allow running in `special' modes if we're
visiting a file (bug#8615).
2011-07-19 Martin Rudalics <rudalics@gmx.at>
* window.el (display-buffer-alist-of-strings-p)
(display-buffer-alist-set-1, display-buffer-alist-set-2): New
functions.
(display-buffer-alist-set): Rewrite to handle Emacs 23 options
more accurately.
2011-07-18 Alan Mackenzie <acm@muc.de>
Fontify declarators properly when, e.g., a jit-lock chunk begins
inside a declaration.
* progmodes/cc-langs.el (c-symbol-chars): Correct a typo.
* progmodes/cc-fonts.el (c-font-lock-enclosing-decls): New
function.
(c-complex-decl-matchers): Insert reference to
c-font-lock-enclosing-decls.
* progmodes/cc-engine.el (c-backward-single-comment):
(c-backward-comments): Bind open-paren-in-column-0-is-defun-start
to nil around calls to (forward-comment -1).
2011-07-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
* image.el (put-image): Doc typo fix.
* progmodes/etags.el (tags-search): Doc typo fix.
* mail/smtpmail.el (smtpmail-via-smtp): Query the user for
password if we get errors 550 to 554.

View file

@ -282,7 +282,7 @@ Not documented
;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist
;;;;;; do* do loop return-from return block etypecase typecase ecase
;;;;;; case load-time-value eval-when destructuring-bind function*
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "2261724608e3223036b863d214f7dc0c")
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "9452c0e16fd960fce5c19e5c067a7160")
;;; Generated autoloads from cl-macs.el
(autoload 'gensym "cl-macs" "\

View file

@ -389,7 +389,7 @@ IMAGE must be an image created with `create-image' or `defimage'.
IMAGE is displayed by putting an overlay into the current buffer with a
`before-string' STRING that has a `display' property whose value is the
image. STRING is defaulted if you omit it.
The overlay created will have the `put-overlay' property set to t.
The overlay created will have the `put-image' property set to t.
POS may be an integer or marker.
AREA is where to display the image. AREA nil or omitted means
display it in the text area, a value of `left-margin' means

View file

@ -1,3 +1,14 @@
2011-07-17 Bill Wohler <wohler@newt.com>
Release MH-E version 8.2.93.
* mh-e.el (Version, mh-version): Update for release 8.2.93.
* mh-compat.el (mh-pop-to-buffer-same-window): Delete.
* mh-folder.el (mh-inc-folder, mh-modify, mh-scan-folder)
(mh-make-folder): Revert to switch-to-buffer, as the Emacs folks
decided that it was fine to use it in programs.
2011-07-16 Bill Wohler <wohler@newt.com>
Release MH-E version 8.2.92.

View file

@ -251,18 +251,6 @@ The argument STRING is ignored."
(buffer-substring-no-properties
(match-beginning num) (match-end num)))
(defun-mh mh-pop-to-buffer-same-window
pop-to-buffer-same-window (&optional buffer-or-name norecord label)
"Pop to buffer specified by BUFFER-OR-NAME in the selected window.
Another window will be used only if the buffer can't be shown in
the selected window, usually because it is dedicated to another
buffer. Optional arguments BUFFER-OR-NAME, NORECORD and LABEL are
as for `pop-to-buffer'. This macro is used by Emacs versions that
lack the `pop-to-buffer-same-window' function, introduced in
Emacs 24. The function `switch-to-buffer' is used instead and
LABEL is ignored."
(switch-to-buffer buffer-or-name norecord))
(defun-mh mh-replace-regexp-in-string replace-regexp-in-string
(regexp rep string &optional fixedcase literal subexp start)
"Replace REGEXP with REP everywhere in STRING and return result.

View file

@ -5,7 +5,7 @@
;; Author: Bill Wohler <wohler@newt.com>
;; Maintainer: Bill Wohler <wohler@newt.com>
;; Version: 8.2.92
;; Version: 8.2.93
;; Keywords: mail
;; This file is part of GNU Emacs.
@ -127,7 +127,7 @@
;; Try to keep variables local to a single file. Provide accessors if
;; variables are shared. Use this section as a last resort.
(defconst mh-version "8.2.92" "Version number of MH-E.")
(defconst mh-version "8.2.93" "Version number of MH-E.")
;; Variants

View file

@ -795,7 +795,7 @@ instead."
(setq threading-needed-flag mh-show-threads-flag)
(setq mh-previous-window-config config))
((not (eq (current-buffer) (get-buffer folder)))
(mh-pop-to-buffer-same-window folder)
(switch-to-buffer folder)
(setq mh-previous-window-config config))))
(mh-get-new-mail file)
(when (and threading-needed-flag
@ -855,7 +855,7 @@ From a program, edit MESSAGE; nil means edit current message."
;; Just show the edit buffer...
(delete-other-windows)
(mh-pop-to-buffer-same-window edit-buffer)))
(switch-to-buffer edit-buffer)))
;;;###mh-autoload
(defun mh-next-button (&optional backward-flag)
@ -1705,7 +1705,7 @@ DONT-EXEC-PENDING is non-nil."
(unless dont-exec-pending
(mh-process-or-undo-commands folder)
(mh-reset-threads-and-narrowing))
(mh-pop-to-buffer-same-window folder)))
(switch-to-buffer folder)))
(mh-regenerate-headers range)
(if (zerop (buffer-size))
(if (equal range "all")
@ -1786,7 +1786,7 @@ Also removes all content from the folder buffer."
(defun mh-make-folder (name)
"Create a new mail folder called NAME.
Make it the current folder."
(mh-pop-to-buffer-same-window name)
(switch-to-buffer name)
(setq buffer-read-only nil)
(erase-buffer)
(if mh-adaptive-cmd-note-flag

View file

@ -1301,12 +1301,13 @@ This function does not do any hidden buffer changes."
;; same line.
(re-search-forward "\\=\\s *[\n\r]" start t)
(if (if (forward-comment -1)
(if (if (let (open-paren-in-column-0-is-defun-start) (forward-comment -1))
(if (eolp)
;; If forward-comment above succeeded and we're at eol
;; then the newline we moved over above didn't end a
;; line comment, so we give it another go.
(forward-comment -1)
(let (open-paren-in-column-0-is-defun-start)
(forward-comment -1))
t))
;; Emacs <= 20 and XEmacs move back over the closer of a
@ -1333,7 +1334,8 @@ comment at the start of cc-engine.el for more info."
;; return t when moving backwards at bob.
(not (bobp))
(if (forward-comment -1)
(if (let (open-paren-in-column-0-is-defun-start)
(forward-comment -1))
(if (looking-at "\\*/")
;; Emacs <= 20 and XEmacs move back over the
;; closer of a block comment that lacks an opener.

View file

@ -1346,6 +1346,50 @@ casts and declarations are fontified. Used on level 2 and higher."
(c-font-lock-declarators limit t nil)))
nil)
(defun c-font-lock-enclosing-decls (limit)
;; Fontify the declarators of (nested) declarations we're in the middle of.
;; This is mainly for when a jit-lock etc. chunk starts inside the brace
;; block of a struct/union/class, etc.
;;
;; This function will be called from font-lock for a region bounded by POINT
;; and LIMIT, as though it were to identify a keyword for
;; font-lock-keyword-face. It always returns NIL to inhibit this and
;; prevent a repeat invocation. See elisp/lispref page "Search-based
;; Fontification".
(let* ((paren-state (c-parse-state))
(start (point))
decl-context bo-decl in-typedef type-type ps-elt)
;; First, are we actually in a "local" declaration?
(setq decl-context (c-beginning-of-decl-1)
bo-decl (point)
in-typedef (looking-at c-typedef-key))
(if in-typedef (c-forward-token-2))
(when (and (eq (car decl-context) 'same)
(< bo-decl start))
;; Are we genuinely at a type?
(setq type-type (c-forward-type t))
(if (and type-type
(or (not (eq type-type 'maybe))
(looking-at c-symbol-key)))
(c-font-lock-declarators limit t in-typedef)))
;; Secondly, are we in any nested struct/union/class/etc. braces?
(while paren-state
(setq ps-elt (car paren-state)
paren-state (cdr paren-state))
(when (and (atom ps-elt)
(eq (char-after ps-elt) ?\{))
(goto-char ps-elt)
(setq decl-context (c-beginning-of-decl-1)
in-typedef (looking-at c-typedef-key))
(if in-typedef (c-forward-token-2))
(when (looking-at c-opt-block-decls-with-vars-key)
(goto-char ps-elt)
(when (c-safe (c-forward-sexp))
(c-forward-syntactic-ws)
(c-font-lock-declarators limit t in-typedef)))))))
(c-lang-defconst c-simple-decl-matchers
"Simple font lock matchers for types and declarations. These are used
on level 2 only and so aren't combined with `c-complex-decl-matchers'."
@ -1452,6 +1496,9 @@ on level 2 only and so aren't combined with `c-complex-decl-matchers'."
;; Fontify all declarations, casts and normal labels.
c-font-lock-declarations
;; Fontify declarators when POINT is within their declaration.
c-font-lock-enclosing-decls
;; Fontify angle bracket arglists like templates in C++.
,@(when (c-lang-const c-recognize-<>-arglists)
`(c-font-lock-<>-arglists))

View file

@ -523,7 +523,7 @@ operator at the top level."
(c-lang-defconst c-symbol-chars
"Set of characters that can be part of a symbol.
This is on the form that fits inside [ ] in a regexp."
This is of the form that fits inside [ ] in a regexp."
;; Pike note: With the backquote identifiers this would include most
;; operator chars too, but they are handled with other means instead.
t (concat c-alnum "_$")

View file

@ -1860,7 +1860,7 @@ nil, we exit; otherwise we scan the next file."
Stops when a match is found.
To continue searching for next match, use command \\[tags-loop-continue].
If `file-list-form' is non-nil, it should be a form that, when
If FILE-LIST-FORM is non-nil, it should be a form that, when
evaluated, will return a list of file names. The search will be
restricted to these files.

View file

@ -311,9 +311,10 @@ file: Users may suspend viewing in order to modify the buffer.
Exiting View mode will then discard the user's edits. Setting
EXIT-ACTION to `kill-buffer-if-not-modified' avoids this."
(interactive "bView buffer: ")
(if (eq (with-current-buffer buffer
(get major-mode 'mode-class))
'special)
(if (with-current-buffer buffer
(and (eq (get major-mode 'mode-class)
'special)
(null buffer-file-name)))
(progn
(switch-to-buffer buffer)
(message "Not using View mode because the major mode is special"))

View file

@ -6588,6 +6588,15 @@ split."
;; Functions for converting Emacs 23 buffer display options to buffer
;; display specifiers.
(defun display-buffer-alist-of-strings-p (list)
"Return t if LIST is a non-empty list of strings."
(when list
(catch 'failed
(dolist (item list)
(unless (stringp item)
(throw 'failed nil)))
t)))
(defun display-buffer-alist-add (identifiers specifiers &optional no-custom)
"Helper function for `display-buffer-alist-set'."
(unless identifiers
@ -6602,6 +6611,40 @@ split."
'display-buffer-alist
(cons (cons identifiers specifiers) display-buffer-alist))))
(defun display-buffer-alist-set-1 ()
"Helper function for `display-buffer-alist-set'."
(progn ;; with-no-warnings
(append
'(reuse-window (reuse-window nil same 0))
`(pop-up-frame (pop-up-frame t)
,(append '(pop-up-frame-alist)
special-display-frame-alist))
'((dedicate . weak)))))
(defun display-buffer-alist-set-2 (args)
"Helper function for `display-buffer-alist-set'."
(progn ;; with-no-warnings
(if (and (listp args) (symbolp (car args)))
`(function (function ,(car args) ,(cdr args)))
(append
'(reuse-window (reuse-window nil same 0))
(when (and (listp args) (cdr (assq 'same-window args)))
'(reuse-window
(reuse-window same nil nil) (reuse-window-dedicated . weak)))
(when (and (listp args)
(or (cdr (assq 'same-frame args))
(cdr (assq 'same-window args))))
'(pop-up-window (pop-up-window (largest . nil) (lru . nil))))
(when (and (listp args)
(or (cdr (assq 'same-frame args))
(cdr (assq 'same-window args))))
'(reuse-window (reuse-window nil nil nil)))
`(pop-up-frame (pop-up-frame t)
,(append '(pop-up-frame-alist)
(when (listp args) args)
special-display-frame-alist))
'((dedicate . weak))))))
(defun display-buffer-alist-set (&optional no-custom add)
"Set `display-buffer-alist' from Emacs 23 buffer display options.
Optional argument NO-CUSTOM nil means use `customize-set-variable'
@ -6611,201 +6654,164 @@ means to use `setq' instead.
Optional argument ADD nil means to replace the actual value of
`display-buffer-alist' with the value calculated here. ADD
non-nil means prepend the value calculated here to the current
value of `display-buffer-alist'."
value of `display-buffer-alist'. Return `display-buffer-alist'."
(unless add
(if no-custom
(setq display-buffer-alist nil)
(customize-set-variable 'display-buffer-alist nil)))
;; Disable warnings, there are too many obsolete options here.
(with-no-warnings
;; `pop-up-windows'
(display-buffer-alist-add
nil
(let ((fun (unless (eq split-window-preferred-function
'split-window-sensibly)
;; `split-window-sensibly' has been merged into the
;; `display-buffer-split-window' code as `nil'.
split-window-preferred-function))
(min-height
(if (numberp split-height-threshold)
(/ split-height-threshold 2)
;; Undocumented hack.
1.0))
(min-width
(if (numberp split-width-threshold)
(/ split-width-threshold 2)
;; Undocumented hack.
1.0)))
(list
'pop-up-window
(when pop-up-windows
(list
'pop-up-window
(cons 'largest fun)
(cons 'lru fun)))
(cons 'pop-up-window-min-height min-height)
(cons 'pop-up-window-min-width min-width)))
no-custom)
(progn ;; with-no-warnings
`other-window-means-other-frame'
(when pop-up-frames
(display-buffer-alist-add
nil '(pop-up-frame
(other-window-means-other-frame . t)) no-custom))
;; `pop-up-frames'
(display-buffer-alist-add
nil
(list
'pop-up-frame
(when pop-up-frames
(list 'pop-up-frame pop-up-frames))
(when pop-up-frame-function
(cons 'pop-up-frame-function pop-up-frame-function))
(when pop-up-frame-alist
(cons 'pop-up-frame-alist pop-up-frame-alist)))
no-custom)
;; `reuse-window-even-sizes'
(when even-window-heights
(display-buffer-alist-add
nil '(reuse-window (reuse-window-even-sizes . t)) no-custom))
;; `special-display-regexps'
(dolist (entry special-display-regexps)
(cond
((stringp entry)
;; Plain string.
(display-buffer-alist-add
`((regexp . ,entry))
(list
'function
(list 'function special-display-function
special-display-frame-alist))
no-custom))
((consp entry)
(let ((name (car entry))
(rest (cdr entry)))
(cond
((functionp (car rest))
;; A function.
(display-buffer-alist-add
`((name . ,name))
(list
'function
;; Weary.
(list 'function (car rest) (cadr rest)))
no-custom))
((listp rest)
;; A list of parameters.
(cond
((assq 'same-window rest)
(display-buffer-alist-add
`((name . ,name))
(list 'reuse-window
(list 'reuse-window 'same)
(list 'reuse-window-dedicated 'weak))
no-custom))
((assq 'same-frame rest)
(display-buffer-alist-add
`((name . ,name)) (list 'same-frame) no-custom))
(t
(display-buffer-alist-add
`((name . ,name))
(list
'function
(list 'function special-display-function
special-display-frame-alist))
no-custom)))))))))
;; `special-display-buffer-names'
(dolist (entry special-display-buffer-names)
(cond
((stringp entry)
;; Plain string.
(display-buffer-alist-add
`((name . ,entry))
(list
'function
(list 'function special-display-function
special-display-frame-alist))
no-custom))
((consp entry)
(let ((name (car entry))
(rest (cdr entry)))
(cond
((functionp (car rest))
;; A function.
(display-buffer-alist-add
`((name . ,name))
(list
'function
;; Weary.
(list 'function (car rest) (cadr rest)))
no-custom))
((listp rest)
;; A list of parameters.
(cond
((assq 'same-window rest)
(display-buffer-alist-add
`((name . ,name))
(list 'reuse-window
(list 'reuse-window 'same)
(list 'reuse-window-dedicated 'weak))
no-custom))
((assq 'same-frame rest)
(display-buffer-alist-add
`((name . ,name)) (list 'same-frame) no-custom))
(t
(display-buffer-alist-add
`((name . ,name))
(list
'function
(list 'function special-display-function
special-display-frame-alist))
no-custom)))))))))
;; `same-window-regexps'
(dolist (entry same-window-regexps)
(cond
((stringp entry)
(display-buffer-alist-add
`((regexp . ,entry))
(list 'reuse-window (list 'reuse-window 'same))
no-custom))
((consp entry)
(display-buffer-alist-add
`((regexp . ,(car entry)))
(list 'reuse-window (list 'reuse-window 'same))
no-custom))))
;; `same-window-buffer-names'
(dolist (entry same-window-buffer-names)
(cond
((stringp entry)
(display-buffer-alist-add
`((name . ,entry))
(list 'reuse-window (list 'reuse-window 'same))
no-custom))
((consp entry)
(display-buffer-alist-add
`((name . ,(car entry)))
(list 'reuse-window (list 'reuse-window 'same))
no-custom))))
;; `reuse-window'
(display-buffer-alist-add
nil
(list
'reuse-window
(list 'reuse-window nil 'same
(when (or display-buffer-reuse-frames pop-up-frames)
;; "0" (all visible and iconified frames) is hardcoded in
;; Emacs 23.
0))
(when even-window-heights
(cons 'reuse-window-even-sizes t)))
no-custom)
;; `display-buffer-mark-dedicated'
;; `dedicate'
(when display-buffer-mark-dedicated
(display-buffer-alist-add
nil '(dedicate (display-buffer-mark-dedicated . t)) no-custom))
;; `pop-up-window' group
(let ((fun (unless (eq split-window-preferred-function
'split-window-sensibly)
split-window-preferred-function))
(min-height
(if (numberp split-height-threshold)
(/ split-height-threshold 2)
1.0))
(min-width
(if (numberp split-width-threshold)
(/ split-width-threshold 2)
1.0)))
(display-buffer-alist-add
nil
(list
(cons 'dedicate display-buffer-mark-dedicated))
no-custom)))
'pop-up-window
;; `pop-up-window'
(when pop-up-windows
(list 'pop-up-window (cons 'largest fun) (cons 'lru fun)))
;; `pop-up-window-min-height'
(cons 'pop-up-window-min-height min-height)
;; `pop-up-window-min-width'
(cons 'pop-up-window-min-width min-width))
no-custom))
display-buffer-alist)
;; `pop-up-frame' group
(when (or pop-up-frames
(not (equal pop-up-frame-function
'(lambda nil
(make-frame pop-up-frame-alist))))
pop-up-frame-alist)
(display-buffer-alist-add
nil
(list
'pop-up-frame
(when pop-up-frames
;; `pop-up-frame'
(list 'pop-up-frame
(when (eq pop-up-frames 'graphic-only)
t)))
(unless (equal pop-up-frame-function
'(lambda nil
(make-frame pop-up-frame-alist)))
;; `pop-up-frame-function'
(cons 'pop-up-frame-function pop-up-frame-function))
(when pop-up-frame-alist
;; `pop-up-frame-alist'
(cons 'pop-up-frame-alist pop-up-frame-alist)))
no-custom))
;; `special-display-regexps'
(if (display-buffer-alist-of-strings-p special-display-regexps)
;; Handle case where `special-display-regexps' is a plain list
;; of strings specially.
(let (list)
(dolist (regexp special-display-regexps)
(setq list (cons (cons 'regexp regexp) list)))
(setq list (nreverse list))
(display-buffer-alist-add
list (display-buffer-alist-set-1) no-custom))
;; Else iterate over the entries.
(dolist (item special-display-regexps)
(if (stringp item)
(display-buffer-alist-add
`((regexp . ,item)) (display-buffer-alist-set-1)
no-custom)
(display-buffer-alist-add
`((regexp . ,(car item)))
(display-buffer-alist-set-2 (cdr item))
no-custom))))
;; `special-display-buffer-names'
(if (display-buffer-alist-of-strings-p special-display-buffer-names)
;; Handle case where `special-display-buffer-names' is a plain
;; list of strings specially.
(let (list)
(dolist (name special-display-buffer-names)
(setq list (cons (cons 'name name) list)))
(setq list (nreverse list))
(display-buffer-alist-add
list (display-buffer-alist-set-1) no-custom))
;; Else iterate over the entries.
(dolist (item special-display-buffer-names)
(if (stringp item)
(display-buffer-alist-add
`((name . ,item)) (display-buffer-alist-set-1)
no-custom)
(display-buffer-alist-add
`((name . ,(car item)))
(display-buffer-alist-set-2 (cdr item))
no-custom))))
;; `same-window-regexps'
(if (display-buffer-alist-of-strings-p same-window-regexps)
;; Handle case where `same-window-regexps' is a plain list of
;; strings specially.
(let (list)
(dolist (regexp same-window-regexps)
(setq list (cons (cons 'regexp regexp) list)))
(setq list (nreverse list))
(display-buffer-alist-add
list '(reuse-window (reuse-window same nil nil)) no-custom))
(dolist (entry same-window-regexps)
(display-buffer-alist-add
`((regexp . ,(if (stringp entry) entry (car entry))))
'(reuse-window (reuse-window same nil nil)) no-custom)))
;; `same-window-buffer-names'
(if (display-buffer-alist-of-strings-p same-window-buffer-names)
;; Handle case where `same-window-buffer-names' is a plain list
;; of strings specially.
(let (list)
(dolist (name same-window-buffer-names)
(setq list (cons (cons 'name name) list)))
(setq list (nreverse list))
(display-buffer-alist-add
list '(reuse-window (reuse-window same nil nil)) no-custom))
(dolist (entry same-window-buffer-names)
(display-buffer-alist-add
`((name . ,(if (stringp entry) entry (car entry))))
'(reuse-window (reuse-window same nil nil)) no-custom)))
;; `reuse-window'
(display-buffer-alist-add
nil `(reuse-window
(reuse-window
nil same
,(when (or display-buffer-reuse-frames pop-up-frames)
;; "0" (all visible and iconified frames) is
;; hardcoded in Emacs 23.
0)))
no-custom)
display-buffer-alist))
(defun set-window-text-height (window height)
"Set the height in lines of the text display area of WINDOW to HEIGHT.

View file

@ -1,4 +1,4 @@
2011-07-17 Paul Eggert <eggert@cs.ucla.edu>
2011-07-19 Paul Eggert <eggert@cs.ucla.edu>
Integer signedness and overflow and related fixes. (Bug#9079)
@ -197,6 +197,54 @@
Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
well either way, and we prefer signed to unsigned.
2011-07-19 Paul Eggert <eggert@cs.ucla.edu>
Port to OpenBSD.
See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
and the surrounding thread.
* minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
rather than fgets, and retry after EINTR. Otherwise, 'emacs
--batch -f byte-compile-file' fails on OpenBSD if an inactivity
timer goes off.
* s/openbsd.h (BROKEN_SIGIO): Define.
* unexelf.c (unexec) [__OpenBSD__]:
Don't update the .mdebug section of the Alpha COFF symbol table.
2011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
* lread.c (syms_of_lread): Clarify when `lexical-binding' is used
(bug#8460).
2011-07-18 Paul Eggert <eggert@cs.ucla.edu>
* fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
This fixes some race conditions on the permissions of any newly
created file.
* alloc.c (valid_pointer_p): Use pipe, not open.
This fixes some permissions issues when debugging.
* fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
If fchown fails to set both uid and gid, try to set just gid,
as that is sometimes allowed. Adjust the file's mode to eliminate
setuid or setgid bits that are inappropriate if fchown fails.
2011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
* xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
to compare Lisp_Objects.
* gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
global_gnutls_log_level, don't mistake it for a Lisp_Object.
(init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
2011-07-17 Andreas Schwab <schwab@linux-m68k.org>
* lread.c (read_integer): Unread even EOF character.
(read1): Likewise. Properly record start position of symbol.
* lread.c (read1): Read `#:' as empty uninterned symbol if no
symbol character follows.
2011-07-17 Paul Eggert <eggert@cs.ucla.edu>
* fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)

View file

@ -4430,18 +4430,18 @@ valid_pointer_p (void *p)
#ifdef WINDOWSNT
return w32_valid_pointer_p (p, 16);
#else
int fd;
int fd[2];
/* Obviously, we cannot just access it (we would SEGV trying), so we
trick the o/s to tell us whether p is a valid pointer.
Unfortunately, we cannot use NULL_DEVICE here, as emacs_write may
not validate p in that case. */
if ((fd = emacs_open ("__Valid__Lisp__Object__", O_CREAT | O_WRONLY | O_TRUNC, 0666)) >= 0)
if (pipe (fd) == 0)
{
int valid = (emacs_write (fd, (char *)p, 16) == 16);
emacs_close (fd);
unlink ("__Valid__Lisp__Object__");
int valid = (emacs_write (fd[1], (char *) p, 16) == 16);
emacs_close (fd[1]);
emacs_close (fd[0]);
return valid;
}

View file

@ -38,8 +38,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <selinux/context.h>
#endif
#include <ignore-value.h>
#include "lisp.h"
#include "intervals.h"
#include "buffer.h"
@ -1939,10 +1937,19 @@ on the system, we copy the SELinux context of FILE to NEWNAME. */)
| (NILP (ok_if_already_exists) ? O_EXCL : 0),
S_IREAD | S_IWRITE);
#else /* not MSDOS */
ofd = emacs_open (SSDATA (encoded_newname),
O_WRONLY | O_TRUNC | O_CREAT
| (NILP (ok_if_already_exists) ? O_EXCL : 0),
0666);
{
int new_mask = 0666;
if (input_file_statable_p)
{
if (!NILP (preserve_uid_gid))
new_mask = 0600;
new_mask &= st.st_mode;
}
ofd = emacs_open (SSDATA (encoded_newname),
(O_WRONLY | O_TRUNC | O_CREAT
| (NILP (ok_if_already_exists) ? O_EXCL : 0)),
new_mask);
}
#endif /* not MSDOS */
if (ofd < 0)
report_file_error ("Opening output file", Fcons (newname, Qnil));
@ -1961,9 +1968,21 @@ on the system, we copy the SELinux context of FILE to NEWNAME. */)
owner and group. */
if (input_file_statable_p)
{
int mode_mask = 07777;
if (!NILP (preserve_uid_gid))
ignore_value (fchown (ofd, st.st_uid, st.st_gid));
if (fchmod (ofd, st.st_mode & 07777) != 0)
{
/* Attempt to change owner and group. If that doesn't work
attempt to change just the group, as that is sometimes allowed.
Adjust the mode mask to eliminate setuid or setgid bits
that are inappropriate if the owner and group are wrong. */
if (fchown (ofd, st.st_uid, st.st_gid) != 0)
{
mode_mask &= ~06000;
if (fchown (ofd, -1, st.st_gid) == 0)
mode_mask |= 02000;
}
}
if (fchmod (ofd, st.st_mode & mode_mask) != 0)
report_file_error ("Doing chmod", Fcons (newname, Qnil));
}
#endif /* not MSDOS */

View file

@ -193,8 +193,7 @@ init_gnutls_functions (Lisp_Object libraries)
LOAD_GNUTLS_FN (library, gnutls_x509_crt_import);
LOAD_GNUTLS_FN (library, gnutls_x509_crt_init);
if (NUMBERP (Vgnutls_log_level))
max_log_level = XINT (Vgnutls_log_level);
max_log_level = global_gnutls_log_level;
GNUTLS_LOG2 (1, max_log_level, "GnuTLS library loaded:",
SDATA (Fget (Qgnutls_dll, QCloaded_from)));
@ -406,8 +405,7 @@ emacs_gnutls_handle_error (gnutls_session_t session, int err)
if (err >= 0)
return 0;
if (NUMBERP (Vgnutls_log_level))
max_log_level = XINT (Vgnutls_log_level);
max_log_level = global_gnutls_log_level;
/* TODO: use gnutls-error-fatalp and gnutls-error-string. */
@ -1155,9 +1153,9 @@ syms_of_gnutls (void)
defsubr (&Sgnutls_bye);
defsubr (&Sgnutls_available_p);
DEFVAR_INT ("gnutls-log-level", Vgnutls_log_level,
doc: /* Logging level used by the GnuTLS functions. */);
Vgnutls_log_level = make_number (0);
DEFVAR_INT ("gnutls-log-level", global_gnutls_log_level,
doc: /* Logging level used by the GnuTLS functions. */);
global_gnutls_log_level = 0;
}
#endif /* HAVE_GNUTLS */

View file

@ -2327,8 +2327,7 @@ read_integer (Lisp_Object readcharfun, EMACS_INT radix)
c = READCHAR;
}
if (c >= 0)
UNREAD (c);
UNREAD (c);
*p = '\0';
}
@ -2583,8 +2582,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
nskip *= 10;
nskip += c - '0';
}
if (c >= 0)
UNREAD (c);
UNREAD (c);
if (load_force_doc_strings
&& (EQ (readcharfun, Qget_file_char)
@ -2660,7 +2658,17 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
{
uninterned_symbol = 1;
c = READCHAR;
goto default_label;
if (!(c > 040
&& c != 0x8a0
&& (c >= 0200
|| strchr ("\"';()[]#`,", c) == NULL)))
{
/* No symbol character follows, this is the empty
symbol. */
UNREAD (c);
return Fmake_symbol (build_string (""));
}
goto read_symbol;
}
/* Reader forms that can reuse previously read objects. */
if (c >= '0' && c <= '9')
@ -2841,7 +2849,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
next_char = READCHAR;
ok = (next_char <= 040
|| (next_char < 0200
&& (strchr ("\"';()[]#?`,.", next_char))));
&& strchr ("\"';()[]#?`,.", next_char) != NULL));
UNREAD (next_char);
if (ok)
return make_number (c);
@ -2966,11 +2974,6 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
/* Otherwise, READ_BUFFER contains only ASCII. */
}
/* We want readchar_count to be the number of characters, not
bytes. Hence we adjust for multibyte characters in the
string. ... But it doesn't seem to be necessary, because
READCHAR *does* read multibyte characters from buffers. */
/* readchar_count -= (p - read_buffer) - nchars; */
if (read_pure)
return make_pure_string (read_buffer, nchars, p - read_buffer,
(force_multibyte
@ -2987,7 +2990,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
if (next_char <= 040
|| (next_char < 0200
&& (strchr ("\"';([#?`,", next_char))))
&& strchr ("\"';([#?`,", next_char) != NULL))
{
*pch = c;
return Qnil;
@ -3002,9 +3005,12 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
if (c <= 040) goto retry;
if (c == 0x8a0) /* NBSP */
goto retry;
read_symbol:
{
char *p = read_buffer;
int quoted = 0;
EMACS_INT start_position = readchar_count - 1;
{
char *end = read_buffer + read_buffer_size;
@ -3035,10 +3041,11 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
else
*p++ = c;
c = READCHAR;
} while (c > 040
&& c != 0x8a0 /* NBSP */
&& (c >= 0200
|| !(strchr ("\"';()[]#`,", c))));
}
while (c > 040
&& c != 0x8a0 /* NBSP */
&& (c >= 0200
|| strchr ("\"';()[]#`,", c) == NULL));
if (p == end)
{
@ -3051,8 +3058,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
end = read_buffer + read_buffer_size;
}
*p = 0;
if (c >= 0)
UNREAD (c);
UNREAD (c);
}
if (!quoted && !uninterned_symbol)
@ -3080,12 +3086,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
if (EQ (Vread_with_symbol_positions, Qt)
|| EQ (Vread_with_symbol_positions, readcharfun))
Vread_symbol_positions_list =
/* Kind of a hack; this will probably fail if characters
in the symbol name were escaped. Not really a big
deal, though. */
Fcons (Fcons (result,
make_number (readchar_count
- XFASTINT (Flength (Fsymbol_name (result))))),
Fcons (Fcons (result, make_number (start_position)),
Vread_symbol_positions_list);
return result;
}
@ -4490,10 +4491,9 @@ to load. See also `load-dangerous-libraries'. */);
Qlexical_binding = intern ("lexical-binding");
staticpro (&Qlexical_binding);
DEFVAR_LISP ("lexical-binding", Vlexical_binding,
doc: /* If non-nil, use lexical binding when evaluating code.
This applies to code evaluated by `eval-buffer' and `eval-region' and
other commands that call these functions, like `eval-defun' and
the like.
doc: /* Whether to use lexical binding when evaluating code.
Non-nil means that the code in the current buffer should be evaluated
with lexical binding.
This variable is automatically set from the file variables of an
interpreted Lisp file read using `load'. */);
Fmake_variable_buffer_local (Qlexical_binding);

View file

@ -19,6 +19,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include <errno.h>
#include <stdio.h>
#include <setjmp.h>
@ -236,8 +237,9 @@ read_minibuf_noninteractive (Lisp_Object map, Lisp_Object initial,
int allow_props, int inherit_input_method)
{
ptrdiff_t size, len;
char *line, *s;
char *line;
Lisp_Object val;
int c;
fprintf (stdout, "%s", SDATA (prompt));
fflush (stdout);
@ -246,22 +248,30 @@ read_minibuf_noninteractive (Lisp_Object map, Lisp_Object initial,
size = 100;
len = 0;
line = (char *) xmalloc (size);
while ((s = fgets (line + len, size - len, stdin)) != NULL
&& (len = strlen (line),
len == size - 1 && line[len - 1] != '\n'))
while ((c = getchar ()) != '\n')
{
if (STRING_BYTES_BOUND / 2 < size)
memory_full (SIZE_MAX);
size *= 2;
line = (char *) xrealloc (line, size);
if (c < 0)
{
if (errno != EINTR)
break;
}
else
{
if (len == size)
{
if (STRING_BYTES_BOUND / 2 < size)
memory_full (SIZE_MAX);
size *= 2;
line = (char *) xrealloc (line, size);
}
line[len++] = c;
}
}
if (s)
if (len)
{
char *nl = strchr (line, '\n');
if (nl)
*nl = '\0';
val = build_string (line);
val = make_string (line, len);
xfree (line);
}
else

View file

@ -141,7 +141,7 @@ struct Lisp_Process
/* Every field in the preceding structure except for the first two
must be a Lisp_Object, for GC's sake. */
#define ChannelMask(n) (1<<(n))
#define ChannelMask(n) (1 << (n))
/* True if we are about to fork off a synchronous process or if we
are waiting for it. */

View file

@ -1,5 +1,9 @@
/* System file for openbsd. */
/* The same as NetBSD. Note there are differences in configure. */
/* Nearly the same as NetBSD. Note there are differences in configure. */
#include "netbsd.h"
/* The symbol SIGIO is defined, but the feature doesn't work in the
way Emacs needs it to. See
<http://article.gmane.org/gmane.os.openbsd.ports/46831>. */
#define BROKEN_SIGIO

View file

@ -1053,7 +1053,7 @@ unexec (const char *new_name, const char *old_name)
memcpy (NEW_SECTION_H (nn).sh_offset + new_base, src,
NEW_SECTION_H (nn).sh_size);
#ifdef __alpha__
#if defined __alpha__ && !defined __OpenBSD__
/* Update Alpha COFF symbol table: */
if (strcmp (old_section_names + OLD_SECTION_H (n).sh_name, ".mdebug")
== 0)
@ -1072,7 +1072,7 @@ unexec (const char *new_name, const char *old_name)
symhdr->cbRfdOffset += new_data2_size;
symhdr->cbExtOffset += new_data2_size;
}
#endif /* __alpha__ */
#endif /* __alpha__ && !__OpenBSD__ */
#if defined (_SYSTYPE_SYSV)
if (NEW_SECTION_H (nn).sh_type == SHT_MIPS_DEBUG

View file

@ -6945,7 +6945,7 @@ next_element_from_string (struct it *it)
struct text_pos position;
xassert (STRINGP (it->string));
xassert (!it->bidi_p || it->string == it->bidi_it.string.lstring);
xassert (!it->bidi_p || EQ (it->string, it->bidi_it.string.lstring));
xassert (IT_STRING_CHARPOS (*it) >= 0);
position = it->current.string_pos;
@ -7259,7 +7259,7 @@ next_element_from_buffer (struct it *it)
xassert (IT_CHARPOS (*it) >= BEGV);
xassert (NILP (it->string) && !it->s);
xassert (!it->bidi_p
|| (it->bidi_it.string.lstring == Qnil
|| (EQ (it->bidi_it.string.lstring, Qnil)
&& it->bidi_it.string.s == NULL));
/* With bidi reordering, the character to display might not be the