From: Eli Zaretskii Date: Sat, 1 May 2010 18:11:20 +0000 (+0300) Subject: Fix display of R2L lines and cursor motion in bidi buffers. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~438^2~319 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=af7c7572ce8d87f51817d0f518d1b0aced074a41;p=emacs.git Fix display of R2L lines and cursor motion in bidi buffers. xdisp.c (find_row_end): New function, refactored from display_line. (display_line): Use it. (extend_face_to_end_of_line): In almost-filled rows, extend only if the row is R2L and not continued. (display_line): Fix prepending of truncation glyphs to R2L rows. Preserve overlay and string info in row->end. (insert_left_trunc_glyphs): Support addition of left truncation glyphs to R2L rows. (set_cursor_from_row): Don't place cursor on the vertical border glyph between adjacent windows. Fix a crash when a display string is continued to the next line. Don't return zero if cursor was found by `cursor' property of a display string. (try_cursor_movement): Don't assume that row->end == (row+1)->start, test for that explicitly. --- af7c7572ce8d87f51817d0f518d1b0aced074a41 diff --cc src/ChangeLog index e5c6a0b23b7,4de1618f4d6..0b4baf64cf4 --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -1,158 -1,27 +1,178 @@@ + 2010-05-01 Eli Zaretskii + - * xdisp.c (find_row_end): New function, refactored from display_line. ++ Miscellaneous fixes of bidi display. ++ ++ * xdisp.c (find_row_end): New function, refactored from ++ display_line. + (display_line): Use it. + (extend_face_to_end_of_line): In almost-filled rows, extend only + if the row is R2L and not continued. + (display_line): Fix prepending of truncation glyphs to R2L rows. ++ Preserve overlay and string info in row->end. + (insert_left_trunc_glyphs): Support addition of left truncation + glyphs to R2L rows. + (set_cursor_from_row): Don't place cursor on the vertical border - glyph between adjacent windows. ++ glyph between adjacent windows. Fix a crash when a display string ++ is continued to the next line. Don't return zero if cursor was ++ found by `cursor' property of a display string. + (try_cursor_movement): Don't assume that row->end == (row+1)->start, + test for that explicitly. + -2010-04-27 Eli Zaretskii +2010-05-01 Glenn Morris - * xdisp.c (set_cursor_from_row): Fix a crash when a display string - is continued to the next line. + * Makefile.in (gmallocobj, rallocobj, vmlimitobj): Initialize to null, + for clarity. + (OTHER_OBJ): Remove. + (PRE_ALLOC_OBJ, POST_ALLOC_OBJ): New, set by configure. + (otherobj): Use PRE_ALLOC_OBJ, POST_ALLOC_OBJ rather than OTHER_OBJ. -2010-04-25 Eli Zaretskii +2010-05-01 Karel Klíč - * xdisp.c (set_cursor_from_row): Don't return zero if cursor was - found by `cursor' property of a display string. - (display_line): Preserve overlay and string info in row->end. + * fileio.c (Ffile_selinux_context): Context functions may return null. + +2010-04-30 Dan Nicolaescu + + * s/gnu.h (POSIX_SIGNALS): + (START_FILES): New definitions. + +2010-04-30 Glenn Morris + + * Makefile.in (vmlimitobj) [!SYSTEM_MALLOC]: New variable. (Bug#6065) + (OTHER_OBJ): Define as a separate variable, for clarity. + +2010-04-30 Jan Djärv + + * xsettings.c: include limits.h and update file comment. + +2010-04-30 Glenn Morris + + * Makefile.in (OLDXMENU, LIBXMENU) [HAVE_MENUS]: + Set with configure, not cpp. + (LIBW): Remove, replace with $TOOLKIT_LIBW. + + * Makefile.in (mallocobj): Remove. + (otherobj): Simplify using @OTHER_OBJ@. + + * Makefile.in (dispnew.o, frame.o, fringe.o, font.o, fontset.o) + (keyboard.o, window.o, xdisp.o, xfaces.o, menu.o): + Don't bother making nsgui.h dependency platform-specific. + + * Makefile.in (nsfns.o): Remove duplicate nsgui.h dependency. + +2010-04-29 Stefan Monnier + + * process.c (read_process_output, exec_sentinel): Don't burp if the + sentinel/filter kills the current buffer (bug#6060). + + Fix wrong-docstring problem introduced with hash-consing. (Bug#6008) + * eval.c (Fautoload): Set doc to a unique number rather than to 0. + Remove unused var `args'. + * lisp.h (XSETCARFASTINT, XSETCDRFASTINT): Remove. + (LOADHIST_ATTACH): Wrap with do...while to avoid surprises for callers. + * doc.c (store_function_docstring): Use XSETCAR. + +2010-04-28 Glenn Morris + + * Makefile.in (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT): New variables. + (WINDOW_SUPPORT) [HAVE_WINDOW_SYSTEM]: Use them. + + * Makefile.in (CYGWIN_OBJ): Set with configure, not cpp. + + * Makefile.in (GPM_MOUSE_SUPPORT): New, set by configure. + (MOUSE_SUPPORT) [!HAVE_MOUSE]: Use $GPM_MOUSE_SUPPORT. + + * Makefile.in (FONT_OBJ): New, set by configure. + (FONT_DRIVERS): Use $FONT_OBJ. + + * Makefile.in (LIBXMU): Set with configure, not cpp. + * s/aix4-2.h (LIBXMU): + * s/hpux10-20.h (LIBXMU): + Remove definition, now set in configure. + + * Makefile.in (NS_OBJ, NS_SUPPORT): Set with configure, not cpp. + + * m/amdx86-64.h [i386]: Move this test to configure.in. + +2010-04-27 Glenn Morris + + * Makefile.in (LIBXTR6): Set with configure, not cpp. + * s/unixware.h (NEED_LIBW): Remove definition. + + * Makefile.in (LUCID_LIBW, MOTIF_LIBW): Remove, replacing by... + (TOOLKIT_LIBW): New, set by configure. + (@X_TOOLKIT_TYPE@): No longer define it. + + * Makefile.in (LIBXP): Remove, since included in MOTIF_LIBW. + (MOTIF_LIBW): Set with configure, not cpp. + * s/aix4-2.h (LIB_MOTIF): + * s/gnu-linux.h (LIB_MOTIF): + * s/unixware.h (LIB_MOTIF): Move to configure.in. + +2010-04-27 Dan Nicolaescu + + Reduce CPP usage. + * Makefile.in (LIB_X11_LIB): Remove, inline in the only user. + (obj): Use autoconf for unexec instead of cpp. + (C_SWITCH_SYSTEM, C_SWITCH_MACHINE, C_SWITCH_X_SITE): Remove + definitions and undefs. Inline definitions in the only user. + (ALL_CFLAGS): Substitute C_SWITCH_X_SYSTEM using autoconf. + +2010-04-27 Glenn Morris + + * m/amdx86-64.h (START_FILES, LIB_STANDARD): Change the logic around, + since the defaults (set by the system file) are fine in most cases. + [GNU_LINUX, __OpenBSD__, __NetBSD__, __APPLE__]: Remove sections. + * m/ibms390x.h (START_FILES, LIB_STANDARD): + * m/macppc.h (START_FILES, LIB_STANDARD) [GNU_LINUX]: + * m/sparc.h (START_FILES, LIB_STANDARD) [__linux__]: + Remove definitions, since they are set correctly in s/gnu-linux.h. + * s/freebsd.h (START_FILES, LIB_STANDARD): + * s/gnu-linux.h (START_FILES, LIB_STANDARD): + * s/hpux10-20.h (START_FILES): + * s/netbsd.h (START_FILES, LIB_STANDARD, START_FILES_1, END_FILES_1): + Use $CRT_DIR in place of fixed /usr/lib, /lib directories. + + * Makefile.in (LIBXP, LUCID_LIBW, WIDGET_OBJ): Set via configure. + (MOTIF_LIBW): Use $LIBXP. + (otherobj): Use $WIDGET_OBJ. + +2010-04-26 Dan Nicolaescu + + * Makefile.in (LIBS_MACHINE): Remove, unused. + + Use autoconf instead of cpp for LIB_MATH. + * s/darwin.h (LIB_MATH): Do not define here, move to configure. + * s/cygwin.h (LIB_MATH): Likewise. + * Makefile.in (LIB_MATH): Do not define with cpp. + (LIBES): Use autoconf for LIB_MATH. + +2010-04-26 Kenichi Handa + + * composite.c (Ffind_composition_internal): Fix the return value + for an automatic composition. + +2010-04-25 Dan Nicolaescu + + Remove all NO_ARG_ARRAY uses. + * fns.c (concat2, concat3, nconc2): + * eval.c (apply1, call1, call2, call3, call4, call5, call6) + (call7): Remove NO_ARG_ARRAY usage, assume it's always true. + * m/xtensa.h (NO_ARG_ARRAY): + * m/template.h (NO_ARG_ARRAY): + * m/sparc.h (NO_ARG_ARRAY): + * m/sh3.h (NO_ARG_ARRAY): + * m/mips.h (NO_ARG_ARRAY): + * m/macppc.h (NO_ARG_ARRAY): + * m/iris4d.h (NO_ARG_ARRAY): + * m/intel386.h (NO_ARG_ARRAY): + * m/ibms390x.h (NO_ARG_ARRAY): + * m/ibms390.h (NO_ARG_ARRAY): + * m/ibmrs6000.h (NO_ARG_ARRAY): + * m/ia64.h (NO_ARG_ARRAY): + * m/hp800.h (NO_ARG_ARRAY): + * m/arm.h (NO_ARG_ARRAY): + * m/amdx86-64.h (NO_ARG_ARRAY): + * m/alpha.h (NO_ARG_ARRAY): Remove definition. 2010-04-25 Eli Zaretskii