📄 tabs.c
字号:
/* * $XConsortium: tabs.c,v 1.4 91/05/06 17:12:18 gildea Exp $ *//* * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. * * All Rights Reserved * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, * provided that the above copyright notice appear in all copies and that * both that copyright notice and this permission notice appear in * supporting documentation, and that the name of Digital Equipment * Corporation not be used in advertising or publicity pertaining to * distribution of the software without specific, written prior permission. * * * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. *//* tabs.c */#include "ptyx.h"/* * This file presumes 32bits/word. This is somewhat of a crock, and should * be fixed sometime. *//* * places tabstops at only every 8 columns */TabReset(tabs)Tabs tabs;{ register int i; for (i=0; i<TAB_ARRAY_SIZE; ++i) tabs[i] = 0; for (i=0; i<MAX_TABS; i+=8) TabSet(tabs, i);} /* * places a tabstop at col */TabSet(tabs, col) Tabs tabs; int col;{ tabs[col >> 5] |= (1 << (col & 31));}/* * clears a tabstop at col */TabClear(tabs, col) Tabs tabs; int col;{ tabs[col >> 5] &= ~(1 << (col & 31));}/* * returns the column of the next tabstop * (or MAX_TABS - 1 if there are no more). * A tabstop at col is ignored. */TabNext (tabs, col) Tabs tabs; int col;{ extern XtermWidget term; register TScreen *screen = &term->screen;/* The version of more that required this workaround has hopefully been long fixed by now, freeing me to use this flag for terminfo's deficient handling of cursor keys. -- JLM*/#ifdef OLD_MORE_WORKAROUND if(screen->curses && screen->do_wrap && (term->flags & WRAPAROUND)) { Index(screen, 1); col = screen->cur_col = screen->do_wrap = 0; }#endif for (++col; col<MAX_TABS; ++col) if (tabs[col >> 5] & (1 << (col & 31))) return (col); return (MAX_TABS - 1);}/* * clears all tabs */TabZonk (tabs)Tabs tabs;{ register int i; for (i=0; i<TAB_ARRAY_SIZE; ++i) tabs[i] = 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -