]> code.delx.au - gnu-emacs/blobdiff - src/indent.h
Don't install keyboard hook when debugged on MS-Windows
[gnu-emacs] / src / indent.h
index c5114b812c8598a94ec963b64f72be6a8b10aaee..f2a4c90ed44b6c88ec5b14de0295540c21aefc95 100644 (file)
@@ -1,12 +1,12 @@
 /* Definitions for interface to indent.c
-   Copyright (C) 1985-1986, 2001-201 Free Software Foundation, Inc.
+   Copyright (C) 1985-1986, 2001-2016 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,60 +16,45 @@ 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 <http://www.gnu.org/licenses/>.  */
 
-/* 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
-   columns of the line gets less than width.
+#ifndef EMACS_INDENT_H
+#define EMACS_INDENT_H
 
-   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.
-
- */
+#include "lisp.h"
 
 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);
+
+#endif /* EMACS_INDENT_H */