1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-02 11:50:48 -08:00
Commit graph

37441 commits

Author SHA1 Message Date
Martin Rudalics
ffec11d9b4 Fix doc-string of x_frame_normalize_before_maximize.
* xterm.c (x_frame_normalize_before_maximize): Fix doc-string.
Suggested by Alan Mackenzie <acm@muc.de>.
2015-02-14 18:50:37 +01:00
Eli Zaretskii
93888585de Fix assertion violations when popping menus on TTY (Bug#19862)
src/menu.c (Fx_popup_menu) [HAVE_X_WINDOWS]: Call
 x_relative_mouse_position only for X frames.
2015-02-14 15:11:30 +02:00
Paul Eggert
65563fd771 Better support for future plugins
See the thread containing:
http://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00720.html
* lib-src/make-docfile.c (write_globals): Generate code that #defines
Qxxx macros other than Qnil only if DEFINE_NONNIL_Q_SYMBOL_MACROS.
Qnil is safe to define even in plugins, since it must be zero for
other reasons.
* src/lisp.h (DEFINE_LISP_SYMBOL): New macro, replacing and simplifying
DEFINE_LISP_SYMBOL_BEGIN / DEFINE_LISP_SYMBOL_END.  All uses changed.
(DEFINE_NONNIL_Q_SYMBOL_MACROS): New macro, defaulting to true.
2015-02-12 18:21:32 -08:00
Martin Rudalics
02138cb0b8 Improve toggling fullscreen state of frames.
* frame.el (toggle-frame-maximized, toggle-frame-fullscreen):
Rename frame parameter `maximized' to `fullscreen-restore'.
Restore fullwidth/-height after fullboth state.  Update
doc-strings.
* w32term.c (w32_read_socket): In SIZE_MAXIMIZED and
SIZE_RESTORED cases correctly handle `maximized' value for the
`fullscreen' parameter.  Don't use the 'maximized' parameter any
more.
(w32fullscreen_hook): Include menu bar height when calculating
new text height in FULLSCREEN_BOTH case.
* xterm.c (do_ewmh_fullscreen): Handle transition from
FULLSCREEN_BOTH to FULLSCREEN_MAXIMIZED when
x_frame_normalize_before_maximize is set.
* frames.texi (Size Parameters): Update description of
fullscreen frame parameter.
2015-02-11 09:07:24 +01:00
Paul Eggert
f0ed1d6336 Use bool for boolean in xdisp.c
* dispextern.h (display_prop_intangible_p, resize_mini_window)
(pixel_to_glyph_coords, mark_window_display_accurate)
(compute_display_string_pos, handle_tool_bar_click)
(x_intersect_rectangles, clear_mouse_face, display_tty_menu_item):
* lisp.h (setup_echo_area_for_printing, message_with_string)
(pos_visible_p): Use bool for boolean.
* xdisp.c: Use bool, true, false intstead of int, 1, 0.
Remove unnecessary forward decls.
(trace_move) [DEBUG_TRACE_MOVE]: Now static.
(CHECK_IT, CHECK_WINDOW_END):
Now an inline function that is always defined.
(check_it) [0]:
(check_window_end) [oGLYPH_DEBUG && ENABLE_CHECKING]:
Remove; no longer needed.
(handle_stop): Prefer (X && !Y) to (X ? !Y : 0).
(get_overlay_strings): Omit unnecessary casts.
(forward_to_next_line_start):
(Ftool_bar_height):
Prefer !BOOL to (BOOL ? 0 : 1).
(next_element_function): New typedef.
(get_next_element): Use it.  Now const.
(IT_POS_VALID_AFTER_MOVE_P): Prefer !X || Y==0 to (X ? Y==0 : 1).
(vmessage): Now ATTRIBUTE_FORMAT_PRINTF (1, 0), to pacify GCC 4.9.2
(display_echo_area): Prefer BOOLEXPR to BOOLEXPR ? 1 : 0.
(tool_bar_item_info): Simplify.
(invisible_prop): Rename from invisible_p, since it doesn't
return bool.  All callers changed.
(x_produce_glyphs): Simplify.
2015-02-09 23:50:18 -08:00
Paul Eggert
21d1f8b85e Check for some overflows in vertical-motion
* indent.c (window_column_x): New function.
(Fvertical_motion): Use it to protect against integer overflow
when computing column.  Prefer extract_float to doing things by hand.
Avoid unnecessary casts.
2015-02-09 11:26:33 -08:00
Paul Eggert
b7028f6736 * xfont.c: Minor style fixes
(xfont_list_pattern): Reindent to 80 cols and use Emacs-style comments.
Redo loop so that less indentation is needed.
2015-02-09 11:08:58 -08:00
Eli Zaretskii
403cb178c7 Speed up vertical-motion when screen coordinates are known
src/indent.c (Fvertical_motion): Accept an additional argument
 CUR-COL and use it as the starting screen coordinate.
 src/window.c (window_scroll_line_based, Fmove_to_window_line): All
 callers of vertical-motion changed.

 doc/lispref/positions.texi (Screen Lines): Update the documentation of
 vertical-motion to document the new additional argument.
2015-02-09 18:24:46 +02:00
Dima Kogan
af560cd6f1 Remove unused assignment.
* font.c (font_score): Remove unused variable assignment.
2015-02-09 15:56:38 +01:00
Dima Kogan
054dcbab24 Try non-scaled xld fonts first, and scaled if that failed.
Fixes: debbugs:19117

* xfaces.c (realize_basic_faces): Don't set Qscalable_fonts_allowed to
t.
* font.c (font_score): Try to find a font without scaling first,
and only accept scalable fonts if we did not get a match.
2015-02-09 15:52:48 +01:00
Stefan Monnier
83e5a17c34 * src/keyboard.c (syms_of_keyboard): Use non-nil default value. 2015-02-09 09:36:26 -05:00
Paul Eggert
2f70087153 Use C99's INFINITY and NAN macros
* lread.c: Include <math.h>.
(string_to_number): Use INFINITY and NAN rather than rolling our own.
This avoids some runtime diagnostics when building with
gcc -fsanitize=undefined.
2015-02-08 23:12:32 -08:00
Paul Eggert
2371717311 Fix bidi_explicit_dir_char undefined behavior
* bidi.c (bidi_explicit_dir_char): Avoid subscript error when
argument is BIDI_EOB.  This can happen in bidi_level_of_next_char.
2015-02-08 18:14:41 -08:00
Paul Eggert
fd6f7d1449 Better distinguish infinite from invalid times
* editfns.c (check_time_validity): New function.
(decode_time_components): Return int, not bool.
Return -1 (not 0) if the time is out of range.
All callers changed.
(lisp_time_struct, lisp_seconds_argument): Distinguish better
between time overflow and invalid time values.
2015-02-08 16:21:44 -08:00
Paul Eggert
61320cc95c Minor tweaks to frame_size_history_add
* frame.c (frame_size_history_add): Don't assume length fits in 'int'.
Prefer XCAR and XCDR to Fcar and Fcdr when the arg is a cons.
(Fframe_after_make_frame): Simplify.
* gtkutil.c: Remove commented-out code.
* xfns.c (Fx_create_frame): Fix indenting.
2015-02-08 10:52:37 -08:00
Eli Zaretskii
dd2aa937d6 Fix a thinko in frame-parameter (Bug#19802)
src/frame.c (Fframe_parameter): Don't replace a non-nil value of
 foreground-color or background-color parameters with a nil value.
2015-02-08 19:54:59 +02:00
Stefan Monnier
60f8214e97 * src/data.c (Findirect_function): Don't signal an error
* src/data.c (Findirect_function): Like `symbol-function', don't signal an
error for void functions any more.
* lisp/subr.el (indirect-function): Change advertised calling convention.
2015-02-08 08:51:10 -05:00
Martin Rudalics
d165578319 Try to improve handling of fullwidth/-height frames.
* frame.el (frame-notice-user-settings): Update
`frame-size-history'.
(make-frame): Update `frame-size-history'.  Call
`frame-after-make-frame'.
* faces.el (face-set-after-frame-default): Remove call to
frame-can-run-window-configuration-change-hook.
* frame.c (frame_size_history_add): New function.
(frame_inhibit_resize): Consider frame_inhibit_implied_resize
only after frame's after_make_frame slot is true.  Inhibit
resizing fullwidth-/height frames in one direction only.  Update
frame_size_history.
(adjust_frame_size): Call frame_size_history_add.
(make_frame): Initalize after_make_frame slot.
(Fmake_terminal_frame): Adjust adjust_frame_size call.
(Fcan_run_window_configuration_change_hook): Rename to
Fframe_after_make_frame.  Set after_make_frame slot.  Return
second argument.
(x_set_frame_parameters): Postpone handling fullscreen parameter
until after width and height parameters have been set.  Apply
width and height changes only if can_x_set_window_size is true.
Update frame_size_history.
(Qadjust_frame_size_1, Qadjust_frame_size_2)
(Qadjust_frame_size_3, QEmacsFrameResize, Qframe_inhibit_resize)
(Qx_set_fullscreen, Qx_check_fullscreen, Qx_set_window_size_1)
(Qxg_frame_resized, Qxg_frame_set_char_size_1)
(Qxg_frame_set_char_size_2, Qxg_frame_set_char_size_3)
(Qxg_change_toolbar_position, Qx_net_wm_state)
(Qx_handle_net_wm_state, Qtb_size_cb, Qupdate_frame_tool_bar)
(Qfree_frame_tool_bar): New symbol for updating
frame_size_history.
(Qtip_frame, Qterminal_frame): New symbols.
(Vframe_adjust_size_history): Rename to frame_size_history.
* frame.h (struct frame): Rename
can_run_window_configuration_change_hook slot to
after_make_frame.
(frame_size_history_add): Extern.
* gtkutil.c (xg_frame_resized): Call frame_size_history_add.
Don't set FRAME_PIXEL_WIDTH and FRAME_PIXEL_HEIGHT here.
(xg_frame_set_char_size): Try to preserve the status of
fullwidth/-height frames.  Call frame_size_history_add.
(tb_size_cb, update_frame_tool_bar, free_frame_tool_bar)
(xg_change_toolbar_position): Call frame_size_history_add.
* w32fns.c (x_change_tool_bar_height): Handle frame's fullscreen
status.
(Fx_create_frame): Process fullscreen parameter after frame has
been resized.
(x_create_tip_frame): Pass Qtip_frame to adjust_frame_size.
(Fx_frame_geometry): Don't pollute pure storage.
* w32term.c (w32_read_socket): For WM_WINDOWPOSCHANGED,
WM_ACTIVATE and WM_ACTIVATEAPP set frame's visibility before
calling w32fullscreen_hook.  For WM_DISPLAYCHANGE call
w32fullscreen_hook immediately.
(x_fullscreen_adjust, x_check_fullscreen): Remove.
(w32fullscreen_hook): Call change_frame_size just as with a
"normal" frame resize operation.  Call do_pending_window_change.
(x_set_window_size): Try to handle fullwidth and fullheight more
accurately.  Don't rely on w32_enable_frame_resize_hack.
(w32_enable_frame_resize_hack): Remove variable.
* widget.c (EmacsFrameResize): Remove dead code.  Call
frame_size_history_add
* window.c (run_window_configuration_change_hook): Check
f->after_make_frame instead of
f->can_run_window_configuration_change_hook.
* xfns.c (x_change_tool_bar_height): Handle frame's fullscreen status.
(Fx_create_frame): Process fullscreen parameter after frame has
been resized.
(Fx_frame_geometry): Don't pollute pure storage.
* xterm.c (x_net_wm_state, x_handle_net_wm_state): Call
frame_size_history_add.
(do_ewmh_fullscreen): Handle x_frame_normalize_before_maximize.
(x_check_fullscreen): Count in menubar when calling
XResizeWindow.  Wait for ConfigureNotify event.  Call
frame_size_history_add.
(x_set_window_size_1): Remove PIXELWISE argument.  Try to handle
changing a fullheight frame's width or a fullwidth frame's
height.  Call frame_size_history_add.
(x_set_window_size): Simplify xg_frame_set_char_size and
x_set_window_size_1 calls.
(x_frame_normalize_before_maximize): New variable.
2015-02-07 11:51:03 +01:00
Paul Eggert
cf498e5b9a Remove no-longer-used cursor_in_echo_area code
* dispnew.c (set_window_cursor_after_update, update_frame_1):
Remove checks for negative cursor_in_echo_area, since this var is
a boolean, and has been a boolean for some time.  Simplify.
* dispnew.c (init_display):
* xdisp.c (message3_nolog, vmessage): Use bool for boolean.
2015-02-06 19:28:56 -08:00
Stefan Monnier
ad5a7c86d0 Add (:documentation <form>) for dynamically-generated docstrings
* lisp/emacs-lisp/bytecomp.el:
(byte-compile-initial-macro-environment): Use macroexp-progn.
(byte-compile-cl-warn): Don't silence use of cl-macroexpand-all.
(byte-compile-file-form-defvar-function): Rename from
byte-compile-file-form-define-abbrev-table.
(defvaralias, byte-compile-file-form-custom-declare-variable): Use it.
(byte-compile): Use byte-compile-top-level rather than
byte-compile-lambda so we can compile non-values.
(byte-compile-form): Add warnings for failed uses of lexical vars via
quoted symbols.
(byte-compile-unfold-bcf): Improve message for failed inlining.
(byte-compile-make-closure): Handle new format of internal-make-closure
for dynamically-generated docstrings.

* lisp/emacs-lisp/cconv.el (cconv--convert-function):
Add `docstring' argument.
(cconv-convert): Use it to handle the new (:documentation ...) form.
(cconv-analyze-form): Handle the new (:documentation ...) form.

* src/eval.c (Ffunction): Handle the new (:documentation ...) form.
(syms_of_eval): Declare `:documentation'.
2015-02-05 14:28:16 -05:00
Martin Rudalics
49aa3a12cc Remove recently added BUFFER arg of `window-text-pixel-size'.
* xdisp.c (Fwindow_text_pixel_size): Remove optional BUFFER
argument added on 2015-02-01.
* display.texi (Size of Displayed Text): Remove description of
optional argument BUFFER of `window-text-pixel-size'.
2015-02-05 15:40:19 +01:00
Paul Eggert
ac27180cca Remove no-longer-used two_byte_p calculations
* dispextern.h (struct glyph_string): Remove member two_byte_p.
All uses removed.
* xdisp.c (get_glyph_face_and_encoding): Remove arg two_byte_p.
All callers changed.
2015-02-03 18:54:01 -08:00
Paul Eggert
1905cb7637 Omit unnecessary var if GTK or NS
* frame.c, frame.h (frame_default_tool_bar_height) [USE_GTK||HAVE_NS]:
Now a constant zero on these platforms.
2015-02-02 16:21:22 -08:00
Martin Rudalics
92a8dec54e Give `window-text-pixel-size' optional BUFFER argument.
[This reinstalls commit 1d1162479c,
which I mistakenly reverted.  --eggert]
* xdisp.c (Fwindow_text_pixel_size): Add optional argument BUFFER.
* display.texi (Size of Displayed Text): Describe optional
argument BUFFER of `window-text-pixel-size'.
2015-02-01 12:06:32 -08:00
Paul Eggert
241260cc28 Revert changes installed by xwidgets merge 2015-02-01 11:45:15 -08:00
Martin Rudalics
1d1162479c Give `window-text-pixel-size' optional BUFFER argument.
* xdisp.c (Fwindow_text_pixel_size): Add optional argument BUFFER.
* display.texi (Size of Displayed Text): Describe optional
argument BUFFER of `window-text-pixel-size'.
2015-02-01 16:49:46 +01:00
Joakim Verona
9fe732a02a Better changelog for xwidgets 2015-02-01 01:30:02 +01:00
Joakim Verona
d75b60ce5f NEWS entry and Changelog xwidgets 2015-02-01 01:16:40 +01:00
Joakim Verona
69815dfe37 Merge branch 'master' into xwidget 2015-02-01 00:37:46 +01:00
Joakim Verona
3fd802081f Fix for crash when displaying xwidget in a tty
Xwidgets are now handled the same as images in the tty case,
they are ignored.
2015-01-31 21:07:07 +01:00
Eli Zaretskii
a2c32b0cfc Avoid aborts when keyboard-coding-system is raw-text (Bug#19532)
src/coding.c (raw_text_coding_system_p): New function.
 src/keyboard.c (read_decoded_event_from_main_queue): Use it when the
 keyboard coding-system is 'raw-text'.
 src/coding.h (raw_text_coding_system_p): Add prototype.
2015-01-31 20:48:53 +02:00
Andreas Schwab
080b9b56c9 Don't reimplement move-if-change badly
* Makefile.in (gl-stamp): Generate globals.h through the use of
move-if-change.
(globals.h): Replace with empty command.
2015-01-31 09:42:16 +01:00
Eli Zaretskii
eaea02c71a Fix while-no-input loops (Bug#19547)
src/keyboard.c (kbd_buffer_store_event_hold): Ignore FOCUS_OUT_EVENT
 and ICONIFY_EVENT for the purposes of breaking while-no-input
 loops.
2015-01-31 10:35:26 +02:00
Eli Zaretskii
376ba20ac1 Fix last commit, which confused WINDOWSNT with MSDOS.
src/dired.c (read_dirent): Correct the "MSDOS hacks" hack: the
 special code for errno = ENOENT or EACCES is needed for WINDOWSNT,
 not for MSDOS.
2015-01-31 10:05:10 +02:00
Paul Eggert
512cdb9f2b Simplify read_dirent's MSDOS hacks
* dired.c (read_dirent): Simplify by removing the need for the
DIR_ENTRY argument.  All callers changed.  This separates the
MS-DOS idiosyncrasies better from the rest of the code.
2015-01-30 23:12:18 -08:00
Glenn Morris
2b9b98bdb7 # ChangeLog fixes
Merged ChangeLog entries go to the top, with the date of the merge.
It's a simple rule.
2015-01-30 00:01:24 -08:00
Eli Zaretskii
44ae136490 Fix error messages when readdir cannot open a directory on MS-Windows
src/dired.c (read_dirent): Accept an additional argument
 FIRST_ENTRY.  If readdir fails with ENOENT or EACCES the first
 time it is called, report the error as if it happened in
 open_directory.
 (directory_files_internal, file_name_completion): Adjust callers
 or read_dirent.
2015-01-30 08:48:32 +02:00
Paul Eggert
34d0859c4b Refactor calls to opendir for simplicity
* dired.c (open_directory): Accept Lisp_Object, not char *, for
dirname.  Signal an error if the open fails.  All callers changed.
2015-01-29 19:02:01 -08:00
Paul Eggert
4ab6e74a1c Report readdir failures
Previously, on non-MS-Windows platforms the code treated most
readdir failures as EOF.  This was incorrect, e.g., when readdir
fails with errno == EOVERFLOW.  Signal an error instead.
* dired.c (read_dirent):
New function, which signals an error when readdir fails.
(directory_files_internal, file_name_completion): Use it.
2015-01-29 15:33:20 -08:00
Paul Eggert
eadf313c72 Merge from origin/emacs-24
ad588af Improve the fix for bug #19701

Conflicts:
	src/ChangeLog
2015-01-29 13:54:51 -08:00
Eli Zaretskii
1dc1959ebf Commit src/ChangeLog for previous commit. 2015-01-29 20:46:03 +02:00
Eli Zaretskii
0761ec1669 Use bool for boolean in w32menu.c, w32font.c, w32uniscribe.c.
src/w32uniscribe.c (uniscribe_list, uniscribe_match): Use bool where
 appropriate.
 src/w32font.c (struct font_callback_data, w32font_list_internal)
 (w32font_driver, w32font_match_internal): Use bool where appropriate.
 src/w32menu.c (x_activate_menubar, set_frame_menubar)
 (w32_dialog_show, initialize_frame_menubar, w32_menu_show)
 (is_simple_dialog): Use bool where appropriate.
2015-01-29 19:16:56 +02:00
Paul Eggert
cdee38ab61 Use bool, not int, to track face changes
* xfaces.c (face_change): Rename from face_change_count, and
change from int to bool.  The var is now true (instead of nonzero)
if attributes have changed; this is simpler.  All uses changed.
Fixes: bug#19698
2015-01-28 11:15:23 -08:00
Eli Zaretskii
ad588afdaa Improve the fix for bug #19701
src/dired.c (directory_files_internal, file_name_completion)
 [WINDOWSNT]: Signal an error when errno is set non-zero by
 'readdir', regardless of its value.
 src/w32.c (sys_readdir): Set errno to ENOENT when the directory
 doesn't exist and to EACCES when it's not accessible to the
 current user.  Set errno to zero when FindNextFile exhausts the
 directory, so that callers don't interpret that as an error and
 don't signal a file-error.
 (open_unc_volume): Set errno to ENOENT if WNetOpenEnum fails.
2015-01-28 19:42:28 +02:00
Fabián Ezequiel Gallina
5491fd1098 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2015-01-28 01:31:15 -03:00
Fabián Ezequiel Gallina
95a2cb24b0 Merge from origin/emacs-24
9664def Signal a file-error from directory-files on MS-Windows  (Bug#19701)
fd4e65e Added missing test for previous commit
5485e3e5 python.el: New non-global state dependent indentation engine.
3b23e6a Fix the description of --insert command-line option  (Bug#19694)
7a7e594 Add a cross-reference in ELisp manual.  (Bug#19668)
b4f4075 Fixes: debbugs:19660
83b3c31 * test/automated/regexp-tests.el: Require regexp-opt

Conflicts:
	lisp/progmodes/python.el
2015-01-28 01:08:18 -03:00
Fabián Ezequiel Gallina
33ab7ee0ed Merge from origin/emacs-24
8ee825c doc/emacs/programs.texi (Custom C Indent): Fix a typo.  (Bug#19647)
88ba49f Fix coding.c subscript error
3ea1b31 Prevent artist-mode from creating runaway timers (Bug#6130).
2015-01-28 01:03:46 -03:00
Fabián Ezequiel Gallina
294127e7d5 Merge from origin/emacs-24
24aacfc Improve documentation of buttons  (Bug#19628)
52ae3db doc/lispref/text.texi (Clickable Text): Improve indexing.  (Bug#19629)
310f707 lisp/button.el (button-activate, push-button): Doc fix.  (Bug#19628)
3ee38f2 Disallow w32 builds --without-toolkit-scroll-bars.
e6518fc Fix display of images in R2L screen lines
b0af674 Use u+05f4 in TUTORIAL.he.
2015-01-28 01:03:45 -03:00
Fabián Ezequiel Gallina
4d0108a132 Merge from origin/emacs-24
a3505cb doc/lispref/variables.texi (Creating Buffer-Local): Improve indexing (Bug#19608)
d132c7b erc-backend.el: Give hook-name a default value of nil and add-to-list unconditionally. Fixes debbugs:19363
61cc7bf Fix support of non-ASCII frame titles on MS-Windows  (Bug#19590)
1e5902a * filenotify.el (file-notify--descriptor): Do not cons for remote files.
b1ea160 Handle watching of several files in the same directory for inotify.
2015-01-28 01:03:45 -03:00
Fabián Ezequiel Gallina
b0edd7c69d Merge from origin/emacs-24
b544ab5 Fix return value of vertical-motion at ZV  (Bug#19553)
1f179ea Fix encoding of I/O in net-utils.el for MS-Windows.  (Bug#19458)
70f298f Fix the description of -nl in --help text.  (Bug#19542)
2015-01-28 01:03:44 -03:00