1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-24 08:51:10 -08:00
Commit graph

37843 commits

Author SHA1 Message Date
Stefan Monnier
56b86e5030 * src/keyboard.c (read_key_sequence): Complete last fix (bug#21403) 2015-09-07 13:27:50 -04:00
Eli Zaretskii
caf4a01926 Fix deletion of symlinks to directories on MS-Windows
* src/w32.c (sys_unlink): If 'unlink' fails, and the argument is a
symlink to a directory, try again with 'rmdir'.
(is_symlink): If the argument is a symlink to a directory, set a
bit in the return value to indicate that fact.
2015-09-07 18:26:36 +03:00
Robert Pluim
ac9da24198 Avoid read error messages from 'inotify'
* src/process.c (wait_reading_process_output): Add a
'tls_available' set and manipulate it instead of 'Available' when
checking TLS inputs.  Assign the value to 'Available' only if we
find any TLS data waiting to be read.  This avoids error messages
from 'inotify' that tries to read data it shouldn't.  (Bug#21337)
2015-09-05 11:37:29 +03:00
Philip
90937cbfe4 Fix segfaults due to using a stale face ID
* src/xdisp.c (forget_escape_and_glyphless_faces): New function.
(display_echo_area_1, redisplay_internal): Call it to avoid
reusing stale face IDs for 'escape-glyph' and 'glyphless-char'
faces, which could case a segfault if the frame's face cache was
freed since the last redisplay.  (Bug#21394)
* src/xfaces.c (free_realized_faces): Call forget_escape_and_glyphless_faces.
* src/dispextern.h (forget_escape_and_glyphless_faces): Add prototype.

Copyright-paperwork-exempt: yes
2015-09-05 11:08:57 +03:00
Stefan Monnier
944d77f070 Re-add the notion of echo_prompt lost in the translation
* src/keyboard.h (struct kboard): Replace echo_after_prompt with new
echo_prompt which contains the actual string.  Update all uses.

* src/keyboard.c (kset_echo_prompt): New function.
(echo_update): Add echo_prompt at the very beginning.
(read_char): Remove workaround for bug#19875, not needed any more.
(read_key_sequence): Set echo_prompt rather than echo_string (bug#21403).
(mark_kboards): Mark echo_prompt.
2015-09-03 16:02:28 -04:00
K. Handa
fa5a9c7bae Fix typo
* ftfont.c (ftfont_drive_otf): otf_positioning_type_components_mask -> OTF_positioning_type_components_mask.
2015-09-02 19:11:05 +09:00
K. Handa
e7b62736aa Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2015-09-02 18:28:54 +09:00
K. Handa
ae08d073d7 fix previous change
* ftfont.c (ftfont_drive_otf): Remember some bits of
OTF_Glyph->positioning_type in MFLTGlyphFT->libotf_positioning_type.
2015-09-02 18:27:23 +09:00
Paul Eggert
19532d147b Escape ` and ' in doc
Escape apostrophes and grave accents in docstrings if they are
are supposed to stand for themselves and are not quotes.  Remove
apostrophes from docstring examples like ‘'(calendar-nth-named-day
-1 0 10 year)’ that confuse source code with data.  Do some other
minor docstring fixups as well, e.g., insert a missing close
quote.
2015-09-01 18:23:21 -07:00
Stefan Monnier
5dc644a6b0 Generalize the prefix-command machinery of C-u
* lisp/simple.el (prefix-command-echo-keystrokes-functions)
(prefix-command-preserve-state-hook): New hooks.
(internal-echo-keystrokes-prefix): New function.
(prefix-command--needs-update, prefix-command--last-echo): New vars.
(prefix-command-update, prefix-command-preserve): New functions.
(reset-this-command-lengths): New compatibility definition.
(universal-argument--mode): Call prefix-command-update.
(universal-argument, universal-argument-more, negative-argument)
(digit-argument): Call prefix-command-preserve-state.

* src/keyboard.c: Call internal-echo-keystrokes-prefix to build
the "prefix argument" to echo.
(this_command_key_count_reset, before_command_key_count)
(before_command_echo_length): Delete variables.
(echo_add_key): Always add a space.
(echo_char): Remove.
(echo_dash): Don't give up when this_command_key_count is 0, since that
is now the case after a prefix command.
(echo_update): New function, extracted from echo_now.
(echo_now): Use it.
(add_command_key, read_char, record_menu_key): Remove old disabled code.
(command_loop_1): Don't refrain from pushing an undo boundary when
prefix-arg is set.  Remove other prefix-arg special case, now handled
directly in the prefix commands instead.  But call echo_now if there's
a prefix state to echo.
(read_char, record_menu_key): Use echo_update instead of echo_char.
(read_key_sequence): Use echo_now rather than echo_dash/echo_char.
(Freset_this_command_lengths): Delete function.
(syms_of_keyboard): Define Qinternal_echo_keystrokes_prefix.
(syms_of_keyboard): Don't defsubr Sreset_this_command_lengths.

* lisp/simple.el: Use those new hooks for C-u.
(universal-argument--description): New function.
(prefix-command-echo-keystrokes-functions): Use it.
(universal-argument--preserve): New function.
(prefix-command-preserve-state-hook): Use it.
(command-execute): Call prefix-command-update if needed.

* lisp/kmacro.el (kmacro-step-edit-prefix-commands)
(kmacro-step-edit-prefix-index): Delete variables.
(kmacro-step-edit-query, kmacro-step-edit-insert): Remove ad-hoc
support for prefix arg commands.
(kmacro-step-edit-macro): Don't bind kmacro-step-edit-prefix-index.

* lisp/emulation/cua-base.el (cua--prefix-override-replay)
(cua--shift-control-prefix): Use prefix-command-preserve-state.
Remove now unused arg `arg'.
(cua--prefix-override-handler, cua--prefix-repeat-handler)
(cua--shift-control-c-prefix, cua--shift-control-x-prefix):
Update accordingly.
(cua--prefix-override-timeout): Don't call reset-this-command-lengths
any more.
(cua--keep-active, cua-exchange-point-and-mark): Don't set mark-active
if the mark is not set.
2015-09-01 21:14:18 -04:00
Paul Eggert
a3c31adea4 Docstring fixes re quotes in C code
Fix some docstring quoting problems, mostly by escaping apostrophe.
2015-09-01 06:23:21 -07:00
K. Handa
3e0e2339cd Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2015-09-01 20:46:15 +09:00
K. Handa
524eeb2e5e Use the new type MFLTGlyphFT for MFLTGlyphString.glyphs.
* ftfont.c (MFLTGlyphFT): New type.
(ftfont_get_glyph_id, ftfont_get_metrics, ftfont_drive_otf)
(ftfont_shape_by_flt): Make MFLTGlyphFT the actual type of
elements in the array MFLTGlyphString.glyphs.
2015-09-01 20:44:51 +09:00
Eli Zaretskii
e634dacce7 Fix directory accessibility tests for w32 network volumes
* src/w32.c (faccessat): Don't fail with network volumes without a
share.
(w32_accessible_directory_p): Handle network volumes without a
share.
2015-08-31 17:57:08 +03:00
Eli Zaretskii
5ee3ef8e18 Fix handling long file names in readdir on MS-Windows
* src/w32.c (sys_readdir): Append "\*" to the directory after
converting it to UTF-16/ANSI, not before, to avoid overflowing the
260-character limit on file names in filename_to_utf16/ansi.
2015-08-31 17:52:47 +03:00
Eli Zaretskii
697be62c5f Make file-accessible-directory-p reliable on MS-Windows
* src/w32.c (w32_accessible_directory_p): New function.
* src/w32.h (w32_accessible_directory_p): Add prototype.
* src/fileio.c (file_accessible_directory_p) [WINDOWSNT]: Call
w32_accessible_directory_p to test a directory for accessibility
by the current user.  (Bug#21346)
(Ffile_accessible_directory_p): Remove the w32 specific caveat
from the doc string.
2015-08-31 17:48:26 +03:00
Martin Rudalics
8af8355c3f Don't call do_pending_window_change in signal handlers (Bug#21380)
* src/gtkutil.c (xg_frame_resized):
* src/xterm.c (x_set_window_size):
* src/w32term.c (x_set_window_size): Don't call
do_pending_window_change.
2015-08-31 11:09:22 +02:00
YAMAMOTO Mitsuharu
5e5ee391d9 Use Core Text types/functions/variables/enumerators directly
* src/macfont.h (FontDescriptorRef, FontRef, FontSymbolicTraits)
(CharacterCollection): Remove typedefs.  All uses replaced with
definitions.
(MAC_FONT_NAME_ATTRIBUTE, MAC_FONT_FAMILY_NAME_ATTRIBUTE)
(MAC_FONT_TRAITS_ATTRIBUTE, MAC_FONT_SIZE_ATTRIBUTE)
(MAC_FONT_CASCADE_LIST_ATTRIBUTE)
(MAC_FONT_CHARACTER_SET_ATTRIBUTE, MAC_FONT_LANGUAGES_ATTRIBUTE)
(MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_SYMBOLIC_TRAIT)
(MAC_FONT_WEIGHT_TRAIT, MAC_FONT_WIDTH_TRAIT)
(MAC_FONT_SLANT_TRAIT): Remove macros.  All uses replaced with
definitions.
(MAC_FONT_TRAIT_ITALIC, MAC_FONT_TRAIT_BOLD)
(MAC_FONT_TRAIT_MONO_SPACE, MAC_FONT_TRAIT_COLOR_GLYPHS)
(MAC_FONT_FORMAT_BITMAP)
(MAC_CHARACTER_COLLECTION_IDENTITY_MAPPING)
(MAC_CHARACTER_COLLECTION_ADOBE_JAPAN1): Remove enumerators.  All
uses replaced with definitions.
(kCTFontTraitItalic, kCTFontTraitBold, kCTFontTraitMonoSpace)
(kCTFontTraitColorGlyphs, kCTCharacterCollectionIdentityMapping)
(kCTCharacterCollectionAdobeJapan1 kCTFontOrientationDefault): Add
compatibility enumerators for older versions.
(mac_font_descriptor_create_with_attributes)
(mac_font_descriptor_create_matching_font_descriptors)
(mac_font_descriptor_create_matching_font_descriptor)
(mac_font_descriptor_copy_attribute)
(mac_font_descriptor_supports_languages)
(mac_font_create_with_name, mac_font_get_size)
(mac_font_copy_family_name, mac_font_copy_character_set)
(mac_font_get_glyphs_for_characters, mac_font_get_ascent)
(mac_font_get_descent, mac_font_get_leading)
(mac_font_get_underline_position)
(mac_font_get_underline_thickness, mac_font_copy_graphics_font)
(mac_font_copy_non_synthetic_table): Remove macros.  All uses
replaced with definitions.
(mac_font_create_preferred_family_for_attributes)
(mac_font_get_advance_width_for_glyph)
(mac_font_get_bounding_rect_for_glyph)
(mac_font_create_available_families, mac_font_shape): Remove
macros for renamed functions.
(mac_nsctfont_copy_font_descriptor): Remove unused macro.
* src/macterm.m (mac_font_descriptor_supports_languages): Rename
from mac_ctfont_descriptor_supports_languages.
(mac_font_create_preferred_family_for_attributes): Rename from
mac_ctfont_create_preferred_family_for_attributes.
(mac_font_get_advance_width_for_glyph): Rename from
mac_ctfont_get_advance_width_for_glyph.  Use
kCTFontOrientationDefault also for older versions.
(mac_font_get_bounding_rect_for_glyph): Rename from
mac_ctfont_get_bounding_rect_for_glyph. Use
kCTFontOrientationDefault also for older versions.
(mac_font_create_available_families): Rename from
mac_ctfont_create_available_families.
(mac_font_equal_in_postscript_name): Rename from
mac_ctfont_equal_in_postscript_name.  All uses changed.
(mac_font_create_line_with_string_and_font): Rename from
mac_ctfont_create_line_with_string_and_font.  All uses changed.
(mac_font_shape): Rename from mac_ctfont_shape.
(mac_font_family_compare): Remove unused declaration.
2015-08-29 17:03:55 +09:00
Paul Eggert
ff441d3508 Fix minor text quoting problems in lisp top level
* lisp/apropos.el (apropos-describe-plist):
* lisp/cus-theme.el (customize-themes):
* lisp/dired.el (dired-log):
* lisp/help-fns.el (describe-variable):
* lisp/hexl.el (hexl-insert-multibyte-char):
* lisp/info.el (Info-finder-find-node):
* lisp/json.el (json-read-string):
* lisp/novice.el (disabled-command-function)
(disabled-command-function):
* lisp/startup.el (normal-mouse-startup-screen):
* lisp/woman.el (WoMan-log, WoMan-warn):
Respect text quoting style in doc string or diagnostic.
* lisp/replace.el (replace-character-fold):
* src/syntax.c (Fmodify_syntax_entry):
Escape an apostrophe in a docstring.
* lisp/tempo.el (tempo-define-template):
Remove confusing apostrophe from docstring.
* lisp/whitespace.el (whitespace-mark-x):
Use directed quotes in docstring.
2015-08-28 20:32:39 -07:00
Paul Eggert
6dbe056b9b Add test case for ‘format’ bug and refactor
* src/editfns.c (styled_format): Refactor internally, mostly by
moving declarations closer to uses.  This should not affect behavior.
* test/automated/textprop-tests.el (textprop-tests-format): New test.
2015-08-27 08:52:02 -07:00
Paul Eggert
f33c164123 Fix ‘format’ bug with property offsets
* src/editfns.c (styled_format): Fix recently-introduced ‘format’
bug in calculating string property offsets (Bug#21351).
2015-08-27 04:09:30 -07:00
Paul Eggert
60d1b18734 Assume GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS
This removes the need for GCPRO1 etc.  Suggested by Stefan Monnier in:
http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00918.html
* doc/lispref/internals.texi (Writing Emacs Primitives):
* etc/NEWS:
Document the change.
* src/alloc.c (gcprolist, dump_zombies, MAX_ZOMBIES, zombies)
(nzombies, ngcs, avg_zombies, max_live, max_zombies, avg_live)
(Fgc_status, check_gcpros, relocatable_string_data_p, gc-precise):
* src/bytecode.c (mark_byte_stack) [BYTE_MARK_STACK]:
* src/eval.c (gcpro_level) [DEBUG_GCPRO]:
* src/lisp.h (struct handler.gcpro, struct gcpro, GC_MARK_STACK)
(GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
(GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
(BYTE_MARK_STACK, GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6)
(GCPRO7, UNGCPRO, RETURN_UNGCPRO):
Remove.  All uses removed.  The code now assumes
GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.
* src/bytecode.c (relocate_byte_stack):
Rename from unmark_byte_stack, since it now only relocates.
All callers changed.
* src/frame.c (make_frame): Add an IF_LINT to pacify GCC 5.2
with GCPROs removed.
* src/systime.h: Use EMACS_LISP_H as the canary instead of GCPRO1.
* test/automated/finalizer-tests.el (finalizer-basic)
(finalizer-circular-reference, finalizer-cross-reference)
(finalizer-error):
* test/automated/generator-tests.el (cps-test-iter-close-finalizer):
Remove tests, as they depend on gc-precise.
2015-08-26 19:24:58 -07:00
Paul Eggert
582222b557 Fix quoting in ‘message_with_string’
* src/nsfont.m (nsfont_open): Use directed quotes in format; they
should work now.
* src/xdisp.c (message_to_stderr): New function, refactored from
part of ‘message3_nolog’.
(message3_nolog): Use it.
(message_with_string): Use it.  Don’t mishandle NUL bytes when
noninteractive.  Prefer AUTO_STRING when it’s most likely faster.
Use ‘format-message’, not ‘format’, so that quotes are translated.
2015-08-26 13:12:26 -07:00
Eli Zaretskii
84a9787242 Mention false positives of file-accessible-directory on w32
* src/fileio.c (Ffile_accessible_directory_p): Doc fix.
(Bug#21346)
2015-08-26 18:44:09 +03:00
Paul Eggert
2731e821ab Treat error strings as help
* src/print.c (print_error_message): Translate quotes and command
keys in errmsg so that users see, e.g., "Symbol’s value as
variable is void: foo" when text-quoting-style is curved.
2015-08-26 08:26:38 -07:00
Paul Eggert
71781c31a4 format-message now curves ` and '
That way, the caller doesn’t have to use curved quotes to
get diagnostics that match the text-quoting-style preferences.
Suggested by Dmitry Gutov in:
http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00893.html
This means we no longer need %qs, so remove that format.
While we’re at it, fix an unlikely bug and lessen the pressure
on the garbage collector by processing the string once rather
than twice in the usual case.
* doc/lispref/strings.texi (Formatting Strings):
* etc/NEWS: Document this.
* lisp/subr.el (format-message): Remove; now done in C.
* src/callint.c (Fcall_interactively):
* src/editfns.c (Fmessage, Fmessage_box):
Use Fformat_message instead of Finternal__text_restyle
followed by Fformat.
* src/doc.c (LSQM, RSQM): Remove; all uses changed to use
uLSQM and uRSQM.
(Fsubstitute_command_keys): Prefer AUTO_STRING to build_string
when pure ASCII now suffices.  Fix unlikely bug when parsing
unibyte string containing non-ASCII bytes.  Use inline code
rather than memcpy, as it’s a tiny number of bytes.
(Finternal__text_restyle): Remove; no longer used.
(syms_of_doc): Don’t declare it.
* src/editfns.c (Fformat): Rewrite in terms of new function
‘styled_format’.
(Fformat_message): New function, moved here from subr.el.
(styled_format): New function, with the old guts of Fformat,
except it now optionally transliterates quotes, and it transliterates
traditional grave accent and apostrophe quoting as well.
Remove recently-added q flag; no longer needed or used.
(syms_of_editfns): Define format-message.
* src/lisp.h (uLSQM0, uLSQM1, uLSQM2, uRSQM0, uRSQM1, uRSQM2):
Remove; no longer need to be global symbols.
* src/xdisp.c (vadd_to_log): Use Fformat_message, not Fformat,
so that callers can use `%s'.
* src/image.c (image_size_error, xbm_load_image, xbm_load)
(xpm_load, pbm_load, png_load_body, jpeg_load_body, tiff_load)
(gif_load, imagemagick_load_image, imagemagick_load, svg_load)
(svg_load_image, gs_load, x_kill_gs_process):
* src/lread.c (load_warn_old_style_backquotes):
* src/xfaces.c (load_pixmap):
* src/xselect.c (x_clipboard_manager_error_1):
Use `%s' instead of %qs in formats.
2015-08-25 19:00:20 -07:00
Paul Eggert
68280c5ee9 Treat ' like ’ even when not matching `
This is simpler and easier to explain, and should encourage better
typography.  Do this in Electric Quote mode and when translating
quotes in docstrings.  Inspired by a suggestion by Dmitry Gutov	in:
https://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00806.html
* doc/emacs/text.texi (Quotation Marks):
* doc/lispref/help.texi (Keys in Documentation):
* etc/NEWS:
Document this.
* lisp/electric.el (electric-quote-post-self-insert-function):
* src/doc.c (Fsubstitute_command_keys):
Always treat ' like ’ even when not matched by an open quote.
2015-08-24 23:57:21 -07:00
YAMAMOTO Mitsuharu
1229e61ab8 * src/macfont.m (macfont_create_family_with_symbol): Accept localized names. 2015-08-25 11:06:27 +09:00
Pip Cet
93da8ac5d7 Fix full-screen code when there is no window manager (Bug#21317)
* src/xterm.h (x_wm_supports): Declare external.
* src/xterm.c (wm_suppports): Rename to `x_wm_supports', export.
(do_ewmh_fullscreen, x_ewmh_activate_frame): Adjust for rename.
(x_check_fullscreen): Call `x_wm_set_size_hint', restore
`fullscreen' frame parameter.
* gtkutil.c (x_wm_set_size_hint): Set size hints when running
without a window manager.

Copyright-paperwork-exempt: yes
2015-08-24 09:41:35 +02:00
Paul Eggert
fbb5531fa1 More-conservative ‘format’ quote restyling
Instead of restyling curved quotes for every call to ‘format’,
create a new function ‘format-message’ that does the restyling,
and using the new function instead of ‘format’ only in contexts
where this seems appropriate.
Problem reported by Dmitry Gutov and Andreas Schwab in:
http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00826.html
http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00827.html
* doc/lispref/commands.texi (Using Interactive):
* doc/lispref/control.texi (Signaling Errors, Signaling Errors):
* doc/lispref/display.texi (Displaying Messages, Progress):
* doc/lispref/elisp.texi:
* doc/lispref/help.texi (Keys in Documentation):
* doc/lispref/minibuf.texi (Minibuffer Misc):
* doc/lispref/strings.texi (Formatting Strings):
* etc/NEWS:
Document the changes.
* lisp/abbrev.el (expand-region-abbrevs):
* lisp/apropos.el (apropos-library):
* lisp/calc/calc-ext.el (calc-record-message)
(calc-user-function-list):
* lisp/calc/calc-help.el (calc-describe-key, calc-full-help):
* lisp/calc/calc-lang.el (math-read-big-balance):
* lisp/calc/calc-store.el (calc-edit-variable):
* lisp/calc/calc-units.el (math-build-units-table-buffer):
* lisp/calc/calc-yank.el (calc-edit-mode):
* lisp/calendar/icalendar.el (icalendar-export-region)
(icalendar--add-diary-entry):
* lisp/cedet/mode-local.el (mode-local-print-binding)
(mode-local-describe-bindings-2):
* lisp/cedet/semantic/complete.el (semantic-completion-message):
* lisp/cedet/semantic/edit.el (semantic-parse-changes-failed):
* lisp/cedet/semantic/wisent/comp.el (wisent-log):
* lisp/cedet/srecode/insert.el (srecode-insert-show-error-report):
* lisp/descr-text.el (describe-text-properties-1, describe-char):
* lisp/dframe.el (dframe-message):
* lisp/dired-aux.el (dired-query):
* lisp/emacs-lisp/byte-opt.el (byte-compile-log-lap-1):
* lisp/emacs-lisp/bytecomp.el (byte-compile-log)
(byte-compile-log-file, byte-compile-warn, byte-compile-form):
* lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use)
(cconv-analyze-form):
* lisp/emacs-lisp/check-declare.el (check-declare-warn):
* lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
* lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet):
* lisp/emacs-lisp/edebug.el (edebug-format):
* lisp/emacs-lisp/eieio-core.el (eieio-oref):
* lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message)
(eldoc-message):
* lisp/emacs-lisp/elint.el (elint-file, elint-log):
* lisp/emacs-lisp/find-func.el (find-function-library):
* lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning):
* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
* lisp/emacs-lisp/nadvice.el (advice--make-docstring):
* lisp/emacs-lisp/package.el (package-compute-transaction)
(package-install-button-action, package-delete-button-action)
(package-menu--list-to-prompt):
* lisp/emacs-lisp/timer.el (timer-event-handler):
* lisp/emacs-lisp/warnings.el (lwarn, warn):
* lisp/emulation/viper-cmd.el:
(viper-toggle-parse-sexp-ignore-comments)
(viper-kill-buffer, viper-brac-function):
* lisp/emulation/viper-macs.el (viper-record-kbd-macro):
* lisp/facemenu.el (facemenu-add-new-face):
* lisp/faces.el (face-documentation, read-face-name)
(face-read-string, read-face-font, describe-face):
* lisp/files.el (find-alternate-file, hack-local-variables)
(hack-one-local-variable--obsolete, write-file)
(basic-save-buffer, delete-directory):
* lisp/format.el (format-write-file, format-find-file)
(format-insert-file):
* lisp/help-fns.el (help-fns--key-bindings)
(help-fns--compiler-macro, help-fns--obsolete)
(help-fns--interactive-only, describe-function-1)
(describe-variable):
* lisp/help.el (describe-mode):
* lisp/info-xref.el (info-xref-output):
* lisp/info.el (Info-virtual-index-find-node)
(Info-virtual-index, info-apropos):
* lisp/international/kkc.el (kkc-error):
* lisp/international/mule-cmds.el:
(select-safe-coding-system-interactively)
(select-safe-coding-system, describe-input-method):
* lisp/international/mule-conf.el (code-offset):
* lisp/international/mule-diag.el (describe-character-set)
(list-input-methods-1):
* lisp/international/quail.el (quail-error):
* lisp/minibuffer.el (minibuffer-message):
* lisp/mpc.el (mpc--debug):
* lisp/msb.el (msb--choose-menu):
* lisp/net/ange-ftp.el (ange-ftp-message):
* lisp/net/gnutls.el (gnutls-message-maybe):
* lisp/net/newst-backend.el (newsticker--sentinel-work):
* lisp/net/newst-treeview.el (newsticker--treeview-load):
* lisp/net/nsm.el (nsm-query-user):
* lisp/net/rlogin.el (rlogin):
* lisp/net/soap-client.el (soap-warning):
* lisp/net/tramp.el (tramp-debug-message):
* lisp/nxml/nxml-outln.el (nxml-report-outline-error):
* lisp/nxml/nxml-parse.el (nxml-parse-error):
* lisp/nxml/rng-cmpct.el (rng-c-error):
* lisp/nxml/rng-match.el (rng-compile-error):
* lisp/nxml/rng-uri.el (rng-uri-error):
* lisp/obsolete/iswitchb.el (iswitchb-possible-new-buffer):
* lisp/org/org-ctags.el:
(org-ctags-ask-rebuild-tags-file-then-find-tag):
* lisp/proced.el (proced-log):
* lisp/progmodes/ebnf2ps.el (ebnf-log):
* lisp/progmodes/flymake.el (flymake-log):
* lisp/progmodes/vhdl-mode.el (vhdl-warning-when-idle):
* lisp/replace.el (occur-1):
* lisp/simple.el (execute-extended-command)
(undo-outer-limit-truncate, define-alternatives):
* lisp/startup.el (command-line):
* lisp/subr.el (error, user-error, add-to-list):
* lisp/tutorial.el (tutorial--describe-nonstandard-key)
(tutorial--find-changed-keys):
* src/callint.c (Fcall_interactively):
* src/editfns.c (Fmessage, Fmessage_box):
Restyle the quotes of format strings intended for use as a
diagnostic, when restyling seems appropriate.
* lisp/subr.el (format-message): New function.
* src/doc.c (Finternal__text_restyle): New function.
(syms_of_doc): Define it.
2015-08-23 22:39:06 -07:00
Paul Eggert
41cb0162c5 Fix minor glitches from ‘format’ reversion
* doc/lispref/strings.texi (Formatting Strings):
After reversion, ‘text-quoting-style’ is documented in ‘Keys in
Documentation’, not below.
* src/syntax.c (Finternal_describe_syntax_value):
Prefer AUTO_STRING to build_string where either will do, as
AUTO_STRING is a bit faster.
2015-08-23 13:51:52 -07:00
Eli Zaretskii
877e77e3ee Support exec-directory with non-ASCII characters on Windows
* src/w32proc.c (sys_spawnve): Make sure exec-directory is encoded
in the system's ANSI codepage, when it is used for invoking
cmdproxy.
2015-08-23 18:01:35 +03:00
Andreas Schwab
6b1765e05d Revert "Extend ‘format’ to translate curved quotes"
This reverts commit 244c801689.
2015-08-23 16:33:39 +02:00
Andreas Schwab
0b0c9565d0 Revert "Prefer ‘format’ to ‘substitute-command-keys’"
This reverts commit 6af5aad264.
2015-08-23 16:33:39 +02:00
Eli Zaretskii
b0fe29ed92 Fix invocation of programs via cmdproxy.exe
* src/w32proc.c (sys_spawnve): Use exec-directory, not
invocation-directory, for finding cmdproxy.exe.  When Emacs is
run from the source tree, look for cmdproxy.exe in the same source
tree.  (Bug#21323)
2015-08-22 22:14:56 +03:00
Eli Zaretskii
8583c215a2 A better fix for bug#21303
* src/w32uniscribe.c (_WIN32_WINNT): Define to 0x0600.  This is a
cleaner fix for Bug#21260 than the previous change.
2015-08-21 17:45:41 +03:00
Michael Albinus
21c2b4ac52 * src/gfilenotify.c (Fgfile_add_watch):
Handle errors from g_file_monitor.
2015-08-21 11:40:38 +02:00
Martin Rudalics
df9b29eda0 Sanitize frame geometry related functions
* src/nsfns.m (Fx_frame_geometry): Rename to Fns_frame_geometry.
(Fx_frame_edges): Rename to Fns_frame_edges.
* src/w32fns.c (Fx_frame_geometry): Rename to Fw32_frame_geometry.
(Fx_frame_edges): Rename to Fw32_frame_edges.
(Fx_mouse_absolute_pixel_position): Rename to
Fw32_mouse_absolute_pixel_position.
(Fx_set_mouse_absolute_pixel_position): Rename to
Fw32_set_mouse_absolute_pixel_position.
* lisp/frame.el (x-frame-geometry, w32-frame-geometry)
(ns-frame-geometry, x-frame-edges, w32-frame-edges)
(ns-frame-edges, w32-mouse-absolute-pixel-position)
(x-mouse-absolute-pixel-position)
(w32-set-mouse-absolute-pixel-position)
(x-set-mouse-absolute-pixel-position): Declare.
(frame-geometry, mouse-absolute-pixel-position)
(set-mouse-absolute-pixel-position): New functions.
(frame-edges): Rewrite in terms of x-/w32-/ns-frame-edges.
2015-08-21 11:00:59 +02:00
Eli Zaretskii
092e17b197 Fix MinGW64 build broken by latest w32uniscribe.c changes
* src/w32uniscribe.c (UNISCRIBE_OPENTYPE): Define to 0x0100, for
MinGW64.  Reported by Andy Moreton <andrewjmoreton@gmail.com>.
(Bug#21260)
2015-08-21 11:46:07 +03:00
Paul Eggert
760701ebe1 Don't quote symbols 'like-this' in docstrings etc.
* admin/unidata/uvs.el (uvs-insert-fields-as-bytes):
* lisp/allout-widgets.el (allout-widgets-count-buttons-in-region):
* lisp/allout.el (allout-add-resumptions, allout-mode):
* lisp/calculator.el (calculator-operators):
* lisp/cedet/data-debug.el (dd-propertize):
* lisp/cedet/ede/proj-prog.el (ede-proj-target-makefile-program):
* lisp/cedet/semantic/analyze/debug.el:
(semantic-analyzer-debug-global-miss-text):
* lisp/cedet/semantic/lex-spp.el:
(semantic-lex-spp-replace-or-symbol-or-keyword):
* lisp/cedet/semantic/symref.el:
(semantic-symref-cleanup-recent-buffers-fcn):
* lisp/cedet/semantic/tag.el (semantic-tag-class):
* lisp/cedet/srecode/el.el (srecode-semantic-handle-:el-custom):
* lisp/gnus/nnmairix.el (nnmairix-propagate-marks-upon-close):
* lisp/gnus/pop3.el (pop3-authentication-scheme):
* lisp/help-fns.el (describe-function-orig-buffer):
* lisp/imenu.el (imenu--history-list):
* lisp/mail/feedmail.el (feedmail-confirm-outgoing)
(feedmail-display-full-frame, feedmail-deduce-bcc-where)
(feedmail-queue-default-file-slug)
(feedmail-queue-buffer-file-name):
* lisp/net/mairix.el (mairix-searches-mode-map):
* lisp/net/newst-backend.el (newsticker-retrieval-method)
(newsticker-auto-mark-filter-list):
* lisp/obsolete/vi.el (vi-mode):
* lisp/progmodes/cc-engine.el (c-literal-type):
* lisp/progmodes/cpp.el (cpp-face):
* lisp/progmodes/ebrowse.el (ebrowse-electric-list-looper):
* lisp/progmodes/elisp-mode.el (elisp--xref-make-xref):
* lisp/progmodes/pascal.el (pascal-auto-lineup):
* lisp/progmodes/prog-mode.el (prog-widen):
* lisp/progmodes/verilog-mode.el (verilog-regexp-words)
(verilog-auto-lineup, verilog-auto-reset-widths)
(verilog-auto-arg-format, verilog-auto-inst-template-numbers):
* lisp/textmodes/flyspell.el (flyspell-maybe-correct-transposition)
(flyspell-maybe-correct-doubling):
* lisp/textmodes/table.el (table-justify, table-justify-cell)
(table-justify-row, table-justify-column, table-insert-sequence)
(table--justify-cell-contents):
* lisp/url/url-auth.el (url-get-authentication):
* lisp/window.el (display-buffer-record-window):
* lisp/xml.el (xml-parse-file, xml-parse-region):
* src/gfilenotify.c (Fgfile_add_watch):
Don't quote symbols with apostrophes in doc strings.
Use asymmetric quotes instead.
* lisp/cedet/semantic/complete.el (semantic-displayor-show-request):
Likewise for symbol in diagnostic.
* lisp/image.el (image-extension-data):
* lisp/register.el (frame-configuration-to-register):
* src/buffer.c (syms_of_buffer):
Remove bogus apostrophes after symbols.
* lisp/thumbs.el (thumbs-conversion-program):
Quote Lisp string values using double-quotes, not apostrophes.
2015-08-20 17:34:57 -07:00
Martin Rudalics
186297de6e In w32fns.c's Fx_frame_geometry rewrite check whether frame has a titlebar
* src/w32fns.c (Fx_frame_geometry): Use title_bar.rgstate[0] to
determine whether frame has a titlebar.
Suggested by Eli Zaretskii <eliz@gnu.org>
2015-08-20 08:22:53 +02:00
Eli Zaretskii
ae7cfd0baf Improve and future-proof OTF fonts support in w32uniscribe.c
* src/w32uniscribe.c (uniscribe_otf_capability): Add commentary
about the expected results and why the new Uniscribe APIs are not
used in this function.
(ScriptGetFontScriptTags_Proc, ScriptGetFontLanguageTags_Proc)
(ScriptGetFontFeatureTags_Proc): New function typedefs.
(uniscribe_new_apis): New static variable.
(uniscribe_check_features): New function, implements OTF features
verification while correctly accounting for features in the list
after the nil member, if any.
(uniscribe_check_otf_1): New function, retrieves the features
supported by the font for the requested script and language using
the Uniscribe APIs available from Windows Vista onwards.
(uniscribe_check_otf): If the new Uniscribe APIs are available,
use them in preference to reading the font data directly.  Call
uniscribe_check_features to verify that the requested features are
supported, replacing the original incomplete code.
(syms_of_w32uniscribe): Initialize function pointers for the new
Uniscribe APIs.  (Bug#21260)
(otf_features): Scan the script, langsys, and feature arrays back
to front, so that the result we return has them in alphabetical
order, like ftfont.c does.
* src/w32fns.c (syms_of_w32fns) <w32-disable-new-uniscribe-apis>:
New variable for debugging w32uniscribe.c code.
2015-08-19 18:04:22 +03:00
Martin Rudalics
19cdde4aea In nsimage.m include coding.h (Bug#21292)
* src/nsimage.m (top-level): Include coding.h (Bug#21292).
2015-08-19 11:26:37 +02:00
Martin Rudalics
f5a14da109 Move window edge functions to Elisp.
* src/window.c (Fwindow_edges, Fwindow_pixel_edges)
(Fwindow_absolute_pixel_edges, Fwindow_inside_edges)
(Fwindow_inside_pixel_edges, Fwindow_inside_absolute_pixel_edges):
Move to window.el.
(calc_absolute_offset): Remove.
* lisp/frame.el (frame-edges): New function.
* lisp/window.el (window-edges, window-pixel-edges)
(window-absolute-pixel-edges): Move here from window.c.
(window-body-edges, window-body-pixel-edges)
(window-absolute-body-pixel-edges): Move here from window.c and
rename "inside" to "body".  Keep old names as aliases.
(window-absolute-pixel-position): New function.
2015-08-19 11:20:44 +02:00
Martin Rudalics
62661fe759 In w32fns.c condition TITLEBAR_INFO declaration on WINDOWS version.
* src/w32fns.c (TITLEBAR_INFO): Make it a typedef so MinGW64
builds can use the declaration from the system headers.
(GetTitleBarInfo_Proc, Fx_frame_geometry): Adapt to new
definition of TITLEBAR_INFO.
Suggested by Eli Zaretskii  <eliz@gnu.org>
2015-08-19 08:49:41 +02:00
Paul Eggert
87fbe1a6cb Use new q ‘format’ flag when fixing quotes in C
* src/image.c (image_size_error): New function.  All uses of
image_error with "Invalid image size ..."  changed to use it.
* src/image.c (image_size_error, xbm_load_image, xbm_load)
(xpm_load, xpm_load_image, xpm_load, pbm_load, png_load_body)
(jpeg_load_body, tiff_load, gif_load, imagemagick_load_image)
(imagemagick_load, svg_load, svg_load_image, gs_load)
(x_kill_gs_process):
* src/lread.c (load_warn_old_style_backquotes):
* src/xfaces.c (load_pixmap):
* src/xselect.c (x_clipboard_manager_error_1):
Use %qs, not uLSQM and uRSQM.
* src/syntax.c (Finternal_describe_syntax_value):
Prefer Fsubstitute_command_keys to Fformat, as this lets
us use AUTO_STRING.
* src/xdisp.c (vadd_to_log): Use AUTO_STRING on the format argument,
as it's now guaranteed to be ASCII.
* src/xselect.c (x_clipboard_manager_error_2):
Avoid grave accent in low-level stderr diagnostic.
2015-08-18 23:14:08 -07:00
Paul Eggert
67de1b6fa7 New q flag for ‘format’
* doc/lispref/processes.texi (Sentinels):
Don't hardwire grave quoting style in example.
* doc/lispref/strings.texi (Formatting Strings):
* etc/NEWS:
Document new q flag.
* src/editfns.c (Fformat): Implement it.
2015-08-18 23:14:08 -07:00
Paul Eggert
aab8326b28 Fix multibyte confusion in diagnostics
* src/print.c (print_error_message):
Don't assume that the caller's name is unibyte.
* src/xdisp.c (vadd_to_log):
Don't assume that the formatted diagnostic is unibyte.
2015-08-18 16:24:57 -07:00
Paul Eggert
6367368616 Fix file name encodings in diagnostics
Also, close some minor races when opening image files, by opening
them once instead of multiple times.
* src/gtkutil.c (xg_get_image_for_pixmap):
* src/image.c (xpm_load, tiff_load, gif_load, imagemagick_load)
(svg_load):
* src/nsimage.m (allocInitFromFile:):
* src/xfns.c (xg_set_icon):
Encode file name, since x_find_image_file no longer does that.
* src/image.c (x_find_image_fd): New function.
(x_find_image_file): Use it.  Do not encode resulting file name,
since callers sometimes need it decoded.
(slurp_file): File arg is now a fd, not a file name.
All callers changed.  This saves us having to open the file twice.
(xbm_load, xpm_load, pbm_load, png_load_body, jpeg_load_body)
(svg_load):
Use x_find_image_fd and fdopen to save a file-open.
Report file name that failed.
* src/lread.c (openp): If PREDICATE is t, open the file in binary mode.
2015-08-18 16:24:56 -07:00
Martin Rudalics
c29a51df2d Rewrite and add frame geometry related functions.
* src/frame.c (Fframe_position): New function.
(Fset_frame_position): Rename parameters and rewrite doc-string.
(syms_of_frame): Remove Qframe_position, Qframe_outer_size,
Qtitle_height and Qframe_inner_size.  Add Qouter_edges,
Qouter_position, Qouter_size, Qnative_edges, Qinner_edges,
Qtitle_bar_size.
* src/nsfns.m (frame_geometry): New function.
(Fx_frame_geometry): Call frame_geometry.
(Fx_frame_edges): New function.
* src/w32fns.c (C_CHILDREN_TITLEBAR, TITLEBAR_INFO)
(GetTitleBarInfo_Proc): Define these so we can use the
GetTitleBarInfo API.
(Fw32_frame_menu_bar_size, Fw32_frame_rect): Remove.
(Fx_frame_geometry): Rewrite.
(Fx_frame_edges, Fx_mouse_absolute_pixel_position)
(Fx_set_mouse_absolute_pixel_position): New functions.
* src/xfns.c (frame_geometry): New function.
(Fx_frame_geometry): Call frame_geometry.
(Fx_frame_edges, Fx_mouse_absolute_pixel_position)
(Fx_set_mouse_absolute_pixel_position): New functions.
2015-08-18 16:45:27 +02:00