annotate update-subdirs @ 108750:3339da3cfeb3

Redesign bidi-aware edge positions of glyph rows, fix bug #6036. 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. Fix logic; eol_pos should be tested before the rest. Handle the case of characters delivered from display vector (bug#6036). Fix tests related to it->method. Handle the truncated_on_right_p rows. (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. Record the position of the newline that terminates the line. If word wrap is in effect, restore minimum and maximum positions seen up to the wrap point, when iterator returns to it. (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. 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. .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. bidi.c (bidi_cache_iterator_state): Don't zero out new_paragraph: it is not copied by bidi_copy_it.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 22 May 2010 22:32:21 +0300
parents 1d1d5d9bd884
children 376148b31b5e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25856
Dave Love <fx@gnu.org>
parents:
diff changeset
1 #!/bin/sh
Dave Love <fx@gnu.org>
parents:
diff changeset
2 # Write into $1/subdirs.el a list of subdirs of directory $1.
36219
f440b9766968 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 25931
diff changeset
3
74370
7c327a7ce0e2 Add missing Copyright years.
Glenn Morris <rgm@gnu.org>
parents: 70121
diff changeset
4 # Copyright (C) 1994, 1995, 1997, 1999, 2001, 2002, 2003, 2004, 2005,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100959
diff changeset
5 # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
94719
1a762a842f80 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
6
36219
f440b9766968 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 25931
diff changeset
7 # This file is part of GNU Emacs.
94719
1a762a842f80 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
8
1a762a842f80 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
9 # GNU Emacs is free software: you can redistribute it and/or modify
36219
f440b9766968 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 25931
diff changeset
10 # it under the terms of the GNU General Public License as published by
94719
1a762a842f80 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
11 # the Free Software Foundation, either version 3 of the License, or
1a762a842f80 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
12 # (at your option) any later version.
1a762a842f80 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
13
36219
f440b9766968 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 25931
diff changeset
14 # GNU Emacs is distributed in the hope that it will be useful,
f440b9766968 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 25931
diff changeset
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
f440b9766968 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 25931
diff changeset
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f440b9766968 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 25931
diff changeset
17 # GNU General Public License for more details.
94719
1a762a842f80 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
18
36219
f440b9766968 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 25931
diff changeset
19 # You should have received a copy of the GNU General Public License
94719
1a762a842f80 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
20 # along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
1a762a842f80 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
21
36219
f440b9766968 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 25931
diff changeset
22
25856
Dave Love <fx@gnu.org>
parents:
diff changeset
23 cd $1
Dave Love <fx@gnu.org>
parents:
diff changeset
24 for file in *; do
Dave Love <fx@gnu.org>
parents:
diff changeset
25 case $file in
25931
3ede6c50d7f5 also ignore CVS subdirs.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25856
diff changeset
26 *.elc | *.el | term | RCS | CVS | Old | . | .. | =* | *~ | *.orig | *.rej)
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47727
diff changeset
27 ;;
25856
Dave Love <fx@gnu.org>
parents:
diff changeset
28 *)
Dave Love <fx@gnu.org>
parents:
diff changeset
29 if [ -d $file ]; then
99260
80b866cd08a3 Put obsolete directory last.
Chong Yidong <cyd@stupidchicken.com>
parents: 95369
diff changeset
30 if [ "$file" = "obsolete" ]; then
80b866cd08a3 Put obsolete directory last.
Chong Yidong <cyd@stupidchicken.com>
parents: 95369
diff changeset
31 subdirs="$subdirs \"$file\""
80b866cd08a3 Put obsolete directory last.
Chong Yidong <cyd@stupidchicken.com>
parents: 95369
diff changeset
32 else
80b866cd08a3 Put obsolete directory last.
Chong Yidong <cyd@stupidchicken.com>
parents: 95369
diff changeset
33 subdirs="\"$file\" $subdirs"
80b866cd08a3 Put obsolete directory last.
Chong Yidong <cyd@stupidchicken.com>
parents: 95369
diff changeset
34 fi
25856
Dave Love <fx@gnu.org>
parents:
diff changeset
35 fi
99260
80b866cd08a3 Put obsolete directory last.
Chong Yidong <cyd@stupidchicken.com>
parents: 95369
diff changeset
36 ;;
25856
Dave Love <fx@gnu.org>
parents:
diff changeset
37 esac
Dave Love <fx@gnu.org>
parents:
diff changeset
38 done
Dave Love <fx@gnu.org>
parents:
diff changeset
39
Dave Love <fx@gnu.org>
parents:
diff changeset
40 if [ "x$subdirs" = x ]; then
Dave Love <fx@gnu.org>
parents:
diff changeset
41 rm -f subdirs.el
Dave Love <fx@gnu.org>
parents:
diff changeset
42 else
86200
aa0de1ea4215 Atomically update subdirs.el.
Andreas Schwab <schwab@suse.de>
parents: 78277
diff changeset
43 rm -f subdirs.el~
aa0de1ea4215 Atomically update subdirs.el.
Andreas Schwab <schwab@suse.de>
parents: 78277
diff changeset
44 echo ";; -*- no-byte-compile: t -*-
aa0de1ea4215 Atomically update subdirs.el.
Andreas Schwab <schwab@suse.de>
parents: 78277
diff changeset
45 ;; In load-path, after this directory should come
aa0de1ea4215 Atomically update subdirs.el.
Andreas Schwab <schwab@suse.de>
parents: 78277
diff changeset
46 ;; certain of its subdirectories. Here we specify them.
aa0de1ea4215 Atomically update subdirs.el.
Andreas Schwab <schwab@suse.de>
parents: 78277
diff changeset
47 (normal-top-level-add-to-load-path '($subdirs))
54489
fbc008c6f0cc Add local variables to prevent byte-compiling.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 52401
diff changeset
48 ;; Local" "Variables:
fbc008c6f0cc Add local variables to prevent byte-compiling.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 52401
diff changeset
49 ;; version-control: never
fbc008c6f0cc Add local variables to prevent byte-compiling.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 52401
diff changeset
50 ;; no-byte-compile: t
86200
aa0de1ea4215 Atomically update subdirs.el.
Andreas Schwab <schwab@suse.de>
parents: 78277
diff changeset
51 ;; End:" > subdirs.el~
95369
d147ddeb05f9 Don't touch subdirs.el if it is unchanged.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94719
diff changeset
52 if cmp "subdirs.el" "subdirs.el~" >/dev/null 2>&1; then
d147ddeb05f9 Don't touch subdirs.el if it is unchanged.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94719
diff changeset
53 :; # echo "subdirs.el unchanged";
d147ddeb05f9 Don't touch subdirs.el if it is unchanged.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94719
diff changeset
54 else
86200
aa0de1ea4215 Atomically update subdirs.el.
Andreas Schwab <schwab@suse.de>
parents: 78277
diff changeset
55 mv subdirs.el~ subdirs.el
95369
d147ddeb05f9 Don't touch subdirs.el if it is unchanged.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94719
diff changeset
56 fi
25856
Dave Love <fx@gnu.org>
parents:
diff changeset
57 fi
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
58
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
59 # arch-tag: 56ebcf1b-5c30-4934-b0b4-72d374064704