X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/b6bd159922608fa474026837771d63bf7eadcf97..09af58633c2a83b61dee86bcf3794122b101671a:/src/indent.h diff --git a/src/indent.h b/src/indent.h index 07ca4dd87a..4eb3fed6a1 100644 --- a/src/indent.h +++ b/src/indent.h @@ -1,5 +1,5 @@ /* Definitions for interface to indent.c - Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. + Copyright (C) 1985-1986, 2001-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -16,62 +16,38 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see . */ -/* We introduce new member `tab_offset'. We need it because of the - existence of wide-column characters. There is a case that the - line-break occurs at a wide-column character and the number of - colums of the line gets less than width. - - Example (where W_ stands for a wide-column character): - ---------- - abcdefgh\\ - W_ - ---------- - - To handle this case, we should not calculate the tab offset by - tab_offset += width; - - Instead, we must remember tab_offset of the line. - - */ - struct position { - EMACS_INT bufpos; - EMACS_INT bytepos; + ptrdiff_t bufpos; + ptrdiff_t bytepos; EMACS_INT hpos; EMACS_INT vpos; EMACS_INT prevhpos; - EMACS_INT contin; - /* Number of characters we have already handled - from the before and after strings at this position. */ - EMACS_INT ovstring_chars_done; - EMACS_INT tab_offset; + int contin; }; -struct position *compute_motion (EMACS_INT from, EMACS_INT fromvpos, - EMACS_INT fromhpos, int did_motion, - EMACS_INT to, EMACS_INT tovpos, - EMACS_INT tohpos, - EMACS_INT width, EMACS_INT hscroll, - EMACS_INT tab_offset, struct window *); -struct position *vmotion (EMACS_INT from, EMACS_INT vtarget, - struct window *); -EMACS_INT skip_invisible (EMACS_INT pos, EMACS_INT *next_boundary_p, - EMACS_INT to, Lisp_Object window); +struct position *compute_motion (ptrdiff_t from, ptrdiff_t frombyte, + EMACS_INT fromvpos, EMACS_INT fromhpos, + bool did_motion, ptrdiff_t to, + EMACS_INT tovpos, EMACS_INT tohpos, + EMACS_INT width, ptrdiff_t hscroll, + int tab_offset, struct window *); +struct position *vmotion (ptrdiff_t from, ptrdiff_t from_byte, + EMACS_INT vtarget, struct window *); +ptrdiff_t skip_invisible (ptrdiff_t pos, ptrdiff_t *next_boundary_p, + ptrdiff_t to, Lisp_Object window); /* Value of point when current_column was called */ -extern EMACS_INT last_known_column_point; +extern ptrdiff_t last_known_column_point; /* Functions for dealing with the column cache. */ /* Return true if the display table DISPTAB specifies the same widths for characters as WIDTHTAB. We use this to decide when to invalidate the buffer's column_cache. */ -int disptab_matches_widthtab (struct Lisp_Char_Table *disptab, - struct Lisp_Vector *widthtab); +bool disptab_matches_widthtab (struct Lisp_Char_Table *disptab, + struct Lisp_Vector *widthtab); /* Recompute BUF's width table, using the display table DISPTAB. */ void recompute_width_table (struct buffer *buf, struct Lisp_Char_Table *disptab); - -