1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-21 12:03:55 -08:00
Commit graph

36170 commits

Author SHA1 Message Date
Eli Zaretskii
015ea0ffdb Implement locale-sensitive string collation for MS-Windows. (Bug#18051)
src/w32proc.c (get_lcid_callback, get_lcid, w32_compare_strings):
 New functions.
 src/w32.h (w32_compare_strings): Add prototype.
 src/w32.c <g_b_init_compare_string_w>: New global flag.
 (globals_of_w32): Initialize it.
 src/sysdep.c (str_collate) [WINDOWSNT]: Implementation for MS-Windows.
 src/fns.c (Fstring_collate_lessp, Fstring_collate_equalp)
 [WINDOWSNT]: Call str_collate on MS-Windows.

 etc/NEWS: Mention that string-collate-* functions are supported on
 MS-Windows as well.
2014-08-25 18:55:46 +03:00
Dmitry Antipov
8661ebaa6c One more minor cleanup of font subsystem.
* font.h (struct font_driver): Convert text_extents to
return void because returned value is never actually used.
* macfont.c (macfont_text_extents):
* w32font.c (w32font_text_extents):
* xftfont.c (xftfont_text_extents): Adjust to return void
and assume that 'metrics' argument is always non-NULL.
* ftfont.c (ftfont_text_extents):
* xfont.c (xfont_text_extents): Likewise.  Avoid redundant memset.
2014-08-25 11:00:42 +04:00
Paul Eggert
90c5c87753 Minor cleanups of str_collate fix.
* fns.c (str_collate): Move decl from here ...
* lisp.h (str_collate): ... to here.
* sysdep.c (str_collate): Prune away some of the forest of ifdefs.
Remove unnecessary casts.  Use SAFE_NALLOCA to avoid
potential problems with integer overflow.  Don't assume
setlocale succeeds.  Remove unnecessary test before restoring
locale via setlocale, and free the copied setlocale string
when done with it.

Fixes: debbugs:18051
2014-08-24 22:44:57 -07:00
Michael Albinus
07b47905d3 Add string collation.
* configure.ac: Check also for the uselocale function. 

* src/fns.c (Fstring_collate_lessp, Fstring_collate_equalp): New DEFUNs.

* src/sysdep.c (str_collate): New function.  (Bug#18051)
2014-08-24 17:40:07 +02:00
Karol Ostrovsky
0d880e737b Fix bug #18302 with minor issues in the MSYS2/MinGW64 build.
configure.ac: Accept "*-mingw*", not just "*-mingw32", as
 canonical name of a MinGW build, because using MSYS2 'uname'
 produces "MINGW64".

 src/Makefile.in (emacs$(EXEEXT)): Retry deletion of bootstrap-emacs
 if the initial "rm -f" fails.  This is for MinGW builds, where
 MS-Windows will not allow deleting the executable file of a
 running program.
2014-08-23 11:48:30 +03:00
Eli Zaretskii
a558cd1cc4 Remove 16-bit limitations in scroll bar position reporting on MS-Windows.
src/w32term.c (w32_scroll_bar_handle_click)
 (w32_horizontal_scroll_bar_handle_click)
 (x_scroll_bar_report_motion)
 (x_horizontal_scroll_bar_report_motion): For SB_THUMBPOSITION and
 SB_THUMBTRACK, use the 32-bit position information returned by
 GetScrollInfo, not the 16-bit information returned in the Windows
 message sent to us.
2014-08-20 17:41:15 +03:00
Eli Zaretskii
d470a23c95 Fix horizontal scroll bar dragging in R2L paragraphs.
src/w32term.c (w32_horizontal_scroll_bar_handle_click): Fix the
 second coordinate ('y') reported for dragging the horizontal
 scroll bar thumb.
2014-08-19 18:08:02 +03:00
YAMAMOTO Mitsuharu
8de8f9b5cc * xdisp.c (erase_phys_cursor): Fix confusion between window-relative
and text area-relative x-coordinates.
2014-08-19 09:51:33 +09:00
Eli Zaretskii
39125b2248 Avoid overwriting the reversed_p flags in the glyph matrices.
Avoid overwriting the reversed_p flags in the glyph matrices when
 init_iterator or start_display are called.

 src/xdisp.c (init_iterator): Don't initialize the reversed_p flag of
 the glyph row here.
 (tool_bar_height, redisplay_tool_bar, try_window)
 (try_window_reusing_current_matrix, try_window_id)
 (get_overlay_arrow_glyph_row, display_menu_bar): Initialize the
 reversed_p flag of the iterator's glyph row where the glyph row
 is going to be redrawn.
2014-08-17 17:58:04 +03:00
Paul Eggert
2b4c15d829 * xdisp.c (set_horizontal_scroll_bar): Don't use uninitialized local. 2014-08-16 09:10:50 -07:00
Martin Rudalics
266821b087 Preliminary attempt to fix horizontal scroll bar dragging with bidi text.
* w32term.c (w32_horizontal_scroll_bar_handle_click): In y part
of emacs_event return length from si.nPage to si.nMax.
* xdisp.c (set_horizontal_scroll_bar): For right-to-left text
interchange start and end of thumb.
* scroll-bar.el (scroll-bar-horizontal-drag-1): Use cdr of
portion-whole for scrolling right-to-left text.
2014-08-16 17:47:38 +02:00
Glenn Morris
ed30c57cc9 Merge from emacs-24; up to 2014-06-29T18:32:35Z!michael.albinus@gmx.de 2014-08-14 21:34:06 -07:00
Martin Rudalics
bd4de70f13 In set_menu_bar_lines call change_frame_size instead of set_menu_bar_lines_1.
* frame.c (set_menu_bar_lines_1): Remove.
(set_menu_bar_lines): Call change_frame_size instead of
set_menu_bar_lines_1.
2014-08-12 11:47:27 +02:00
Ken Brown
2b0cb8b177 * src/gmalloc.c (_malloc_mutex, _aligned_blocks_mutex) [CYGWIN]: Use ERRORCHECK mutexes. (Bug#18222) 2014-08-11 11:25:08 -04:00
Jan Djärv
fe2f33e8da Fix default width not being 80, but 77.
* nsfns.m (Fx_create_frame): Call adjust_frame_size,
set f->official.
2014-08-11 15:16:31 +02:00
Glenn Morris
c7367d2de3 Merge from emacs-24; up to 2014-06-28T23:35:17Z!rgm@gnu.org 2014-08-10 17:59:34 -07:00
Glenn Morris
f314e84fce Revert 2013-01-31 change that decides coding system before backing up
It causes a more serious problem than the one it solves.
This closes bug#18141, and reopens bug#13522.

* lisp/files.el (basic-save-buffer-2): Revert 2013-01-31 change.

* src/fileio.c: Revert 2013-01-31 change.
(choose_write_coding_system): No longer callable from Lisp.
Move last piece back here from Fwrite_region.
(Fwrite_region, syms_of_fileio): Update for above changes.

* test/automated/data/files-bug18141.el.gz: New file.
* test/automated/files.el (files-test-bug-18141-file):
New variable and test.
2014-08-10 17:38:19 -07:00
Reuben Thomas
643a030396 Fix a couple of recent inadvertent breaks of the MSDOS port.
src/msdos.c: include required menu.h
src/term.c: set correct menu_show_hook on MSDOS.
2014-08-10 17:28:36 +01:00
Martin Rudalics
c29f96fa6b Fix handling of menu bar line on TTY frames (Bug#18136) (Bug#18196).
* dispnew.c (handle_window_change_signal):
* keyboard.c (Fsuspend_emacs): Call change_frame_size with
frame's menu bar lines subtracted from height.
* frame.c (frame_inhibit_resize): Inhibit resizing of TTY
frames.
(adjust_frame_size): Count in menu bar when setting FrameRows.
(make_terminal_frame): When setting up the frame's lines and
text height don't count in the menu bar.
(Fmake_terminal_frame): Call adjust_frame_size with menu bar
lines subtracted from height.
(do_switch_frame): Set tty's FrameRows to number of total lines
of frame.
(Fframe_pixel_height, Fframe_pixel_width): If no window system
is used, return total number of lines and columns.
* menu.c (emulate_dialog_with_menu): Use FRAME_TOTAL_LINES instead
of FRAME_LINES.
* term.c (OUTPUT, tty_set_terminal_modes)
(tty_set_terminal_window, tty_set_scroll_region)
(tty_clear_to_end, tty_write_glyphs, tty_write_glyphs_with_face)
(tty_ins_del_lines, tty_menu_display, tty_menu_activate): Use
FRAME_TOTAL_LINES instead of FRAME_LINES.
(Fresume_tty): Use FRAME_TOTAL_LINES instead of FRAME_LINES.
Call change_frame_size with frame's menu bar lines subtracted
from height.
* w32console.c (w32con_clear_to_end, w32con_clear_frame)
(w32con_ins_del_lines): Use FRAME_TOTAL_LINES instead of
FRAME_LINES.
2014-08-10 10:26:28 +02:00
Reuben Thomas
ea2eccbb49 src/alloc.c: remove a stray brace 2014-08-09 22:50:14 +01:00
Reuben Thomas
7f3bb475bb Add changelog entry missing from previous commit 2014-08-09 17:59:43 +01:00
Reuben Thomas
8f481f6922 src/process.c: fix a comment typo 2014-08-09 17:20:29 +01:00
Reuben Thomas
dcf7e861ab Remove support for DJGPP < 2.02
This also removes some specially-licensed files and lots of accompanying
explanation.
2014-08-09 17:12:33 +01:00
Martin Rudalics
c70e7e185e Second attempt to fix some doc-strings in window.c.
* window.c (Fwindow_new_total, Fwindow_new_normal)
(Fwindow_new_pixel, Fset_window_new_pixel)
(Fset_window_new_total, Fset_window_new_normal): Second attempt
to fix the doc-strings of these functions.  See:
http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-08/msg00287.html
2014-08-09 13:12:45 +02:00
Jan Djärv
5742859f27 * widget.c (DEFAULT_FACE_FONT, EmacsFrameSetValues, setup_frame_gcs)
(resources, setup_frame_cursor_bits): Remove unused variables and
functions, esp. wrt. font.

* widgetprv.h (EmacsFramePart): Remove font.

Fixes: debbugs:18227
2014-08-09 11:06:25 +02:00
Martin Rudalics
8faa5ee738 Fix some doc-strings in window.c (Bug#18112) (Bug#18194).
* window.c (Fwindow_valid_p): Fix doc-string (Bug#18194).
(Fwindow_new_total, Fwindow_normal_size, Fwindow_new_normal)
(Fwindow_new_pixel, Fset_window_new_pixel)
(Fset_window_new_total, Fset_window_new_normal)
(Fwindow_resize_apply): Fix doc-strings (see Bug#18112).
2014-08-08 11:52:59 +02:00
Eli Zaretskii
8db811eff1 Fix bug #18162 with assertion violations due to empty face cache.
src/fontset.c (Finternal_char_font): Recompute basic faces if the
 frame's face cache was cleared.
2014-08-07 18:18:10 +03:00
Paul Eggert
b110679002 * xterm.c (x_delete_terminal): Plug file descriptor leak.
Fixes: debbugs:17691
2014-08-07 07:17:03 -07:00
Reuben Thomas
6c5bbf8a00 Fix a few ``MS-DOG''s overlooked in the previous commit.
* README: ``MSDOG'' becomes ``MS-DOS''.
* lisp/arc-mode.el: Fix a couple of ``MS-DOG''s missed in the previous
commit.
* lisp/file-mode.el: ditto.
* src/editfns.c: Fix a couple of ``MS-DOG''s missed in the previous commit.
* src/xfaces.c: ditto.
2014-08-07 11:15:52 +01:00
Eli Zaretskii
518edaef88 src/coding.c: Fix typos in comments and doc strings. 2014-08-06 20:37:22 +03:00
Martin Rudalics
805318e130 Don't redeem scroll bars that have been turned off.
* w32term.c (w32_redeem_scroll_bar):
* xterm.c (XTredeem_scroll_bar): Revert part of last change by
not redeeming scroll bars that have been turned off.
2014-08-05 10:25:28 +02:00
Dmitry Antipov
1d58ab89ca Fix bug with uninitialized undo list of an indirect buffer (Bug#18180).
* buffer.c (Fmake_indirect_buffer): Initialize undo list with the
base buffer's undo list.
2014-08-05 10:04:38 +04:00
Dmitry Antipov
697c09e934 * keyboard.c (safe_run_hooks): Follow the convenient style to bind
inhibit-quit to t and pass 2 args to safe_run_hook_funcall.  See
<http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00077.html>.
(safe_run_hook_funcall): Adjust accordingly.
2014-08-05 09:43:35 +04:00
Martin Rudalics
4a75c94d14 Fix scroll bar handling for non-toolkit builds.
* frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS): Condition
correctly according to toolkit used.
* frame.c (make_initial_frame, make_terminal_frame)
(x_set_horizontal_scroll_bars, x_set_scroll_bar_height)
(Vdefault_frame_horizontal_scroll_bars): Correctly condition
assignments according to presence of toolkit scrollbars.
* window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Condition
correctly according to toolkit used.
* window.c (set_window_scroll_bars): Set horizontal scroll bar
only if toolkit supports it.
* w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if
present.
* xterm.c (x_scroll_bar_create): Initialize horizontal slot for
non-toolkit builds.
(XTredeem_scroll_bar): Always redeem scroll bar if present.
2014-08-04 18:47:27 +02:00
Dmitry Antipov
f045dbe6a0 * keyboard.c (safe_run_hook_funcall): Avoid consing around
Vinhibit_quit and prefer internal_condition_case_n to pass args.
(safe_run_hooks_error, safe_run_hooks_1): Adjust accordingly.
(safe_run_hooks): Remove comment which is not relevant any more.
2014-08-04 08:03:31 +04:00
Paul Eggert
8d2f19849a Don't let big frames overrun the stack.
* dispnew.c (mirrored_line_dance, mirror_line_dance, scrolling):
Use SAFE_NALLOCA, not alloca.
2014-08-03 16:16:39 -07:00
Glenn Morris
3cc0c06094 Merge from emacs-24; up to 2014-06-27T16:27:08Z!rgm@gnu.org 2014-08-03 16:34:33 -04:00
Paul Eggert
308cc448e5 Don't mishandle year-9999 dates.
* lisp/calendar/parse-time.el (parse-time-rules):
Allow years up to most-positive-fixnum.
* lisp/calendar/time-date.el (date-to-time):
Pass "Specified time is not representable" errors through.
* lisp/url/url-cookie.el (url-cookie-expired-p): Treat out-of-range
expiration dates as if they were far in the future.
* src/editfns.c (decode_time_components): Store an invalid timespec
on overflow, instead of returning false, so that the caller can
distinguish overflow from other errors.
(lisp_time_argument, lisp_seconds_argument): If the time is out
of range, signal a time overflow instead of an invalid time spec.
* src/keyboard.c (decode_timer): Treat time overflow like other
timespec errors.

Fixes: debbugs:18176
2014-08-03 08:38:52 -07:00
Paul Eggert
8f88f7d3c5 Avoid undefined behavior with signed left shift.
Caught by 'gcc -fsanitize=undefined'.
* dispextern.h, scroll.c (scrolling_max_lines_saved, scrolling_1):
* dispnew.c (line_hash_code, scrolling):
* scroll.c (calculate_scrolling, calculate_direct_scrolling):
Use 'unsigned', not 'int', for line hashes.
(scrolling_max_lines_saved): Avoid mystery constants for hash sizes.
2014-08-03 05:34:44 -07:00
Dmitry Antipov
a270fa7cf8 Fix bug with an attempt to select uninitialized frame (Bug#18161).
* xfns.c (Fx_create_frame): Move call to change_frame_size to
a section where Lisp evaluation is disabled.  This way a pointer
to uninitialized frame is not accessible from Lisp, which becomes
critical if following call to x_figure_window_size throws an error.
2014-08-03 11:19:43 +04:00
Paul Eggert
a98a91ac46 Fix bug with clang + directory_files_internal + GC.
* src/dired.c (directory_files_internal): Use a volatile variable
to prevent the compiler from optimizing away all copies of a local.
I wonder how many other GC-related bugs like this lurk elsewhere?

Fixes: debbugs:16986
2014-08-02 15:58:09 -07:00
Paul Eggert
7f0ff25b7a Avoid 100% CPU utilization on ssh session exit.
* src/xterm.h (struct x_display_info): New member 'connection'.
* src/xterm.c (x_term_init, x_delete_terminal): Set and use it,
so that x_delete_terminal has a file descriptor to pass to
delete_keyboard_wait_descriptor.

Fixes: debbugs:17691
2014-08-02 14:31:18 -07:00
Dmitry Antipov
dbc471b133 Fix spacing in ChangeLog 2014-08-02 21:12:11 +04:00
Paul Eggert
cb8b23675e Make compare-strings more compatible with old behavior.
* fns.c (Fcompare_strings): Silently bring too-large ends into range.

Fixes: debbugs:17903
2014-08-02 08:56:18 -07:00
Jan Djärv
f5f3247c65 * gtkutil.c (create_dialog): Force min spacing 10 between buttons.
Don't add label between left and right buttons.

Fixes: debbugs:18129
2014-08-02 15:32:40 +02:00
Paul Eggert
3ee7618cf1 Make functions static that no longer need to be extern.
* frame.c, frame.h (set_menu_bar_lines):
* keyboard.c (Qleftmost, Qrightmost):
* xfns.c, frame.h, menu.h (x_set_menu_bar_lines, x_set_tool_bar_lines)
(x_set_internal_border_width):
Now static.
2014-08-01 08:12:01 -07:00
Eli Zaretskii
8afcf7e9d7 Merge from emacs-24; up to 2014-06-26T21:51:25Z!rgm@gnu.org. 2014-08-01 16:10:07 +03:00
Eli Zaretskii
a1767506c0 Fix display of R2L lines when the last character fits only partially.
See http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00476.html
 for the details.
 src/xdisp.c (extend_face_to_end_of_line): If the last glyph of an
 R2L row is visible only partially, give the row a negative x
 offset.
 (display_line): Fix the calculation of the glyph whose pixel width
 is used to decide whether the last produced glyph fits on the
 line.  When the last glyph fits only partially, give the row a
 negative x offset.
2014-08-01 12:39:04 +03:00
Dmitry Antipov
11804a04ad * atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h.
(timerfd_callback): Ignore weird events with no data.  Add tight
assertions and comments.
(init_atimer) [HAVE_TIMERFD]: Add environment variable to optionally
disabletimerfd-based timer.  Use TFD_NONBLOCK for timer descriptor.
2014-08-01 10:52:02 +04:00
Paul Eggert
2965dfdda3 Minor style fix to previous patch. 2014-07-31 17:04:52 -07:00