David Engster [Thu, 12 Dec 2013 21:33:06 +0000 (22:33 +0100)]
Merge with CEDET upstream.
* admin/grammars/c.by (expr-binop): Add MOD.
(variablearg): Add 'opt-assign'.
(variablearg, varnamelist): Add default values so that it can be
later expanded into the tag.
(opt-stuff-after-symbol): Rename to 'brackets-after-symbol' and
remove empty match.
(multi-stage-dereference): Adapt to above rename.
(unaryexpression): Use 'symbol' instead of 'namespace-symbol',
since the latter also leads to an empty match at the end which
would make this too greedy.
(variablearg-opt-name): Support parsing of function pointers
inside an argument list.
* semantic/analyze.el
(semantic-analyze-find-tag-sequence-default): Always add scope to
the local miniscope for each type. Otherwise, structure tags are
not analyzed correctly. Also, always search the extended
miniscope even when not dealing with types.
* semantic/ctxt.el (semantic-get-local-variables-default): Also
try to parse local variables for buffers which are currently
marked as unparseable. Otherwise, it is often impossible to
complete local variables.
* semantic/scope.el (semantic-analyze-scoped-types-default): If we
cannot find a type in the typecache, also look into the the types
we already found. This is necessary since in C++, a 'using
namespace' can be dependend on a previous one.
(semantic-completable-tags-from-type): When creating the list of
completable types, pull in types which are referenced through
'using' statements, and also preserve their filenames.
* semanitc/bovine/c.el (semantic/analyze/refs): Require.
(semantic-analyze-tag-references): New override. Mainly copied
from the default implementation, but if nothing could be found (or
just the tag itself), drop all namespaces from the scope and
search again. This is necessary for implementations which are
defined outside of the namespace and only pull those in through
'using' statements.
(semantic-ctxt-scoped-types): Go through all tags around point and
search them for using statements. In the case for using
statements outside of function scope, append them in the correct
order instead of using 'cons'. This is important since using
statements may depend on previous ones.
(semantic-expand-c-tag-namelist): Do not try to parse struct
definitions as default values. The grammar parser seems to return
the point positions slightly differently (as a cons instead of a
list). Also, set parent for typedefs to 'nil'. It does not
really make sense to set a parent class for typedefs, and it can
also lead to endless loops when calculating scope.
(semantic-c-reconstitute-token): Change handling of function
pointers; instead of seeing them as variables, handle them as
functions with a 'function-pointer' attribute. Also, correctly
deal with function pointers as function arguments.
(semantic-c-reconstitute-function-arglist): New function to parse
function pointers inside an argument list.
(semantic-format-tag-name): Use 'function-pointer' attribute
instead of the old 'functionpointer-flag'.
(semantic-cpp-lexer): Use new `semantic-lex-spp-paren-or-list'.
* semantic/bovine/gcc.el (semantic-gcc-setup): Add 'features.h' to
the list of files whose preprocessor symbols are included. This
pulls in things like __USE_POSIX and similar.
* semantic/format.el (semantic-format-tag-prototype-default):
Display default values if available.
* semantic/analyze/refs.el (semantic-analyze-refs-impl)
(semantic-analyze-refs-proto): Add 'default-value' as ignorable in
call to `semantic-tag-similar-p'.
* semantic/db-mode.el (semanticdb-semantic-init-hook-fcn): Always
set buffer for `semanticdb-current-table'.
* semantic/db.el (semanticdb-table::semanticdb-refresh-table): The
previous change turned up a bug in this method. Since the current
table now correctly has a buffer set, the first clause in the
`cond' would be taken, but there was a `save-excursion' missing.
* semantic/lex-spp.el (semantic-c-end-of-macro): Declare.
(semantic-lex-spp-token-macro-to-macro-stream): Deal with macros
which open/close a scope. For this, leave an overlay if we
encounter a single open paren and return a semantic-list in the
lexer. When this list gets expanded, retrieve the old position
from the overlay. See the comments in the function for further
details.
(semantic-lex-spp-find-closing-macro): New function to find the
next macro which closes scope (i.e., has a closing paren).
(semantic-lex-spp-replace-or-symbol-or-keyword): Go to end of
closing macro if necessary.
(semantic-lex-spp-paren-or-list): New lexer to specially deal with
parens in macro definitions.
* semantic/decorate/mode.el (semantic-decoration-mode): Do not
decorate available tags immediately but in an idle timer, since
EDE will usually not be activated yet, which will make it
impossible to find project includes.
* semantic/decorate/include.el
(semantic-decoration-on-includes-highlight-default): Remove
'unloaded' from throttle when decorating includes, otherwise all
would be loaded. Rename 'table' to 'currenttable' to make things
clearer.
* ede/linux.el (cl): Require during compile.
* ede/linux.el (project-linux-build-directory-default)
(project-linux-architecture-default): Add customizable variables.
(ede-linux-project): Add additional slots to track Linux-specific
information (out-of-tree build directory and selected
architecture).
(ede-linux--get-build-directory, ede-linux--get-archs)
(ede-linux--detect-architecture, ede-linux--get-architecture)
(ede-linux--include-path): Added function to detect Linux-specific
information.
(ede-linux-load): Set new Linux-specific information when creating
a project.
(ede-expand-filename-impl): Use new and more accurate include
information.
* semantic/scope.el (semantic-calculate-scope): Return a clone of
the scopecache, so that everyone is working with its own (shallow)
copy. Otherwise, if one caller is resetting the scope, it would
be reset for all others working with the scope cache as well.
Paul Eggert [Thu, 12 Dec 2013 19:23:25 +0000 (11:23 -0800)]
Avoid undefined behavior with huge regexp interval counts.
* regex.c (GET_INTERVAL_COUNT): Rename from 'GET_UNSIGNED_NUMBER',
since it's now specialized to interval counts. All uses changed.
Do not assume wrapraound on signed integer overflow.
(regex_compile): Simplify based on the above changes.
Eli Zaretskii [Thu, 12 Dec 2013 18:19:10 +0000 (20:19 +0200)]
Support MS-Windows file names that use characters outside of ANSI codepage.
src/w32.c (get_file_security, set_file_security)
(create_symbolic_link): Separate pointers and boolean flags for
ANSI and Unicode APIs. Use the latter if w32_unicode_filenames is
non-zero, else the former.
(codepage_for_filenames, filename_to_utf16, )
(filename_from_utf16, filename_to_ansi, filename_from_ansi): New
functions.
(init_user_info): Allow $HOME and $SHELL to include non-ANSI
characters.
(normalize_filename): Lose the DBCS code, now works on UTF-8.
Accept only one argument; all callers changed.
(dostounix_filename): Remove the second argument, now works in
UTF-8. All callers changed.
(parse_root): Lose DBCS code.
(get_long_basename, w32_get_short_filename, init_environment)
(GetCachedVolumeInformation, sys_readdir, open_unc_volume)
(read_unc_volume, logon_network_drive, faccessat, sys_chdir)
(sys_chmod, sys_creat, sys_fopen, sys_link, sys_mkdir, sys_open)
(sys_rename_replace, sys_rmdir, sys_unlink, stat_worker, utime)
(is_symlink, readlink, chase_symlinks, w32_delayed_load): Work in
Unicode mode if w32_unicode_filenames is non-zero, in ANSI mode
otherwise.
(ansi_encode_filename): New function.
(get_emacs_configuration, get_emacs_configuration_options):
Functions deleted.
(add_volume_info, GetCachedVolumeInformation): Run the input file
name through unixtodos_filename, to ensure it is stored and
referenced in canonical form.
(get_volume_info): Lose the DBCS code, now works in UTF-8.
(logon_network_drive, sys_link, utime): Improve error handling.
(sys_access): New function.
(hashval, generate_inode_val): Unused functions deleted.
(symlink, readlink, readlinkat): Lose DBCS code, now works in UTF-8.
(check_windows_init_file): Convert error message from UTF-8 to
ANSI codepage, for display in the message box.
(globals_of_w32): Set w32_unicode_filenames according to the OS
version.
src/w32term.c (construct_drag_n_drop): Work in Unicode mode when
w32_unicode_filenames is non-zero, ANSI mode otherwise.
(syms_of_w32term): Declare w32-unicode-filenames.
src/w32proc.c (new_child, delete_child): Remove code that handled
unused pending_deletion and input_file members of the child struct.
(create_child, sys_spawnve): Convert all file names to ANSI
codepage. Use ANSI APIs explicitly; forcibly fail if any file
name cannot be encoded in ANSI codepage. Don't use
unixtodos_filename, mirror slashes by hand.
(record_infile, record_pending_deletion): Functions deleted.
(Fw32_short_file_name): Call w32_get_short_filename instead of
GetShortPathName.
src/w32notify.c (add_watch): Work in Unicode mode when
w32_unicode_filenames is non-zero, ANSI mode otherwise.
(Fw32notify_add_watch): Rewrite to avoid using GetFullPathName;
instead, do the same with Lisp primitives.
src/w32fns.c (file_dialog_callback, Fx_file_dialog)
(Fsystem_move_file_to_trash, Fw32_shell_execute)
(Ffile_system_info, Fdefault_printer_name): Work in Unicode mode
when w32_unicode_filenames is non-zero, ANSI mode otherwise.
(Fw32_shell_execute): Improve error reporting.
(Fdefault_printer_name): Ifdef away for Cygwin.
src/w32.h (struct _child_process): Remove input_file and
pending_deletion members that are no longer used.
(dostounix_filename, w32_get_short_filename, filename_from_ansi)
(filename_to_ansi, filename_from_utf16, filename_to_utf16)
(ansi_encode_filename): New and updated prototypes.
src/unexw32.c (open_input_file, open_output_file, unexec): Use ANSI
APIs explicitly.
(unexec): Don't use dostounix_filename, it expects a file name in
UTF-8. Instead, mirror backslashes by hand. Convert NEW_NAME to
ANSI encoding.
src/fileio.c (Ffile_name_directory, file_name_as_directory)
(directory_file_name, Fexpand_file_name)
(Fsubstitute_in_file_name) [WINDOWSNT]: Adapt to the change in
arguments of dostounix_filename.
(Fexpand_file_name) [WINDOWSNT]: Convert value of $HOME to UTF-8.
use MAX_UTF8_PATH for size of file-name strings.
(emacs_readlinkat): Build an explicitly unibyte string for file
names.
(syms_of_fileio) <file-name-coding-system>
default-file-name-coding-system>: Mention MS-Windows peculiarities.
src/emacs.c (init_cmdargs) [WINDOWSNT]: Convert argv[0] to UTF-8.
(main) [WINDOWSNT]: Convert the argv[] elements that are files or
directories to UTF-8.
(decode_env_path) [WINDOWSNT]: Convert file names taken from the
environment, and each element of the input PATH, to UTF-8.
src/dired.c (file_attributes): Use build_unibyte_string explicitly
to make Lisp strings from user and group names.
src/coding.h (ENCODE_FILE, DECODE_FILE): Just call encode_file and
decode_file.
src/coding.c (decode_file_name, encode_file_name): New functions.
src/termcap.c (tgetent): Adapt to the change in arguments of
dostounix_filename.
src/sysdep.c (sys_subshell) [WINDOWSNT]: Use MAX_UTF8_PATH for file
names.
src/msdos.c (dostounix_filename, init_environment): Adapt to the
change in arguments of dostounix_filename.
src/image.c (xpm_load, tiff_load, gif_load, imagemagick_load)
[WINDOWSNT]: Encode file names passed to the image libraries in
ANSI codepage.
src/gnutls.c (Fgnutls_boot): Encode all file names passed to GnuTLS.
[WINDOWSNT]: Convert file names to the current ANSI codepage.
src/filelock.c (lock_file) [WINDOWSNT]: Adapt to the change in
arguments of dostounix_filename.
nt/inc/ms-w32.h (MAX_UTF8_PATH): New macro.
(opendir, closedir, readdir, seekdir): Redirect to replacement
functions.
nt/inc/dirent.h: Make d_name[] be MAXNAMELEN*4 characters long.
lisp/term/w32-win.el (w32-handle-dropped-file):
lisp/startup.el (normal-top-level):
lisp/net/browse-url.el (browse-url-file-url):
lisp/dnd.el (dnd-get-local-file-name): On MS-Windows, encode and
decode file names using 'utf-8' rather than
file-name-coding-system.
doc/emacs/mule.texi (File Name Coding): Document file-name encoding
peculiarities on MS-Windows.
doc/lispref/nonascii.texi (Encoding and I/O): Document file-name encoding
peculiarities on MS-Windows.
etc/NEWS: Mention support on MS-Windows of file names outside of the
current locale.
Dmitry Antipov [Thu, 12 Dec 2013 14:26:06 +0000 (18:26 +0400)]
* font.h (struct font_entity) [HAVE_NS]: New field to record
font driver which was used to create this entity.
(struct font) [HAVE_WINDOW_SYSTEM]: New field to record
frame where the font was opened.
(font_close_object): Add prototype.
* font.c (font_make_entity) [HAVE_NS]: Zero out driver field.
(font_close_object): Not static any more. Lost frame arg.
Adjust comment and users.
* alloc.c (cleanup_vector): Call font_close_object to adjust
per-frame font counters correctly. If HAVE_NS, also call
driver-specific cleanup for font-entity objects.
* ftfont.c (ftfont_open):
* nsfont.m (nsfont_open):
* w32font.c (w32font_open_internal):
* xfont.c (xfont_open):
* xftfont.c (xftfont_open): Save frame pointer in font object.
* macfont.m (macfont_open): Likewise.
(macfont_descriptor_entity): Save driver pointer to be able
to call its free_entity routine when font-entity is swept.
* ftxfont.c (ftxfont_open): Add eassert because frame
pointer should be saved by ftfont_driver.open.
Glenn Morris [Thu, 12 Dec 2013 08:54:21 +0000 (00:54 -0800)]
Stop keeping info/dir in the repository.
* build-aux/dir_top: Move here from admin/.
* build-aux/make-info-dir: New script.
* Makefile.in (bootstrap-clean): Delete info/.
(info-dir, ${srcdir}/info/dir): New rules.
(info): Also make info-dir.
(check-info): Rename from check-info-dir.
Instead of info/dir entries, check @dircategory in info/*.info.
* make-dist: Use `info' rule rather than `info-real'.
No more info/COPYING (not even the right license for info/ files).
* info/: Remove from repository.
* admin/update_autogen (info_dir):
Use dir_top from build-aux/ rather than admin/.
Dmitry Antipov [Thu, 12 Dec 2013 08:39:41 +0000 (12:39 +0400)]
* dispextern.h (FACE_SUITABLE_FOR_CHAR_P): Remove unused macro.
(FACE_FOR_CHAR): Simplify because face_for_char does the same.
* fontset.c (face_suitable_for_char_p) [0]: Remove unused function.
(font_for_char): Prefer ptrdiff_t to int for buffer position.
(face_for_char): Likewise. Rearrange eassert and return ASCII
face for CHAR_BYTE8_P.
* fontset.h (font_for_char, face_for_char): Adjust prototypes.
Dmitry Antipov [Thu, 12 Dec 2013 04:04:35 +0000 (08:04 +0400)]
* xterm.c (x_make_frame_visible): Restore hack which is needed when
input polling is used. This is still meaningful for Cygwin, see
http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00351.html.
* keyboard.c (poll_for_input_1, input_polling_used): Define
unconditionally.
* lisp/progmodes/python.el (python-indent-calculate-indentation): When
determining indentation, don't treat "return", "pass", etc., as
operators when they are just string constituents.
* automated/python-test.el (python-indent-block-enders-1): Rename
from python-indent-block-enders.
(python-indent-block-enders-2): New test.
Glenn Morris [Thu, 12 Dec 2013 03:37:38 +0000 (19:37 -0800)]
Add support for auto-generating info/dir
* admin/update_autogen: Add option to generate info/dir.
(Usage): Add -I.
(info_flag): New variable.
(-I): New option.
(doc): Maybe check its status.
(info_dir): New function.
Paul Eggert [Wed, 11 Dec 2013 22:31:02 +0000 (14:31 -0800)]
Make 'configure' work out-of-the-box on Solaris.
* configure.ac: Work even if libgif etc. are missing. Emacs works
without these libraries even if its default GUI is harmed, so they
are not strictly necessary. Another possibility would be to
disable X11 if these libraries are missing. The point is that a
plain 'configure' should not fail on platforms like Solaris 11
where one or more image libraries are not installed by default.
Dmitry Antipov [Wed, 11 Dec 2013 15:06:04 +0000 (19:06 +0400)]
* nsterm.m (x_free_frame_resources):
* term.c (tty_free_frame_resources):
* xterm.c (x_free_frame_resources): Do not check for non-NULL
face cache because it's implied by free_frame_faces anyway.
* w32term.c (x_free_frame_resources): Likewise. Do not call
free_frame_faces twice.
Stefan Monnier [Wed, 11 Dec 2013 14:49:01 +0000 (09:49 -0500)]
* lisp/emulation/cua-base.el (cua-paste): Add `delete-selection' property
instead of deleting the selection "by hand".
Rely on insert-for-yank to yank rectangles.
(cua-highlight-region-shift-only): Mark obsolete.
(cua-mode): Don't enable/disable transient-mark-mode,
shift-select-mode (cua-mode works both with and without them), and
pc-selection-mode (obsolete).
* lisp/emulation/cua-rect.el (cua--activate-rectangle): Activate the mark.
(cua--deactivate-rectangle): Deactivate it.
Stefan Monnier [Wed, 11 Dec 2013 14:42:34 +0000 (09:42 -0500)]
* lisp/delsel.el (delete-selection-mode): Don't enable transient-mark-mode.
(delete-selection-helper): Make sure yank starts at the top of the
deleted region.
(minibuffer-keyboard-quit): Use region-active-p.
The manual was written by Kurt Hornik. He agreed to assign the
copyright for it to the FSF. I have updated and modified the manual.
* doc/misc/octave-mode.texi: Imported from GNU Octave
(doc/interpreter/emacs.txi).
* doc/misc/Makefile.in: Add octave-mode.texi.
* lisp/progmodes/octave.el (octave-mode, inferior-octave-mode): Link
to info manual and show keybindings and set `:group' keyword.
Martin Rudalics [Wed, 11 Dec 2013 10:03:46 +0000 (11:03 +0100)]
Various fixes around Bug#16013.
* window.c (resize_frame_windows): Don't return immediately when
the root window's size doesn't change - the minibuffer window
may still have to be repositioned/resized.
* xfns.c (Fx_create_frame): Always change the frame size after
initializing the frame's faces.
* xterm.c (handle_one_xevent): Don't set pixel sizes here,
change_frame_size should already have done it.
(x_new_font): Assign new tool- and menu-bar heights.
(x_set_window_size_1): Account for tool- and menu-bar heights
(Bug#16013). Don't set pixel sizes since change_frame_size
should already have done it.
Paul Eggert [Wed, 11 Dec 2013 05:37:30 +0000 (21:37 -0800)]
Remove the option of using libcrypto.
This scorches the earth and waits for spring;
see Ted Zlatanov and Stefan Monnier in
<http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00323.html>.
* configure.ac (with_openssl_default, HAVE_LIB_CRYPTO): Remove.
Do not say whether Emacs is configured to use a crypto library,
since it's no longer an option.
(gl_CRYPTO_CHECK): Define a dummy.
* lib/gl_openssl.h, m4/gl-openssl.m4: Remove.
* admin/merge-gnulib: Remove lib/gl_openssh.h and m4/gl-openssl.m4.
* src/Makefile.in (LIB_CRYPTO): Remove.
(LIBES): Don't use it.
Juri Linkov [Wed, 11 Dec 2013 01:11:24 +0000 (03:11 +0200)]
* lisp/delsel.el (delete-active-region): Let-bind `this-command'
to prevent `kill-region' from changing its original value.
(delete-selection-helper): Handle `overwrite-mode' for the type
`kill' exactly the same way as for the type `t'.
(insert-char, quoted-insert, reindent-then-newline-and-indent):
Support more commands.
Juri Linkov [Wed, 11 Dec 2013 00:11:26 +0000 (02:11 +0200)]
* lisp/misearch.el (multi-isearch-buffers): Set the value of
`multi-isearch-buffer-list' globally. Set NO-RECURSIVE-EDIT
arg of isearch-forward to t.
(multi-isearch-buffers-regexp): Set the value of
`multi-isearch-buffer-list' globally. Set NO-RECURSIVE-EDIT
arg of isearch-forward-regexp to t.
(multi-isearch-files): Set the value of
`multi-isearch-file-list' globally. Set NO-RECURSIVE-EDIT
arg of isearch-forward to t.
(multi-isearch-files-regexp): Set the value of
`multi-isearch-file-list globally. Set NO-RECURSIVE-EDIT
arg of isearch-forward-regexp to t.
* lisp/dired-aux.el (dired-isearch-filenames): Set NO-RECURSIVE-EDIT
arg of isearch-forward to t.
(dired-isearch-filenames-regexp): Set NO-RECURSIVE-EDIT
arg of isearch-forward-regexp to t.
(dired-isearch-filter-filenames): Remove unnecessary check for
`dired-isearch-filenames'.
* lisp/comint.el (comint-history-isearch-backward):
Set NO-RECURSIVE-EDIT arg of isearch-backward to t.
(comint-history-isearch-backward-regexp):
Set NO-RECURSIVE-EDIT arg of isearch-backward-regexp to t.
Dmitry Gutov [Sun, 8 Dec 2013 16:08:45 +0000 (18:08 +0200)]
Port indentation code from js2-mode to js-mode
* lisp/progmodes/js.el (js-auto-indent-flag): Remove, was unused.
(js-switch-indent-offset): New option.
(js--proper-indentation): Use it. And handle the case when
"default" is actually a key in an object literal.
(js--same-line): New function.
(js--multi-line-declaration-indentation): Use it.
(js--indent-in-array-comp, js--array-comp-indentation): New
functions.
(js--proper-indentation): Use them, to handle array comprehension
continuations.
Paul Eggert [Sun, 8 Dec 2013 08:53:49 +0000 (00:53 -0800)]
* configure.ac: Simplify supression of GTK deprecation warning.
Move -DGDK_DISABLE_DEPRECATION_WARNINGS out of the command line
and into config.h, to shorten the command line when doing 'make'.
Don't AC_SUBST GTK_CFLAGS, as this is not needed.
Stefan Monnier [Sun, 8 Dec 2013 08:11:50 +0000 (03:11 -0500)]
Make CUA-mode use shift-select-mode.
* lisp/emulation/cua-base.el (cua--explicit-region-start)
(cua--last-region-shifted): Remove.
(cua--deactivate): Use deactivate-mark.
(cua--pre-command-handler-1): Don't handle shift-selection.
(cua--post-command-handler-1): Don't change transient-mark-mode.
(cua--select-keymaps): Use region-active-p rather than
cua--explicit-region-start or cua--last-region-shifted.
(cua-mode): Enable shift-select-mode.
* lisp/emulation/cua-rect.el (cua--rectangle-highlight-for-redisplay):
New function.
(redisplay-highlight-region-function): Use it.
Paul Eggert [Sun, 8 Dec 2013 08:05:36 +0000 (00:05 -0800)]
Use libcrypto's checksum implementations if available, for speed.
On commonly used platform libcrypto uses architecture-specific
assembly code, which is significantly faster than the C code we
were using. See Pádraig Brady's note in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-12/msg00000.html>.
Merge from gnulib, incorporating:
2013-12-07 md5, sha1, sha256, sha512: add gl_SET_CRYPTO_CHECK_DEFAULT
2013-12-07 md5, sha1, sha256, sha512: add 'auto', and set-default method
2013-12-04 include_next: minimize code duplication
2013-12-03 md5, sha1, sha256, sha512: support mandating use of openssl
2013-12-02 md5, sha1, sha256, sha512: use openssl routines if available
* configure.ac (--without-all): Set with_openssl_default too.
Use gl_SET_CRYPTO_CHECK_DEFAULT to default to 'auto'.
(HAVE_LIB_CRYPTO): New var.
Say whether Emacs is configured to use a crypto library.
* lib/gl_openssl.h, m4/absolute-header.m4, m4/gl-openssl.m4:
New files, copied from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/md5.c, lib/md5.h, lib/sha1.c, lib/sha1.h:
* lib/sha256.c, lib/sha256.h, lib/sha512.c, lib/sha512.h:
* m4/include_next.m4, m4/md5.m4, m4/sha1.m4, m4/sha256.m4, m4/sha512.m4:
Update from gnulib.
* src/Makefile.in (LIB_CRYPTO): New macro.
(LIBES): Use it.
Stefan Monnier [Sun, 8 Dec 2013 07:32:01 +0000 (02:32 -0500)]
* lisp/rect.el (rectangle-mark-mode): Activate mark even if
transient-mark-mode is off.
(rectangle--highlight-for-redisplay): Fix boundary condition when point
is > mark and at bolp.
Paul Eggert [Sun, 8 Dec 2013 05:59:27 +0000 (21:59 -0800)]
* frame.h (SET_FRAME_VISIBLE): Now an inline function.
The macro didn't conform to C99 due to type mismatch,
which caused compilation failure with Sun C 5.12,
and it was confusing anyway. Include window.h to declare
redisplay_other_windows.
Stefan Monnier [Sun, 8 Dec 2013 04:20:50 +0000 (23:20 -0500)]
Make registers and delete-selection-mode work on rectangles.
* lisp/register.el (describe-register-1): Don't modify the register's value.
(copy-to-register): Obey region-extract-function.
* lisp/delsel.el (delete-active-region): Obey region-extract-function.
Paul Eggert [Sat, 7 Dec 2013 23:04:10 +0000 (15:04 -0800)]
Fix minor problems found by static checking.
* keyboard.c (poll_for_input_1, input_polling_used):
Define only if HAVE_NTGUI.
* xmenu.c (popup_activate_callback): Omit unnecessary
check against USE_X_TOOLKIT, which must be defined here anyway.
* xterm.c, xterm.h (x_dispatch_event) [! (USE_X_TOOLKIT || USE_MOTIF)]:
Now static.