Eli Zaretskii [Wed, 19 May 2010 20:24:21 +0000 (23:24 +0300)]
Completed initial debugging and testing of reimplemented cursor motion.
.gdbinit (prowlims): Display row->minpos and row->maxpos.
Display truncated_on_left_p and truncated_on_right_p flags.
Formatting fixes.
(pmtxrows): Display the ordinal number of each row. Don't display
rows beyond the last one.
xdisp.c (RECORD_MAX_MIN_POS): New macro.
(display_line): Use it to record the minimum and maximum buffer
positions for glyphs in the row being assembled. If word wrap is
in effect, restore minimum and maximum positions seen up to the
wrap point, when iterator returns to it.
(find_row_edges): Fix logic; eol_pos should be tested before the
rest.
(try_window_reusing_current_matrix): Give up if in bidi-reordered
row and cursor not already at point. Restore original pre-bidi
code for unidirectional buffers.
bidi.c (bidi_cache_shrink, bidi_cache_iterator_state): Fix
reallocation of the cache. (Bug#6210)
(bidi_cache_iterator_state): Don't zero out new_paragraph (it is
not copied by bidi_copy_it).
Eli Zaretskii [Tue, 18 May 2010 15:22:15 +0000 (18:22 +0300)]
Initial reimplementation of calculating line edge positions in bidi lines.
dispextern.h (struct glyph_row): New members minpos and maxpos.
(MATRIX_ROW_START_CHARPOS, MATRIX_ROW_START_BYTEPOS)
(MATRIX_ROW_END_CHARPOS, MATRIX_ROW_END_BYTEPOS): Reference minpos
and maxpos members instead of start.pos and end.pos, respectively.
xdisp.c (display_line): Compare IT_CHARPOS with the position in
row->start.pos, rather than with MATRIX_ROW_START_CHARPOS.
(cursor_row_p): Use row->end.pos rather than MATRIX_ROW_END_CHARPOS.
(try_window_reusing_current_matrix, try_window_id): Use
ROW->minpos rather than ROW->start.pos.
(init_from_display_pos, init_iterator): Use EMACS_INT for
character and byte positions.
(find_row_edges): Renamed from find_row_end. Accept additional
arguments for minimum and maximum buffer positions seen by
display_line for this row. Don't use iterator to find the
position following the maximum one; instead, increment the
position found by display_line directly.
(display_line): Record minimum and maximum buffer positions for
glyphs in this row. Record the position of the newline that
terminates the line.
dispnew.c (increment_row_positions, check_matrix_invariants):
Increment and check row->start.pos and row->end.pos, in addition
to MATRIX_ROW_START_CHARPOS and MATRIX_ROW_END_CHARPOS.
Glenn Morris [Tue, 18 May 2010 02:44:07 +0000 (19:44 -0700)]
Set rallocobj with configure, not cpp.
* configure.in (REL_ALLOC): Unset on gnu, gnu-linux if DOUG_LEA_MALLOC.
(RALLOC_OBJ): New output variable.
* config.bat (RALLOC_OBJ): Edit to empty if sys_malloc.
* src/Makefile.in (RALLOC_OBJ): New, set by configure.
(rallocobj): Replace with the previous variable.
(otherobj): Use $RALLOC_OBJ.
Glenn Morris [Tue, 18 May 2010 02:30:13 +0000 (19:30 -0700)]
Define some malloc objects with configure, not cpp.
* configure.in (GMALLOC_OBJ, VMLIMIT_OBJ): New output variables.
* config.bat (GMALLOC_OBJ, VMLIMIT_OBJ): Edit to empty if sys_malloc.
* src/Makefile.in (GMALLOC_OBJ, VMLIMIT_OBJ): New, set by configure.
(gmallocobj, vmlimitobj): Replace with previous two variables.
(otherobj): Use $GMALLOC_OBJ, $VMLIMIT_OBJ.
* msdos/sed1v2.inp (GMALLOC_OBJ): Edit to gmalloc.o.
(VMLIMIT_OBJ): Edit to vm-limit.o.
Stefan Monnier [Mon, 17 May 2010 21:02:06 +0000 (17:02 -0400)]
* Makefile.in (${lispsource}loaddefs.el): Update loaddefs.el after a pull.
* Makefile.in (src): Provide the name of the VCS file that witnesses a pull.
($(srcdir)/src/config.in): Handle accidental removal of src/config.in.
Stefan Monnier [Mon, 17 May 2010 19:27:26 +0000 (15:27 -0400)]
Provide a simple generic indentation engine and use it for Prolog.
* emacs-lisp/smie.el: New file.
* progmodes/prolog.el (prolog-smie-op-levels)
(prolog-smie-indent-rules): New var.
(prolog-mode-variables): Use them to configure SMIE.
(prolog-indent-line, prolog-indent-level): Remove.
Glenn Morris [Sun, 16 May 2010 17:58:27 +0000 (10:58 -0700)]
Simplify temacs build rule.
* configure.in (NS_IMPL_GNUSTEP_TEMACS_LDFLAGS): New output variable.
(START_FILES): Set to empty if NS_IMPL_GNUSTEP.
(GNUSTEP_SYSTEM_HEADERS, GNUSTEP_SYSTEM_LIBRARIES): Do not output,
nothing uses.
* configure: Regenerate.
* src/Makefile.in (GNUSTEP_SYSTEM_LIBRARIES): Remove, unused.
(NS_IMPL_GNUSTEP_TEMACS_LDFLAGS): New, set by configure.
(LD) [NS_IMPL_GNUSTEP]: Set to $(CC) -rdynamic.
(temacs${EXEEXT}): Remove $LOCALCPP, never defined or referenced.
Make most of the NS_IMPL_GNUSTEP case the same as the default case.
* msdos/sed1v2.inp (GNUSTEP_SYSTEM_LIBRARIES): Remove.
(NS_IMPL_GNUSTEP_TEMACS_LDFLAGS): Edit to empty.
Ken Raeburn [Sat, 15 May 2010 21:11:37 +0000 (17:11 -0400)]
Handle --version reasonably in CANNOT_DUMP configuration.
* src/emacs.c (emacs_version, emacs_copyright): New string
variables.
(Vemacs_version, Vemacs_copyright): New Lisp_Object variables.
(syms_of_emacs): Defvar them, and initialize them from the C
string variables.
(main): If initialization hasn't been done, print initial version
info from the C strings, instead of starting an interactive session.
* lisp/version.el (emacs-copyright, emacs-version): Don't define
here.
* configure.in: Look for version string in its new place.
Eli Zaretskii [Sat, 15 May 2010 13:23:48 +0000 (16:23 +0300)]
Implement bidi-sensitive movement with arrow keys.
src/bidi.c (bidi_paragraph_init): Don't leave alone garbage values
of bidi_it->paragraph_dir. Call bidi_initialize if needed.
src/xdisp.c (Fcurrent_bidi_paragraph_direction): New function.
(syms_of_xdisp): Defsubr it.
src/cmds.c (Fforward_char, Fbackward_char): Doc fix.
src/subr.el (right-arrow-command, left-arrow-command): New functions.
src/bindings.el (global-map): Bind them to right and left arrow keys.
etc/NEWS: Mention current-bidi-paragraph-direction
Stefan Monnier [Fri, 14 May 2010 21:21:12 +0000 (17:21 -0400)]
* progmodes/sh-script.el (sh-mode-default-syntax-table): Remove.
(sh-mode-syntax-table): Give it a default value instead.
(sh-header-marker): Make buffer-local.
(sh-mode): Move make-local-variable to the corresponding setq.
(sh-add-completer): Avoid gratuitously let-binding a buffer-local var.
Use complete-with-action.
Stefan Monnier [Fri, 14 May 2010 16:41:01 +0000 (12:41 -0400)]
* simple.el (prog-mode): New (abstract) major mode.
* emacs-lisp/lisp-mode.el (emacs-lisp-mode, lisp-mode): Use it.
* progmodes/sh-script.el (sh-mode): Remove redundant var assignment.
Glenn Morris [Fri, 14 May 2010 03:13:39 +0000 (20:13 -0700)]
Replace some msdos cpp.
* src/Makefile.in (MSDOS_OBJ): Default to empty, let msdos scripts set it.
(MSDOS_X_OBJ): New variable.
(MSDOS_SUPPORT_REAL): New constant.
(MSDOS_SUPPORT): Set as a variable, not with cpp.
(obj): Use MSDOS_X_OBJ.
(lisp): Use MSDOS_SUPPORT as a variable.
* msdos/sed1v2.inp (MSDOS_OBJ): Edit to dosfns.o msdos.o.
(MSDOS_SUPPORT): Edit to $(MSDOS_SUPPORT_REAL).
* msdos/sed1x.inp (MSDOS_X_OBJ): Edit to w16select.o termcap.o.
Glenn Morris [Fri, 14 May 2010 03:05:00 +0000 (20:05 -0700)]
Define MOUSE_, TOOLTIP_, WINDOW_SUPPORT with configure.
* configure.in (GPM_MOUSE_SUPPORT): Remove.
(MOUSE_SUPPORT, TOOLTIP_SUPPORT, WINDOW_SUPPORT): New output variables.
(HAVE_WINDOW_SYSTEM, HAVE_MOUSE): Move out of AC_BOTTOM.
* src/Makefile.in (REAL_MOUSE_SUPPORT): New constant.
(GPM_MOUSE_SUPPORT): Now it's a constant.
(MOUSE_SUPPORT, TOOLTIP_SUPPORT, WINDOW_SUPPORT): Set with configure, not cpp.
* msdos/sed2x.inp (HAVE_WINDOW_SYSTEM): Define.
* msdos/sed1x.inp (TOOLTIP_SUPPORT): Edit to ${lispsource}tooltip.elc.
(WINDOW_SUPPORT): Edit to $(BASE_WINDOW_SUPPORT) $(X_WINDOW_SUPPORT).
* msdos/sed1v2.inp (MOUSE_SUPPORT): Edit to $(REAL_MOUSE_SUPPORT).
(TOOLTIP_SUPPORT, WINDOW_SUPPORT): Edit to empty.
Michael Albinus [Thu, 13 May 2010 20:45:58 +0000 (22:45 +0200)]
* net/tramp.el (with-progress-reporter): Create reporter object
only when the message would be displayed. Handled nested calls.
(tramp-handle-load, tramp-handle-file-local-copy)
(tramp-handle-insert-file-contents, tramp-handle-write-region)
(tramp-maybe-send-script, tramp-find-shell): Use
`with-progress-reporter'.
(tramp-handle-dired-compress-file, tramp-maybe-open-connection):
Fix message text.
* net/tramp-smb.el (tramp-smb-handle-copy-file)
(tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
(tramp-smb-handle-write-region, tramp-smb-maybe-open-connection):
Use `with-progress-reporter'.