(linenum→info "unix/slp.c:2238")

emacs/22.1/src/indent.h

    1: /* Definitions for interface to indent.c
    2:    Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
    3:                  2005, 2006, 2007  Free Software Foundation, Inc.
    4: 
    5: This file is part of GNU Emacs.
    6: 
    7: GNU Emacs is free software; you can redistribute it and/or modify
    8: it under the terms of the GNU General Public License as published by
    9: the Free Software Foundation; either version 2, or (at your option)
   10: any later version.
   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
   18: along with GNU Emacs; see the file COPYING.  If not, write to
   19: the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   20: Boston, MA 02110-1301, USA.  */
   21: 
   22: /* We introduce new member `tab_offset'.  We need it because of the
   23:    existence of wide-column characters.  There is a case that the
   24:    line-break occurs at a wide-column character and the number of
   25:    colums of the line gets less than width.
   26: 
   27:    Example (where W_ stands for a wide-column character):
   28:              ----------
   29:              abcdefgh\\
   30:              W_
   31:              ----------
   32: 
   33:    To handle this case, we should not calculate the tab offset by
   34:         tab_offset += width;
   35: 
   36:    Instead, we must remember tab_offset of the line.
   37: 
   38:  */
   39: 
   40: struct position
   41:   {
   42:     int bufpos;
   43:     int bytepos;
   44:     int hpos;
   45:     int vpos;
   46:     int prevhpos;
   47:     int contin;
   48:     /* Number of characters we have already handled
   49:        from the before and after strings at this position.  */
   50:     int ovstring_chars_done;
   51:     int tab_offset;
   52:   };
   53: 
   54: struct position *compute_motion P_ ((int, int, int, int, int, int, int,
   55:                                      int, int, int, struct window *));
   56: struct position *vmotion P_ ((int, int, struct window *));
   57: int skip_invisible P_ ((int, int *, int, Lisp_Object));
   58: 
   59: /* Value of point when current_column was called */
   60: extern int last_known_column_point;
   61: 
   62: /* Functions for dealing with the column cache.  */
   63: 
   64: /* Return true iff the display table DISPTAB specifies the same widths
   65:    for characters as WIDTHTAB.  We use this to decide when to
   66:    invalidate the buffer's column_cache.  */
   67: int disptab_matches_widthtab P_ ((struct Lisp_Char_Table *disptab,
   68:                                   struct Lisp_Vector *widthtab));
   69: 
   70: /* Recompute BUF's width table, using the display table DISPTAB.  */
   71: void recompute_width_table P_ ((struct buffer *buf,
   72:                                 struct Lisp_Char_Table *disptab));
   73: 
   74: 
   75: /* arch-tag: f9feb373-5bff-4f4f-9198-94805d00cfd7
   76:    (do not change this comment) */
Syntax (Markdown)