Eli Zaretskii [Fri, 3 Aug 2012 10:23:30 +0000 (13:23 +0300)]
Support symlinks on latest versions of MS-Windows.
src/w32.c: Include winioctl.h and aclapi.h.
(is_symlink, chase_symlinks, enable_privilege, restore_privilege)
(revert_to_self): Forward declarations of static functions.
<static BOOL g_b_init_get_security_info>:
<g_b_init_create_symbolic_link>: New static flags.
(globals_of_w32): Initialize them to zero.
(GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
(map_w32_filename): Improve commentary. Simplify switch.
(SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
headers (most versions of MinGW w32api don't).
(get_security_info, create_symbolic_link)
(get_file_security_desc_by_handle, is_symlink, chase_symlinks):
New functions.
(sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
in the argument file name.
(sys_access): Call unc_volume_file_attributes only if
GetFileAttributes fails with network-related error codes.
(sys_rename): Diagnose renaming of a symlink when the user doesn't
have the required privileges.
(get_file_security_desc_by_name): Renamed from
get_file_security_desc.
(stat_worker): New function, with most of the guts of 'stat', and
with addition of handling of symlinks and support for 'lstat'. If
possible, get file's attributes and security information by
handle, not by name. Produce S_IFLNK bit for symlinks, when
called from 'lstat'.
(stat, lstat): New functions, call 'stat_worker'.
(symlink, readlink, careadlinkat): Rewritten to create and resolve
symlinks when the underlying filesystem supports them.
lib/src/ntlib.c (lstat): New function, calls 'stat'.
nt/inc/sys/stat.h (S_IFLNK): Define.
(S_ISLNK): A non-trivial definition.
(lstat): Prototype instead of a macro that redirects to 'stat'.
lisp/files.el (file-truename): Don't skip symlink-chasing part on
windows-nt. Incorporate the resolution of 8+3 short aliases on
Windows into the loop that recursively chases symlinks. Compare
directory and its parent case-insensitively on MS-Windows and
MS-DOS.
etc/NEWS: Announce the symlink support on MS-Windows.
Paul Eggert [Thu, 2 Aug 2012 20:59:49 +0000 (13:59 -0700)]
Fix macroexp crash on Windows with debugging.
* lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
checking subscripts; problem introduced with the recent
"ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
(ARRAY_MARK_FLAG): Now a macro as well as a constant,
since it's used in non-static inline functions now.
Paul Eggert [Thu, 2 Aug 2012 04:46:10 +0000 (21:46 -0700)]
Merge from gnulib, for extern-inline.
2012-08-01 extern-inline: new module
2012-08-01 stat-time, timespec, u64, utimens: use extern-inline
* lib/stat-time.c, lib/utimespec.c, lib/u64.c, m4/extern-inline.m4:
New files. The new .c files are for instantiating extern inline
functions.
Paul Eggert [Thu, 2 Aug 2012 04:14:48 +0000 (21:14 -0700)]
Port to Solaris 8.
Without this change, 'configure' fails because the recently-added
wait3 prototype in config.h messes up later 'configure' tests.
Fix this problem by droping wait3 and WRETCODE, as they're
no longer needed on hosts that are current porting targets.
* configure.ac (wait3, WRETCODE): Remove, fixing a FIXME.
All uses changed to waitpid and WEXITSTATUS.
* src/syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
Paul Eggert [Thu, 2 Aug 2012 01:36:14 +0000 (18:36 -0700)]
Obsolete alias inactivate-current-input-method-function.
* lisp/international/mule-cmds.el: Create
inactivate-current-input-method-function as an obsolete alias for
deactivate-current-input-method-function. See Katsumi Yamaoka in
<http://bugs.gnu.org/10150#46>.
Paul Eggert [Wed, 1 Aug 2012 20:51:44 +0000 (13:51 -0700)]
Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
This how ASET and AREF are supposed to work, and makes
it easier to think about future improvements. See
<http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
* charset.h (set_charset_attr): New function.
All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
* lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
(aref_addr): New function. All uses of &AREF(...) changed.
(set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
(set_hash_index): New functions. All lvalue-style uses of
HASH_KEY etc. changed.
* keyboard.c (set_prop): New function. All lvalue-style uses
of PROP changed.
Jay Belanger [Wed, 1 Aug 2012 18:24:13 +0000 (13:24 -0500)]
calc.texi (Simplification modes): Mention "basic" simplification.
(The Calc Mode Line): Mention the mode line display for Basic
simplification mode.
(Simplify Formulas): Refer to 'algebraic' rather than 'default'
simplifications.
(Basic Simplifications): Rename from "Limited Simplifications"
Replace "limited" by "basic" throughout.
(Algebraic Simplifications): Indicate that the algebraic
simplifications are done by default.
(Unsafe Simplifications): Mention `m E'.
(Simplification of Units): Mention `m U'.
(Trigonometric/Hyperbolic Functions, Reducing and Mapping,
Kinds of Declarations, Functions for Declarations): Mention
"algebraic simplifications" instead of `a s'.
Dmitry Antipov [Wed, 1 Aug 2012 08:49:28 +0000 (12:49 +0400)]
Use INTERNAL_FIELD for conses and overlays.
* src/lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
Remove obsolete comment.
(MVAR): New macro.
(struct Lisp_Overlay): Use INTERNAL_FIELD.
* src/alloc.c, src/buffer.c, src/buffer.h, src/fns.c: Adjust users.
* admin/coccinelle/overlay.cocci: Semantic patch to replace direct
access to Lisp_Object members of struct Lisp_Overlay to MVAR.
Dmitry Antipov [Wed, 1 Aug 2012 07:57:09 +0000 (11:57 +0400)]
Use INTERNAL_FIELD for symbols.
* src/lisp.h (SVAR): New macro. Adjust users.
* src/alloc.c, src/bytecode.c, src/cmds.c, src/data.c, src/doc.c, src/eval.c:
* src/fns.c, src/keyboard.c, src/lread.c, src/xterm.c: Users changed.
* admin/coccinelle/symbol.cocci: Semantic patch to replace direct
access to Lisp_Object members of struct Lisp_Symbol to SVAR.
Glenn Morris [Wed, 1 Aug 2012 07:34:28 +0000 (00:34 -0700)]
Small tweaks for autoconf mode
* lisp/progmodes/autoconf.el (autoconf-definition-regexp):
Add AH_TEMPLATE, adjust submatch numbering.
(autoconf-font-lock-keywords, autoconf-imenu-generic-expression)
(autoconf-current-defun-function): Update for above change.
(autoconf-current-defun-function): First skip to end of current word.
Dmitry Antipov [Wed, 1 Aug 2012 06:23:24 +0000 (10:23 +0400)]
Use INTERNAL_FIELD for processes.
* src/process.h (PVAR): New macro. Adjust style.
(struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
* src/print.c, src/process.c, src/sysdep.c, src/w32.c:
* src/xdisp.c: Users changed.
* admin/coccinelle/process.cocci: Semantic patch to replace direct
access to Lisp_Object members of struct Lisp_Process to PVAR.
Adapt Windows port to recent changes in autogen/config.in.
* lib-src/makefile.w32-in (CONFIG_H): Update dependencies.
(CONF_POST_H): New macro.
* lib/makefile.w32-in (CONFIG_H): Update dependencies.
(CONF_POST_H): New macro.
* nt/config.nt: Sync with autogen/config.in.
Remove code moved to conf_post.h and include <conf_post.h>
(NULL_DEVICE, SEPCHAR, SIGNAL_H_AHB, TIOCSIGSEND, USER_FULL_NAME)
(USG5_4, WRETCODE, _longjmp, _setjmp, wait3): New macros.
* src/makefile.w32-in (CONFIG_H): Update dependencies.
(CONF_POST_H): New macro.
* src/s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
Shell processes: enhancements to startup and CEDET compatibility.
* progmodes/python.el (python-shell-send-setup-max-wait): Delete var.
(python-shell-make-comint): accept-process-output at startup.
(run-python-internal): Set inferior-python-mode-hook to nil.
(python-shell-internal-get-or-create-process): call sit-for.
(python-preoutput-result): Add obsolete alias.
(python-shell-internal-send-string): Use it.
(python-shell-send-setup-code): Remove call to
accept-process-output.
Eli Zaretskii [Tue, 31 Jul 2012 16:59:55 +0000 (19:59 +0300)]
Fix some of the breakage introduced with 2012-07-31T12:36:19Z!dmantipov@yandex.ru.
src/w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
src/fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
after introduction of FVAR.
Miscellaneous fixes for non-default X toolkits.
* configure.ac (MOTIF): Check for /usr/include/openmotif
and /usr/(lib|lib64)/openmotif if --with-x-toolkit=motif.
* lwlib/lwlib-Xm.c (make_menu_in_widget): Remove unused variable.
* src/xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
* src/xterm.c (x_frame_of_widget): Remove redundant prototype.
Move under #ifdef USE_LUCID.
(x_create_toolkit_scroll_bar): Adjust scroll_bar_name
definition and usage to avoid warnings.