Annotation of 43BSDTahoe/new/X/xterm/tabs.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  *     $Source: /u1/X/xterm/RCS/tabs.c,v $
                      3:  *     $Header: tabs.c,v 10.100 86/12/01 14:45:38 jg Rel $
                      4:  */
                      5: 
                      6: #ifndef lint
                      7: static char *rcsid_tabs_c = "$Header: tabs.c,v 10.100 86/12/01 14:45:38 jg Rel $";
                      8: #endif lint
                      9: 
                     10: #include <X/mit-copyright.h>
                     11: 
                     12: /* Copyright    Massachusetts Institute of Technology    1984  */
                     13: 
                     14: /* tabs.c */
                     15: 
                     16: #ifndef lint
                     17: /* @(#)tabs.c       X10/6.6B 12/26/86 */
                     18: #endif lint
                     19: 
                     20: #include <X/Xlib.h>
                     21: #include "scrollbar.h"
                     22: #include "ptyx.h"
                     23: /*
                     24:  * This file presumes 32bits/word.  This is somewhat of a crock, and should
                     25:  * be fixed sometime.
                     26:  */
                     27: 
                     28: /*
                     29:  * places tabstops at only every 8 columns
                     30:  */
                     31: TabReset(tabs)
                     32: Tabs   tabs;
                     33: {
                     34:        register int i;
                     35: 
                     36:        for (i=0; i<TAB_ARRAY_SIZE; ++i)
                     37:                tabs[i] = 0;
                     38: 
                     39:        for (i=0; i<MAX_TABS; i+=8)
                     40:                TabSet(tabs, i);
                     41: }      
                     42: 
                     43: 
                     44: /*
                     45:  * places a tabstop at col
                     46:  */
                     47: TabSet(tabs, col)
                     48: Tabs   tabs;
                     49: {
                     50:        tabs[col >> 5] |= (1 << (col & 31));
                     51: }
                     52: 
                     53: /*
                     54:  * clears a tabstop at col
                     55:  */
                     56: TabClear(tabs, col)
                     57: Tabs   tabs;
                     58: {
                     59:        tabs[col >> 5] &= ~(1 << (col & 31));
                     60: }
                     61: 
                     62: /*
                     63:  * returns the column of the next tabstop
                     64:  * (or MAX_TABS - 1 if there are no more).
                     65:  * A tabstop at col is ignored.
                     66:  */
                     67: TabNext (tabs, col)
                     68: Tabs   tabs;
                     69: {
                     70:        extern Terminal term;
                     71:        register Screen *screen = &term.screen;
                     72: 
                     73:        if(screen->curses && screen->do_wrap && (term.flags & WRAPAROUND)) {
                     74:                Index(screen, 1);
                     75:                col = screen->cur_col = screen->do_wrap = 0;
                     76:        }
                     77:        for (++col; col<MAX_TABS; ++col)
                     78:                if (tabs[col >> 5] & (1 << (col & 31)))
                     79:                        return (col);
                     80: 
                     81:        return (MAX_TABS - 1);
                     82: }
                     83: 
                     84: /*
                     85:  * clears all tabs
                     86:  */
                     87: TabZonk (tabs)
                     88: Tabs   tabs;
                     89: {
                     90:        register int i;
                     91: 
                     92:        for (i=0; i<TAB_ARRAY_SIZE; ++i)
                     93:                tabs[i] = 0;
                     94: }

unix.superglobalmegacorp.com

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