Merge from emacs--rel--22

Revision: emacs@sv.gnu.org/emacs--devo--0--patch-956
This commit is contained in:
Miles Bader 2007-12-16 04:31:49 +00:00
commit 47854a5568
13 changed files with 10567 additions and 37 deletions

View file

@ -88,6 +88,8 @@ that the desktop being saved is not an update of the one on disk.
** The new package vera-mode.el provides a major mode for editing Vera files.
** The new package verilog-mode.el provides a major mode for editing Verilog files.
** The new package socks.el implements the SOCKS v5 protocol.
** VC

View file

@ -1253,7 +1253,7 @@ Doubling the postfix separates the letter and postfix: e.g. aee -> ae
(quail-define-package
"scandinavian-postfix" "Latin-1" "SC<" t
"Scandinavian input method with postfix modifiers
Supported languages are Swidish, Norwegian, Danish, and Finnish.
Supported languages are Swedish, Norwegian, Danish, and Finnish.
ae -> ,Af(B
oe -> ,Ax(B

View file

@ -1,3 +1,87 @@
2007-12-12 Thien-Thi Nguyen <ttn@gnuvola.org>
* progmodes/cc-vars.el (defcustom-c-stylevar): Rewrite.
2007-12-11 Dan Nicolaescu <dann@ics.uci.edu>
* progmodes/verilog-mode.el (set-buffer-menubar): Remove unused
function.
(add-submenu): Only define for XEmacs.
(verilog-regexp-words): Revert previous change, keep the other
definition.
2007-12-09 Dan Nicolaescu <dann@ics.uci.edu>
* progmodes/perl-mode.el (perl-continued-statement-offset)
(perl-continued-brace-offset, perl-brace-offset)
(perl-brace-imaginary-offset, perl-label-offset):
* progmodes/cperl-mode.el (cperl-brace-offset)
(cperl-continued-brace-offset, cperl-label-offset)
(cperl-continued-statement-offset)
(cperl-extra-newline-before-brace, cperl-merge-trailing-else): Add
safe-local-variable properties.
2007-12-08 Dan Nicolaescu <dann@ics.uci.edu>
* progmodes/verilog-mode.el (verilog-mode-map)
(verilog-template-map, verilog-mode-mouse-map): Fix typos.
(verilog-colorize-include-files): Use only overlay functions so
that it can work on both emacs and XEmacs.
(set-extent-keymap): Remove unused defun.
(verilog-kill-existing-comment, verilog-insert-date)
(verilog-insert-year): Rename in order not to pollute the global
namespace from kill-existing-comment, insert-date and
insert-year, respectively.
(verilog-set-auto-endcomments, verilog-header): Update callers.
* files.el (auto-mode-alist): Recognize verilog files.
* progmodes/verilog-mode.el (verilog-string-replace-matches)
(verilog-string-remove-spaces, verilog-re-search-forward)
(verilog-re-search-backward, verilog-re-search-forward-quick)
(verilog-re-search-backward-quick, verilog-get-beg-of-line)
(verilog-get-end-of-line, verilog-within-string): Move definitions
before first use. No code changes.
2007-12-08 Dan Nicolaescu <dann@ics.uci.edu>
* progmodes/verilog-mode.el (verilog-mode-version)
(verilog-mode-release-date): Don't use expanding keywords.
(provide): Move to the end of file.
(fboundp): Don't check if eval-when-compile is bound, it is used
later in the file without checking.
(when, unless): Copy definitions from subr.el.
(char-before, defcustom, defface, customize-group)
(verilog-batch-error-wrapper): Don't use old style backquotes.
(verilog-regexp-opt): Avoid using the cl function case.
(verilog-regexp-words): Remove duplicated definition.
(verilog-mode-abbrev-table): Remove, duplicate.
(verilog-mode-map, verilog-template-map, verilog-mode-mouse-map):
Declare and initialize in one step.
(verilog-declaration-prefix-re, verilog-declaration-re)
(verilog-end-of-statement, verilog-indent-declaration)
(verilog-get-lineup-indent): Remove trailing whitespace.
(verilog-mode): Fix autoload cookie. Set
beginning-of-defun-function and end-of-defun-function. Use when
instead of if.
(verilog-emacs-features, verilog-auto-ascii-enum)
(verilog-insert-indices): Escape braces in doc strings.
2007-12-08 Michael McNamara <mac@verilog.com>
Wilson Snyder <wsnyder@wsnyder.org>
* progmodes/verilog-mode.el: New file.
2007-12-08 Eli Zaretskii <eliz@fencepost.gnu.org>
* international/latexenc.el (latexenc-find-file-coding-system): If
both coding-system-for-write and buffer-file-coding-system of
latex-main-file are nil, use `undecided'.
2007-12-06 Jason Rumney <jasonr@gnu.org>
* mouse.el (mouse-buffer-menu-alist): Keep buffer names left aligned.
2007-12-12 Yoni Rabkin Katzenell <yoni-r@actcom.com> (tiny change)
* files.el (revert-buffer): Docstring fix.

View file

@ -2054,6 +2054,8 @@ ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\)\\'" . archive-mode)
("\\.dtd\\'" . sgml-mode)
("\\.ds\\(ss\\)?l\\'" . dsssl-mode)
("\\.js\\'" . java-mode) ; javascript-mode would be better
("\\.x[bp]m\\'" . c-mode)
("\\.d?v\\'" . verilog-mode)
;; .emacs or .gnus or .viper following a directory delimiter in
;; Unix, MSDOG or VMS syntax.
("[]>:/\\]\\..*\\(emacs\\|gnus\\|viper\\)\\'" . emacs-lisp-mode)

View file

@ -181,7 +181,8 @@ coding system names is determined from `latex-inputenc-coding-alist'."
(find-file-noselect latexenc-main-file t)))
(coding-system-base ;Disregard the EOL part of the CS.
(with-current-buffer latexenc-main-buffer
(or coding-system-for-write buffer-file-coding-system))))
(or coding-system-for-write buffer-file-coding-system
'undecided))))
'undecided))))
'undecided))

View file

@ -1933,7 +1933,7 @@ and selects that window."
(cons
(cons
(format
(format "%%%ds %%s%%s %%s" maxlen)
(format "%%-%ds %%s%%s %%s" maxlen)
(buffer-name elt)
(if (buffer-modified-p elt) "*" " ")
(save-excursion

View file

@ -156,34 +156,45 @@ Useful as last item in a `choice' widget."
(setq c-fallback-style (cons (cons name val) c-fallback-style)))
(defmacro defcustom-c-stylevar (name val doc &rest args)
"Defines a style variable."
`(let ((-value- ,val))
(c-set-stylevar-fallback ',name -value-)
(custom-declare-variable
',name ''set-from-style
,(concat doc "
"Define a style variable NAME with VAL and DOC.
More precisely, convert the given `:type FOO', mined out of ARGS,
to an aggregate `:type (radio STYLE (PREAMBLE FOO))', append some
some boilerplate documentation to DOC, arrange for the fallback
value of NAME to be VAL, and call `custom-declare-variable' to
do the rest of the work.
STYLE stands for the choice where the value is taken from some
style setting. PREAMBLE is optionally prepended to FOO; that is,
if FOO contains :tag or :value, the respective two-element list
component is ignored."
(declare (debug (symbolp form stringp &rest)))
(let* ((expanded-doc (concat doc "
This is a style variable. Apart from the valid values described
above, it can be set to the symbol `set-from-style'. In that case, it
takes its value from the style system (see `c-default-style' and
above, it can be set to the symbol `set-from-style'. In that case,
it takes its value from the style system (see `c-default-style' and
`c-style-alist') when a CC Mode buffer is initialized. Otherwise,
the value set here overrides the style system (there is a variable
`c-old-style-variable-behavior' that changes this, though).")
,@(plist-put
args ':type
`(` (radio
(const :tag "Use style settings"
set-from-style)
,(, (let ((type (eval (plist-get args ':type))))
(unless (consp type)
(setq type (list type)))
(unless (c-safe (plist-get (cdr type) ':value))
(setcdr type (append '(:value (, -value-))
(cdr type))))
(unless (c-safe (plist-get (cdr type) ':tag))
(setcdr type (append '(:tag "Override style settings")
(cdr type))))
(bq-process type)))))))))
`c-old-style-variable-behavior' that changes this, though)."))
(typ (eval (plist-get args :type)))
(type (if (consp typ) typ (list typ)))
(head (car type))
(tail (cdr type))
(newt (append (unless (plist-get tail :tag)
'(:tag "Override style settings"))
(unless (plist-get tail :value)
`(:value ,val))
tail))
(aggregate `'(radio
(const :tag "Use style settings" set-from-style)
,(cons head newt))))
(message "aggregate: %S" aggregate)
`(progn
(c-set-stylevar-fallback ',name ,val)
(custom-declare-variable
',name ''set-from-style
,expanded-doc
,@(plist-put args :type aggregate)))))
(defun c-valid-offset (offset)
"Return non-nil if OFFSET is a valid offset for a syntactic symbol.

View file

@ -231,12 +231,18 @@ for constructs with multiline if/unless/while/until/for/foreach condition."
:type 'integer
:group 'cperl-indentation-details)
;; Is is not unusual to put both perl-indent-level and
;; Is is not unusual to put both things like perl-indent-level and
;; cperl-indent-level in the local variable section of a file. If only
;; one of perl-mode and cperl-mode is in use, a warning will be issued
;; about the variable. Autoload this here, so that no warning is
;; about the variable. Autoload these here, so that no warning is
;; issued when using either perl-mode or cperl-mode.
;;;###autoload(put 'cperl-indent-level 'safe-local-variable 'integerp)
;;;###autoload(put 'cperl-brace-offset 'safe-local-variable 'integerp)
;;;###autoload(put 'cperl-continued-brace-offset 'safe-local-variable 'integerp)
;;;###autoload(put 'cperl-label-offset 'safe-local-variable 'integerp)
;;;###autoload(put 'cperl-continued-statement-offset 'safe-local-variable 'integerp)
;;;###autoload(put 'cperl-extra-newline-before-brace 'safe-local-variable 'booleanp)
;;;###autoload(put 'cperl-merge-trailing-else 'safe-local-variable 'booleanp)
(defcustom cperl-lineup-step nil
"*`cperl-lineup' will always lineup at multiple of this number.

View file

@ -402,12 +402,17 @@ The expansion is entirely correct because it uses the C preprocessor."
:type 'integer
:group 'perl)
;; Is is not unusual to put both perl-indent-level and
;; Is is not unusual to put both things like perl-indent-level and
;; cperl-indent-level in the local variable section of a file. If only
;; one of perl-mode and cperl-mode is in use, a warning will be issued
;; about the variable. Autoload this here, so that no warning is
;; about the variable. Autoload these here, so that no warning is
;; issued when using either perl-mode or cperl-mode.
;;;###autoload(put 'perl-indent-level 'safe-local-variable 'integerp)
;;;###autoload(put 'perl-continued-statement-offset 'safe-local-variable 'integerp)
;;;###autoload(put 'perl-continued-brace-offset 'safe-local-variable 'integerp)
;;;###autoload(put 'perl-brace-offset 'safe-local-variable 'integerp)
;;;###autoload(put 'perl-brace-imaginary-offset 'safe-local-variable 'integerp)
;;;###autoload(put 'perl-label-offset 'safe-local-variable 'integerp)
(defcustom perl-continued-statement-offset 4
"*Extra indent for lines not starting new statements."

10318
lisp/progmodes/verilog-mode.el Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,14 @@
2007-12-14 Jason Rumney <jasonr@gnu.org>
* w32term.c (w32_read_socket): Use MULTIBYTE_CHAR_KEYSTROKE_EVENT
for characters above 127.
2007-12-13 Jason Rumney <jasonr@gnu.org>
* w32fns.c (w32_wnd_proc, Fw32_reconstruct_hot_key): Range check
before dereferencing array.
(lookup_vk_code): Remove zero comparison.
2007-12-14 Michael Albinus <michael.albinus@gmx.de>
* dbusbind.c (xd_retrieve_value, xd_retrieve_arg)

View file

@ -2957,7 +2957,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
they don't produce WM_CHAR messages). This ensures that
indicator lights are toggled promptly on Windows 9x, for
example. */
if (lispy_function_keys[wParam] != 0)
if (wParam < 256 && lispy_function_keys[wParam])
{
windows_translate = 1;
goto translate;
@ -3079,7 +3079,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
break;
default:
/* If not defined as a function key, change it to a WM_CHAR message. */
if (lispy_function_keys[wParam] == 0)
if (wParam > 255 || !lispy_function_keys[wParam])
{
DWORD modifiers = construct_console_modifiers ();
@ -8159,7 +8159,7 @@ lookup_vk_code (char *key)
int i;
for (i = 0; i < 256; i++)
if (lispy_function_keys[i] != 0
if (lispy_function_keys[i]
&& strcmp (lispy_function_keys[i], key) == 0)
return i;
@ -8337,7 +8337,7 @@ usage: (w32-reconstruct-hot-key ID) */)
vk_code = HOTKEY_VK_CODE (hotkeyid);
w32_modifiers = HOTKEY_MODIFIERS (hotkeyid);
if (lispy_function_keys[vk_code])
if (vk_code < 256 && lispy_function_keys[vk_code])
key = intern (lispy_function_keys[vk_code]);
else
key = make_number (vk_code);

View file

@ -4170,6 +4170,8 @@ x_scroll_bar_clear (f)
static int temp_index;
static short temp_buffer[100];
/* Temporarily store lead byte of DBCS input sequences. */
static char dbcs_lead = 0;
/* Read events coming from the W32 shell.
This routine is called by the SIGIO handler.
@ -4329,8 +4331,96 @@ w32_read_socket (sd, expected, hold_quit)
if (temp_index == sizeof temp_buffer / sizeof (short))
temp_index = 0;
temp_buffer[temp_index++] = msg.msg.wParam;
inev.kind = ASCII_KEYSTROKE_EVENT;
inev.code = msg.msg.wParam;
if (msg.msg.wParam < 128 && !dbcs_lead)
{
inev.kind = ASCII_KEYSTROKE_EVENT;
inev.code = msg.msg.wParam;
}
else if (msg.msg.wParam < 256)
{
wchar_t code;
inev.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
if (IsDBCSLeadByteEx(CP_ACP, (BYTE) msg.msg.wParam))
{
dbcs_lead = (char) msg.msg.wParam;
inev.kind = NO_EVENT;
break;
}
else if (dbcs_lead)
{
char dbcs[2];
dbcs[0] = dbcs_lead;
dbcs[1] = (char) msg.msg.wParam;
dbcs_lead = 0;
if (!MultiByteToWideChar(CP_ACP, 0, dbcs, 2, &code, 1))
{
/* Garbage */
DebPrint (("Invalid DBCS sequence: %d %d\n",
dbcs[0], dbcs[1]));
inev.kind = NO_EVENT;
break;
}
}
else
{
char single_byte = (char) msg.msg.wParam;
if (!MultiByteToWideChar(CP_ACP, 0, &single_byte, 1,
&code, 1))
{
/* What to do with garbage? */
DebPrint (("Invalid character: %d\n", single_byte));
inev.kind = NO_EVENT;
break;
}
}
/* Now process unicode input as per xterm.c */
if (code < 0x80)
{
inev.kind = ASCII_KEYSTROKE_EVENT;
inev.code = code;
}
else if (code < 0xA0)
inev.code = MAKE_CHAR (CHARSET_8_BIT_CONTROL, code, 0);
else if (code < 0x100)
inev.code = MAKE_CHAR (charset_latin_iso8859_1, code, 0);
else
{
int c1, c2;
int charset_id;
if (code < 0x2500)
{
charset_id = charset_mule_unicode_0100_24ff;
code -= 0x100;
}
else if (code < 0xE000)
{
charset_id = charset_mule_unicode_2500_33ff;
code -= 0x2500;
}
else
{
charset_id = charset_mule_unicode_e000_ffff;
code -= 0xE000;
}
c1 = (code / 96) + 32;
c2 = (code % 96) + 32;
inev.code = MAKE_CHAR (charset_id, c1, c2);
}
}
else
{
/* Windows shouldn't generate WM_CHAR events above 0xFF
in non-Unicode message handlers. */
DebPrint (("Non-byte WM_CHAR: %d\n", msg.msg.wParam));
inev.kind = NO_EVENT;
break;
}
inev.modifiers = msg.dwModifiers;
XSETFRAME (inev.frame_or_window, f);
inev.timestamp = msg.msg.time;