1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-20 11:33:09 -08:00
Commit graph

6732 commits

Author SHA1 Message Date
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
Juri Linkov
d5ccb7be02 * lisp/uniquify.el (uniquify-buffer-name-style): Change default to `post-forward-angle-brackets'.
* lisp/menu-bar.el (menu-bar-options-menu): Don't require preloaded `uniquify'.
Change default to `post-forward-angle-brackets'.

http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00317.html
2013-12-12 02:42:16 +02:00
Eli Zaretskii
a34a8cd1e4 Merge from trunk. 2013-12-11 19:06:29 +02:00
Stefan Monnier
7ae3ae3963 * lisp/emacs-lisp/smie.el (smie-indent--hanging-p): Don't bother matching
comment-start-skip, since it fails when that uses submatch 1.

Fixes: debbugs:16041
2013-12-11 10:59:27 -05:00
Stefan Monnier
4b72c12bf8 * 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.
2013-12-11 09:42:34 -05:00
Eli Zaretskii
cc24ef09f8 Merge from trunk. 2013-12-09 19:20:34 +02:00
Dmitry Gutov
47e59c666a 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.
2013-12-08 18:08:45 +02:00
Eli Zaretskii
ce1d7b61f1 Merge from trunk. 2013-12-07 19:21:57 +02:00
Eli Zaretskii
7df14908a3 Updated documentation. 2013-12-07 18:51:33 +02:00
Glenn Morris
652b969ea1 NEWS trivia 2013-12-06 09:31:42 -05:00
Bastien Guerry
73d3db828e Merge Org 8.2.4 2013-12-06 12:21:31 +01:00
Juri Linkov
9139632a34 * lisp/window.el (display-buffer-no-window): New action function.
(display-buffer-alist, display-buffer): Doc fix.  (Bug#13594)

* lisp/simple.el (shell-command): Add window alist entry `allow-no-window'
to `display-buffer'.
(async-shell-command): Doc fix.

* lisp/progmodes/compile.el (compilation-start): Rename window alist
entry `no-display-ok' to `allow-no-window'.

* doc/lispref/windows.texi (Choosing Window): Rename `no-display-ok' to
`allow-no-window'.
2013-12-03 03:19:24 +02:00
Helmut Eller
f345395c71 * lisp/emacs-lisp/debug.el (debugger-toggle-locals): New command.
(debugger-mode-map): Bind it.
(debugger--backtrace-base): New function.
(debugger-eval-expression): Use it.
(debugger-frame-number): Skip local vars when present.
(debugger--locals-visible-p, debugger--insert-locals)
(debugger--show-locals, debugger--hide-locals): New functions.
* src/eval.c (Fbacktrace__locals): New function.
(syms_of_eval): Defsubr it.
2013-12-02 09:45:22 -05:00
Stefan Monnier
4e36a6a6e2 * lisp/loadup.el: Preload "uniquify".
* lisp/uniquify.el (uniquify-buffer-name-style): Change default.
* src/lisp.mk (lisp): Add uniquify.elc.
2013-11-29 13:36:31 -05:00
Stefan Monnier
da04812763 * lisp/electric.el (electric-indent-mode): Enable by default.
* lisp/loadup.el: Preload "electric".
* src/lisp.mk (lisp): Add electric.elc.
2013-11-29 12:59:38 -05:00
Bozhidar Batsov
015b3b3e8e * lisp/emacs-lisp/helpers.el (string-empty-p): New function.
(string-blank-p): New function
2013-11-29 18:51:44 +02:00
Paul Eggert
48a2a0b490 Spelling fixes. 2013-11-26 12:22:17 -08:00
Bozhidar Batsov
447bdcb8d2 * lisp/emacs-lisp/helpers.el (string-reverse): New function. 2013-11-26 17:24:10 +02:00
Bozhidar Batsov
1ecfd96e0f Mention some of the noteworthy changes in ruby-mode 2013-11-26 12:21:03 +02:00
Bozhidar Batsov
4301875e6e * lisp/emacs-lisp/helpers.el (string-join): New function. 2013-11-25 21:04:50 +02:00
Bozhidar Batsov
2bb3a748b3 * lisp/emacs-lisp/bytecomp.el (byte-compile-interactive-only-functions):
Mark as obsolete and replace it with a symbol property.
(byte-compile-form): Use new 'interactive-only property.
* lisp/comint.el, lisp/files.el, lisp/replace.el, lisp/simple.el:
Apply new 'interactive-only properly.
2013-11-25 19:16:32 +02:00
Dmitry Gutov
ee4f026188 * lisp/imenu.el (imenu-generic-skip-comments-and-strings):
New option.
(imenu--generic-function): Use it.

Fixes: debbugs:15560
2013-11-24 23:23:47 +02:00
Stefan Monnier
740bcff0c1 Export get_pos_property to Elisp.
* src/editfns.c (Fget_pos_property): Rename from get_pos_property.
(syms_of_editfns): Export it to Elisp.
2013-11-24 13:28:33 -05:00
Bozhidar Batsov
b55aea382c * lisp/emacs-lisp/helpers.el: Add some string helpers.
(string-trim-left): Removes leading whitespace.
(string-trim-right): Removes trailing whitespace.
(string-trim): Removes leading and trailing whitespace.
2013-11-24 11:31:51 +02:00
Bozhidar Batsov
41ce6f7027 * lisp/subr.el (string-suffix-p): New function. 2013-11-24 10:49:44 +02:00
Brian Jenkins
f6083c67c5 Documentation for focus-in,out hooks (tiny change)
* doc/lispref/frames.texi (Input Focus):
* doc/lispref/hooks.texi (Standard Hooks):
Mention focus-in-hook, focus-out-hook.

* etc/NEWS: Copyedit.
2013-11-23 11:07:34 -08:00
Xue Fuqiao
a594a11662 Tweak previous change. 2013-11-23 22:32:56 +08:00
Xue Fuqiao
4899e078ee * etc/TODO: Minor update. 2013-11-23 22:19:32 +08:00
Glenn Morris
92f78ea3d1 * etc/enriched.txt: Rename from enriched.doc.
Misc small updates for this hardly being "new" any more.

* lisp/textmodes/enriched.el (enriched-mode): Doc fix.

* lisp/emacs-lisp/authors.el (authors-renamed-files-alist):
Add enriched.doc -> enriched.txt.

Fixes: debbugs:15947
2013-11-22 18:21:51 -08:00
Glenn Morris
17e0445be4 Empty elements in EMACSLOADPATH now stand for the default
* src/lread.c (load_path_check): Take path to check as argument.
(load_path_default): New, split from init_lread.
(init_lread): Move calc of default load-path to load_path_default.
Empty elements in EMACSLOADPATH now stand for the default.
(load-path): Doc fix.

* src/emacs.c (decode_env_path): Add option to treat empty elements
as nil rather than ".".

* src/callproc.c (init_callproc_1, init_callproc):
* src/image.c (Vx_bitmap_file_path):
* src/lisp.h (decode_env_path):
* lread.c (Vsource_directory):
Update for new argument spec of decode_env_path.

* leim/Makefile.in (RUN_EMACS): Empty EMACSLOADPATH rather than unsetting.

* lisp/Makefile.in (emacs): Empty EMACSLOADPATH rather than unsetting.

* test/automated/Makefile.in (emacs):
Empty EMACSLOADPATH rather than unsetting.

* doc/emacs/cmdargs.texi (General Variables):
Empty elements in EMACSLOADPATH now mean the default load-path.

* doc/lispref/loading.texi (Library Search):
Empty elements in EMACSLOADPATH now mean the default load-path.

* etc/NEWS: Mention this.

Fixes: debbugs:12100
2013-11-22 17:55:16 -08:00
Eli Zaretskii
2e8245cec1 Correct an utdated reference to M-g in enriched.doc. 2013-11-21 21:22:42 +02:00
Glenn Morris
2df102287e Use path-separator with -L, rather than just :
* lisp/startup.el (command-line-1): Use path-separator with -L.

* test/automated/Makefile.in (PATH_SEPARATOR): New, set by configure.
(EMACSOPT): Use PATH_SEPARATOR.

* doc/emacs/cmdargs.texi (Action Arguments): Use path-separator with -L.

* etc/NEWS: Related edit.
2013-11-20 19:21:50 -05:00
Leo Liu
f0cfa5feab * doc/lispref/windows.texi (Choosing Window): Mention `no-display-ok'.
* etc/NEWS: Mention new display action alist entry `no-display-ok'.
(Bug#13594)

* lisp/window.el (display-buffer-alist): Doc fix.  (Bug#13594)
2013-11-20 10:44:38 +08:00
Glenn Morris
f88ac3bb91 * etc/NEWS: Placeholder. 2013-11-18 21:26:34 -05:00
Paul Eggert
ec2c4ee6d2 Improve API of recently-added bool vector functions.
The old API had (bool-vector-count-matches A B)
and (bool-vector-count-matches-at A B I), which gave the
misleading impression that the two functions were variants, one
with a location I.  The new API has (bool-vector-count-population A)
and (bool-vector-count-consecutive A B I) to make the distinction
clearer.  The first function no longer has a B argument, since the
caller can easily determine the number of nils if the length and
number of ts is known.
* src/data.c (Fbool_vector_count_population): Rename from
bool_vector_count_matches, and accept just 1 argument.
(Fbool_vector_count_consecutive): Rename from
Fbool_vector_count_matches_at.
* test/automated/data-tests.el: Adjust to API changes.

Fixes: debbugs:15912
2013-11-18 10:56:42 -08:00
Leo Liu
f2cbfd4442 * NEWS: Mention new features for Octave mode. 2013-11-18 10:27:12 +08:00
Glenn Morris
1bf65cadc7 * etc/TODO: Addition. 2013-11-17 11:34:36 -08:00
Paul Eggert
d138982874 Spelling fixes.
* lisp/org/ob-python.el (org-babel-python-with-earmuffs):
Rename from org-babel-python-with-earmufs.  All uses changed.
(org-babel-python-without-earmuffs):
Rename from org-babel-python-without-earmufs.  All uses changed.
2013-11-16 23:51:24 -08:00
Bastien Guerry
271672fad7 Merge Org version 8.2.3a. 2013-11-12 14:06:26 +01:00
Stefan Monnier
7818df11b8 * lisp/bindings.el (ctl-x-map): Bind C-x SPC to rectangle-mark-mode.
* src/keyboard.c (command_loop_1): Use region-extract-function.
* src/insdel.c (Qregion_extract_function): Not static any more (can we
stop pretending that these vars can benefit from being marked static?).
2013-11-11 00:18:53 -05:00
Stefan Monnier
122a7e463a * lisp/iswitchb.el (iswitchb-mode): Mark obsolete. 2013-11-10 23:50:56 -05:00
Paul Eggert
a67c4ae059 Spelling fixes. 2013-11-04 23:44:14 -08:00
Bozhidar Batsov
7b530552e8 * lisp/helpers.el: Actually commit the library code. 2013-11-04 17:34:42 +02:00
Michal Nazarewicz
0a749fa0e6 * lisp/textmodes/fill.el (fill-single-char-nobreak-p): New function
checking whether point is after a 1-letter word.
2013-11-03 23:29:59 -05:00
Glenn Morris
a0833f62d5 * lisp/startup.el (command-line-1): Allow `-L :...' to append to load-path.
* doc/emacs/cmdargs.texi (Action Arguments): Mention that `-L :...' appends.

* etc/NEWS: Mention this.
2013-11-03 17:36:14 -08:00
Xue Fuqiao
920d06544a NEWS tweak 2013-11-02 19:37:14 +08:00
Jan Djärv
3c334c1412 Add :distant-foreground to faces.
* doc/lispref/display.texi (Face Attributes): Document :distant-foreground.

* etc/NEWS: Mention :distant-foreground.

* lisp/faces.el (face-x-resources): Add :distant-foreground.
(region): Use :distant-foreground for gtk and ns.

* src/dispextern.h (lface_attribute_index): Add
LFACE_DISTANT_FOREGROUND_INDEX.

* src/xfaces.c: Declare color_distance.
(QCdistant_foreground): New variable.
(NEAR_SAME_COLOR_THRESHOLD): New define.
(load_color2): New function.
(load_color): Call load_color2.
(load_face_colors): Call load_color2 and if distant-color is specified
calculate distant and use distant-color if colors are near.
(LFACE_DISTANT_FOREGROUND): New define.
(merge_face_ref, Finternal_set_lisp_face_attribute)
(Finternal_get_lisp_face_attribute)
(x_supports_face_attributes_p): Handle distant-foreground similar to
foreground.
(syms_of_xfaces): DEFSYM QCdistant_foreground.
2013-11-01 16:47:10 +01:00
Glenn Morris
15fb690ccc etc/TODO small updates 2013-10-29 23:27:20 -07:00
Stefan Monnier
3472b6c682 Add pre-redisplay-function and rectangular region
* lisp/rect.el: Use lexical-binding.  Add new rectangular region support.
(rectangle-mark): New command.
(rectangle--region): New var.
(deactivate-mark-hook): Reset rectangle--region.
(rectangle--extract-region, rectangle--insert-for-yank)
(rectangle--highlight-for-redisplay)
(rectangle--unhighlight-for-redisplay): New functions.
(region-extract-function, redisplay-unhighlight-region-function)
(redisplay-highlight-region-function): Use them to handle
rectangular region.
* lisp/simple.el (region-extract-function): New var.
(delete-backward-char, delete-forward-char, deactivate-mark): Use it.
(kill-new, kill-append): Remove obsolete `yank-handler' argument.
(kill-region): Replace obsolete `yank-handler' arg with `region'.
(copy-region-as-kill, kill-ring-save): Add `region' argument.
(redisplay-unhighlight-region-function)
(redisplay-highlight-region-function): New vars.
(redisplay--update-region-highlight): New function.
(pre-redisplay-function): Use it.
(exchange-point-and-mark): Don't deactivate the mark before
reactivate-it anyway.
* lisp/comint.el (comint-kill-region): Remove yank-handler argument.
* lisp/delsel.el (delete-backward-char, backward-delete-char-untabify)
(delete-char): Remove property, since it's now part of their
default behavior.
(self-insert-iso): Remove property since this command doesn't exist.

* src/xdisp.c (prepare_menu_bars): Call Vpre_redisplay_function.
(syms_of_xdisp): Declare pre-redisplay-function.
(markpos_of_region): Remove function.
(init_iterator, compute_stop_pos, handle_face_prop)
(face_before_or_after_it_pos, reseat_to_string)
(get_next_display_element, window_buffer_changed)
(redisplay_internal, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, try_window_id, display_line)
(note_mode_line_or_margin_highlight, note_mouse_highlight)
(display_string, mouse_face_from_buffer_pos): Remove region handling.
* src/window.h (struct window): Remove field `region_showing'.
* src/dispextern.h (struct it): Remove region_beg/end_charpos.
(face_at_buffer_position, face_for_overlay_string)
(face_at_string_position): Update prototypes.
* src/xfaces.c (face_at_buffer_position, face_for_overlay_string)
(face_at_string_position): Remove `region_beg' and `region_end' args.
* src/fontset.c (Finternal_char_font):
* src/font.c (font_at, font_range): Adjust calls accordingly.
* src/insdel.c (Qregion_extract_function): New var.
(syms_of_insdel): Initialize it.
(prepare_to_modify_buffer_1): Use it.
2013-10-29 12:11:50 -04:00
Nathan Trapuzzano
fdab3d0b44 * lisp/linum.el (linum-update-window): Fix boundary test.
Fixes: debbugs:13446
2013-10-27 00:18:28 -04:00