1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-21 18:23:59 +00:00
emacs/doc/lispref
Eli Zaretskii 01633a17e7 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.

Fixes: debbugs:7100
2013-12-12 20:19:10 +02:00
..
.gitignore (configure, index.texi, vol1.*, vol2.*): Remove. 2008-06-17 05:59:50 +00:00
abbrevs.texi Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
advice.texi Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
anti.texi Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
back.texi Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
backups.texi Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
book-spine.texi Add "et al." to authors for emacs and elisp manuals. 2012-04-25 20:48:08 -04:00
buffers.texi Add `remember-notes' function to store random notes across Emacs 2013-06-30 18:29:23 -04:00
ChangeLog Support MS-Windows file names that use characters outside of ANSI codepage. 2013-12-12 20:19:10 +02:00
commands.texi commands.texi small fix for bug#13393 2013-01-09 16:26:08 -05:00
compile.texi Documentation fix for 'ls' and hard links. 2013-06-10 13:26:20 -07:00
control.texi Doc tweaks for cond 2013-10-09 13:17:20 -04:00
customize.texi Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca 2013-01-02 08:13:04 -08:00
debugging.texi Fix some doc/ cross-references 2013-07-02 20:03:47 -07:00
display.texi Fix typos in doc files (bug#16089). 2013-12-08 16:33:27 +01:00
doclicense.texi Update licenses to latest version from FSF. 2012-12-06 00:33:32 -08:00
edebug.texi * doc/lispref/edebug.texi (Instrumenting Macro Calls): Use @defmac for macros. 2013-08-10 13:03:11 +08:00
elisp.texi Add support for auto-generating info/dir 2013-12-11 19:37:38 -08:00
errors.texi * lisp/subr.el (define-error): New function. 2013-08-09 17:22:44 -04:00
eval.texi Remove remaining @refills from doc/*/*.texi files 2013-10-23 13:20:09 -04:00
files.texi Remove a FIXME. 2013-11-20 10:52:35 +08:00
frames.texi Documentation for focus-in,out hooks (tiny change) 2013-11-23 11:07:34 -08:00
functions.texi * doc/lispref/functions.texi (Obsolete Functions): Add an index for obsolete functions. 2013-09-12 20:22:17 +08:00
gpl.texi Update licenses to latest version from FSF. 2012-12-06 00:33:32 -08:00
hash.texi * doc/lispref/hash.texi (Defining Hash): Fix typo (tiny change) 2013-01-03 10:38:55 -08:00
help.texi Use just DOC instead of DOC-nn.mm. 2013-05-15 16:12:53 -04:00
hooks.texi Documentation for focus-in,out hooks (tiny change) 2013-11-23 11:07:34 -08:00
index.texi Fix minor whitespace issues after "." in manual. 2012-12-05 14:27:56 -08:00
internals.texi * doc/lispref/internals.texi (Writing Emacs Primitives): Remove obvious example. 2013-04-23 11:57:44 -07:00
intro.texi Remove remaining @refills from doc/*/*.texi files 2013-10-23 13:20:09 -04:00
keymaps.texi * keymaps.texi (Tool Bar): Mention that Gtk+/NS ignores item 1 to 3. 2013-11-10 13:18:03 +01:00
lay-flat.texi Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
lists.texi Fix indexing in the lispref manual. 2013-11-05 19:47:48 +02:00
loading.texi Move runtime leim lisp files to lisp/leim directory 2013-11-26 22:15:06 -08:00
macros.texi * doc/lispref/macros.texi (Defining Macros): Prefer "function" to "lambda 2013-09-08 14:01:25 -04:00
Makefile.in doc/ distclean rules should remove Makefiles 2013-11-30 10:34:58 -08:00
makefile.w32-in Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
maps.texi Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
markers.texi Minor improving in indexing of "region". 2013-08-18 22:25:15 +03:00
minibuf.texi Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
modes.texi * doc/lispref/modes.texi (Imenu): Make it clear that sub-alist is the cdr. 2013-11-29 05:38:20 +02:00
nonascii.texi Updated documentation. 2013-12-07 18:51:33 +02:00
numbers.texi Add log2 support and make log10 obsolete for consistency. 2013-06-20 07:15:42 -07:00
objects.texi Remove remaining @refills from doc/*/*.texi files 2013-10-23 13:20:09 -04:00
os.texi Move runtime leim lisp files to lisp/leim directory 2013-11-26 22:15:06 -08:00
package.texi Fix some doc/ cross-references 2013-07-02 20:03:47 -07:00
positions.texi Minor improving in indexing of buffer position. 2013-08-19 07:12:32 +08:00
processes.texi Fix typos in doc files (bug#16089). 2013-12-08 16:33:27 +01:00
README Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
searching.texi * lisp/isearch.el (isearch-mode, isearch-done): Don't set arg LOCAL 2013-12-04 02:12:02 +02:00
sequences.texi Remove an unnecessary FIXME. 2013-09-29 06:26:29 +08:00
spellfile Prefer typical American spelling for "acknowledgment". 2012-07-24 22:48:19 -07:00
streams.texi Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
strings.texi Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
symbols.texi * symbols.texi (Standard Properties): Document pure. (Bug#13823) 2013-03-17 17:51:36 +01:00
syntax.texi * doc/lispref/syntax.texi (Categories): Add an index for category sets. 2013-10-05 19:49:02 +08:00
text.texi doc/lispref/text.texi (Not Intervals): Minor wording fix. 2013-09-13 11:26:03 +03:00
tips.texi * doc/lispref/tips.texi (Comment Tips): Discourage use of triple semi-colons 2013-10-06 23:46:32 -04:00
two-volume-cross-refs.txt Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
two-volume.make Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
variables.texi * lispref/variables.texi (File Local Variables): Don't recommend quoting! 2013-08-26 11:28:24 -04:00
windows.texi Fix typos in doc files (bug#16089). 2013-12-08 16:33:27 +01:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001-2013 Free Software Foundation, Inc.  -*- outline -*-
See the end of the file for license conditions.


README for the Emacs Lisp Reference Manual.

* This directory contains the texinfo source files for the Emacs Lisp
Reference Manual.

* Report bugs in the Lisp Manual (or in Emacs) using M-x report-emacs-bug.
To ask questions, use the help-gnu-emacs mailing list.

* The Emacs Lisp Reference Manual is quite large.  It totals around
1100 pages in smallbook format; the info files total around 3.0 megabytes.

* You can format this manual for Info, for printing hardcopy using TeX,
or for HTML.

* You can buy nicely printed copies from the Free Software Foundation.
Buying a manual from the Free Software Foundation helps support our GNU
development work.  See <http://shop.fsf.org/>.
(At time of writing, this manual is out of print.)

* The master file for formatting this manual for Tex is called `elisp.texi'.
It contains @include commands to include all the chapters that make up
the manual.

* This distribution contains a Makefile that you can use with GNU Make.

** To make an Info file, you need to install Texinfo, then run `make info'.

** Use `make elisp.pdf' or `make elisp.html' to create PDF or HTML versions.


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/>.