Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 81 lines (63 sloc) 2.85 kb
254f294 entered into RCS
Jim Blandy authored
1 /* Definitions for interface to indent.c
6da7885 @rgmorris Update copyright for years from Emacs 21 to present (mainly adding
rgmorris authored
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
72fadaa @rgmorris Add 2012 to FSF copyright years for Emacs files (do not merge to trunk)
rgmorris authored
3 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
254f294 entered into RCS
Jim Blandy authored
4
5 This file is part of GNU Emacs.
6
d7db995 @rgmorris Switch to recommended form of GPLv3 permissions notice.
rgmorris authored
7 GNU Emacs is free software: you can redistribute it and/or modify
254f294 entered into RCS
Jim Blandy authored
8 it under the terms of the GNU General Public License as published by
d7db995 @rgmorris Switch to recommended form of GPLv3 permissions notice.
rgmorris authored
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
254f294 entered into RCS
Jim Blandy authored
11
12 GNU Emacs is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
d7db995 @rgmorris Switch to recommended form of GPLv3 permissions notice.
rgmorris authored
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
254f294 entered into RCS
Jim Blandy authored
19
fe6a979 (struct position): New member tab_offset to accumulate tab offset.
Karl Heuer authored
20 /* We introduce new member `tab_offset'. We need it because of the
21 existence of wide-column characters. There is a case that the
22 line-break occurs at a wide-column character and the number of
23 colums of the line gets less than width.
24
25 Example (where W_ stands for a wide-column character):
26 ----------
27 abcdefgh\\
ef393e7 @lektu Trailing whitespace deleted.
lektu authored
28 W_
fe6a979 (struct position): New member tab_offset to accumulate tab offset.
Karl Heuer authored
29 ----------
30
ef393e7 @lektu Trailing whitespace deleted.
lektu authored
31 To handle this case, we should not calculate the tab offset by
fe6a979 (struct position): New member tab_offset to accumulate tab offset.
Karl Heuer authored
32 tab_offset += width;
33
ef393e7 @lektu Trailing whitespace deleted.
lektu authored
34 Instead, we must remember tab_offset of the line.
fe6a979 (struct position): New member tab_offset to accumulate tab offset.
Karl Heuer authored
35
36 */
254f294 entered into RCS
Jim Blandy authored
37
38 struct position
39 {
4b173a4 @monnier * indent.h:
monnier authored
40 EMACS_INT bufpos;
41 EMACS_INT bytepos;
42 EMACS_INT hpos;
43 EMACS_INT vpos;
44 EMACS_INT prevhpos;
45 EMACS_INT contin;
2a01ad3 @Corg-kun (struct position): New field ovstring_chars_done.
Corg-kun authored
46 /* Number of characters we have already handled
47 from the before and after strings at this position. */
4b173a4 @monnier * indent.h:
monnier authored
48 EMACS_INT ovstring_chars_done;
49 EMACS_INT tab_offset;
254f294 entered into RCS
Jim Blandy authored
50 };
51
4b173a4 @monnier * indent.h:
monnier authored
52 struct position *compute_motion P_ ((EMACS_INT from, EMACS_INT fromvpos,
53 EMACS_INT fromhpos, int did_motion,
54 EMACS_INT to, EMACS_INT tovpos,
55 EMACS_INT tohpos,
56 EMACS_INT width, EMACS_INT hscroll,
57 EMACS_INT tab_offset, struct window *));
58 struct position *vmotion P_ ((EMACS_INT from, EMACS_INT vtarget,
59 struct window *));
60 EMACS_INT skip_invisible P_ ((EMACS_INT pos, EMACS_INT *next_boundary_p,
61 EMACS_INT to, Lisp_Object window));
254f294 entered into RCS
Jim Blandy authored
62
63 /* Value of point when current_column was called */
4b173a4 @monnier * indent.h:
monnier authored
64 extern EMACS_INT last_known_column_point;
86dc6fb * indent.h (disptab_matches_widthtab, recompute_width_table): New
Jim Blandy authored
65
66 /* Functions for dealing with the column cache. */
67
ac61105 @rgmorris Replace `iff' in comments.
rgmorris authored
68 /* Return true if the display table DISPTAB specifies the same widths
86dc6fb * indent.h (disptab_matches_widthtab, recompute_width_table): New
Jim Blandy authored
69 for characters as WIDTHTAB. We use this to decide when to
70 invalidate the buffer's column_cache. */
89bb67b (toplevel): Add function prototypes.
Gerd Moellmann authored
71 int disptab_matches_widthtab P_ ((struct Lisp_Char_Table *disptab,
72 struct Lisp_Vector *widthtab));
86dc6fb * indent.h (disptab_matches_widthtab, recompute_width_table): New
Jim Blandy authored
73
74 /* Recompute BUF's width table, using the display table DISPTAB. */
89bb67b (toplevel): Add function prototypes.
Gerd Moellmann authored
75 void recompute_width_table P_ ((struct buffer *buf,
76 struct Lisp_Char_Table *disptab));
77
78
f51da7d @snogglethorpe Add arch taglines
snogglethorpe authored
79 /* arch-tag: f9feb373-5bff-4f4f-9198-94805d00cfd7
80 (do not change this comment) */
Something went wrong with that request. Please try again.