Annotation of researchv9/X11/src/X.V11R1/clients/xterm/tabs.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  *     $Source: /u1/X11/clients/xterm/RCS/tabs.c,v $
                      3:  *     $Header: tabs.c,v 1.5 87/09/11 08:17:35 toddb Exp $
                      4:  */
                      5: 
                      6: #ifndef lint
                      7: static char *rcsid_tabs_c = "$Header: tabs.c,v 1.5 87/09/11 08:17:35 toddb Exp $";
                      8: #endif lint
                      9: 
                     10: #include <X11/copyright.h>
                     11: 
                     12: /*
                     13:  * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
                     14:  *
                     15:  *                         All Rights Reserved
                     16:  *
                     17:  * Permission to use, copy, modify, and distribute this software and its
                     18:  * documentation for any purpose and without fee is hereby granted,
                     19:  * provided that the above copyright notice appear in all copies and that
                     20:  * both that copyright notice and this permission notice appear in
                     21:  * supporting documentation, and that the name of Digital Equipment
                     22:  * Corporation not be used in advertising or publicity pertaining to
                     23:  * distribution of the software without specific, written prior permission.
                     24:  *
                     25:  *
                     26:  * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
                     27:  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
                     28:  * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
                     29:  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
                     30:  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
                     31:  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
                     32:  * SOFTWARE.
                     33:  */
                     34: 
                     35: /* tabs.c */
                     36: 
                     37: #ifndef lint
                     38: static char rcs_id[] = "$Header: tabs.c,v 1.5 87/09/11 08:17:35 toddb Exp $";
                     39: #endif lint
                     40: 
                     41: #include <X11/Xlib.h>
                     42: #include "ptyx.h"
                     43: /*
                     44:  * This file presumes 32bits/word.  This is somewhat of a crock, and should
                     45:  * be fixed sometime.
                     46:  */
                     47: 
                     48: /*
                     49:  * places tabstops at only every 8 columns
                     50:  */
                     51: TabReset(tabs)
                     52: Tabs   tabs;
                     53: {
                     54:        register int i;
                     55: 
                     56:        for (i=0; i<TAB_ARRAY_SIZE; ++i)
                     57:                tabs[i] = 0;
                     58: 
                     59:        for (i=0; i<MAX_TABS; i+=8)
                     60:                TabSet(tabs, i);
                     61: }      
                     62: 
                     63: 
                     64: /*
                     65:  * places a tabstop at col
                     66:  */
                     67: TabSet(tabs, col)
                     68: Tabs   tabs;
                     69: {
                     70:        tabs[col >> 5] |= (1 << (col & 31));
                     71: }
                     72: 
                     73: /*
                     74:  * clears a tabstop at col
                     75:  */
                     76: TabClear(tabs, col)
                     77: Tabs   tabs;
                     78: {
                     79:        tabs[col >> 5] &= ~(1 << (col & 31));
                     80: }
                     81: 
                     82: /*
                     83:  * returns the column of the next tabstop
                     84:  * (or MAX_TABS - 1 if there are no more).
                     85:  * A tabstop at col is ignored.
                     86:  */
                     87: TabNext (tabs, col)
                     88: Tabs   tabs;
                     89: {
                     90:        extern Terminal term;
                     91:        register TScreen *screen = &term.screen;
                     92: 
                     93:        if(screen->curses && screen->do_wrap && (term.flags & WRAPAROUND)) {
                     94:                Index(screen, 1);
                     95:                col = screen->cur_col = screen->do_wrap = 0;
                     96:        }
                     97:        for (++col; col<MAX_TABS; ++col)
                     98:                if (tabs[col >> 5] & (1 << (col & 31)))
                     99:                        return (col);
                    100: 
                    101:        return (MAX_TABS - 1);
                    102: }
                    103: 
                    104: /*
                    105:  * clears all tabs
                    106:  */
                    107: TabZonk (tabs)
                    108: Tabs   tabs;
                    109: {
                    110:        register int i;
                    111: 
                    112:        for (i=0; i<TAB_ARRAY_SIZE; ++i)
                    113:                tabs[i] = 0;
                    114: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.