home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / e20313sr.zip / emacs / 20.3.1 / src / indent.h < prev    next >
C/C++ Source or Header  |  1999-07-31  |  2KB  |  70 lines

  1. /* Definitions for interface to indent.c
  2.    Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU Emacs.
  5.  
  6. GNU Emacs is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2, or (at your option)
  9. any later version.
  10.  
  11. GNU Emacs is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU Emacs; see the file COPYING.  If not, write to
  18. the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  19. Boston, MA 02111-1307, USA.  */
  20.  
  21. /* We introduce new member `tab_offset'.  We need it because of the
  22.    existence of wide-column characters.  There is a case that the
  23.    line-break occurs at a wide-column character and the number of
  24.    colums of the line gets less than width.
  25.  
  26.    Example (where W_ stands for a wide-column character):
  27.          ----------
  28.          abcdefgh\\
  29.          W_      
  30.          ----------
  31.  
  32.    To handle this case, we should not calculate the tab offset by 
  33.       tab_offset += width;
  34.  
  35.    Instead, we must remember tab_offset of the line. 
  36.  
  37.  */
  38.  
  39. struct position
  40.   {
  41.     int bufpos;
  42.     int bytepos;
  43.     int hpos;
  44.     int vpos;
  45.     int prevhpos;
  46.     int contin;
  47.     /* Number of characters we have already handled
  48.        from the before and after strings at this position.  */
  49.     int ovstring_chars_done;
  50.     int tab_offset;
  51.   };
  52.  
  53. struct position *compute_motion ();
  54. struct position *vmotion ();
  55.  
  56. /* Value of point when current_column was called */
  57. extern int last_known_column_point;
  58.  
  59. /* Functions for dealing with the column cache.  */
  60.  
  61. /* Return true iff the display table DISPTAB specifies the same widths
  62.    for characters as WIDTHTAB.  We use this to decide when to
  63.    invalidate the buffer's column_cache.  */
  64. extern int disptab_matches_widthtab ( /* struct Lisp_Vector *disptab,
  65.                                          struct Lisp_Vector *widthtab */ );
  66.  
  67. /* Recompute BUF's width table, using the display table DISPTAB.  */
  68. extern void recompute_width_table ( /* struct buffer *buf,
  69.                                        struct Lisp_Vector *disptab */ );
  70.