003 File Manager
Current Path:
/usr/src/contrib/less
usr
/
src
/
contrib
/
less
/
📁
..
📄
FREEBSD-upgrade
(1.06 KB)
📄
INSTALL
(7.71 KB)
📄
LICENSE
(1.24 KB)
📄
NEWS
(32.19 KB)
📄
README
(10.86 KB)
📄
brac.c
(2.18 KB)
📄
ch.c
(18.37 KB)
📄
charset.c
(17.3 KB)
📄
charset.h
(717 B)
📄
cmd.h
(4.42 KB)
📄
cmdbuf.c
(32.21 KB)
📄
command.c
(36.63 KB)
📄
compose.uni
(10.17 KB)
📄
cvt.c
(2.49 KB)
📄
decode.c
(20.81 KB)
📄
edit.c
(16.68 KB)
📄
filename.c
(19.65 KB)
📄
fmt.uni
(712 B)
📄
forwback.c
(9.77 KB)
📄
funcs.h
(17.56 KB)
📄
help.c
(49.78 KB)
📄
ifile.c
(7.39 KB)
📄
input.c
(8.82 KB)
📄
jump.c
(6.54 KB)
📄
less.h
(12.74 KB)
📄
less.hlp
(12.19 KB)
📄
less.nro
(69.08 KB)
📄
lessecho.c
(4.82 KB)
📄
lessecho.nro
(1.5 KB)
📄
lesskey.c
(17.99 KB)
📄
lesskey.h
(813 B)
📄
lesskey.nro
(9.15 KB)
📄
lglob.h
(2.98 KB)
📄
line.c
(28 KB)
📄
linenum.c
(10.36 KB)
📄
lsystem.c
(7.17 KB)
📄
main.c
(8.07 KB)
📄
mark.c
(8.28 KB)
📄
mkutable
(2.75 KB)
📄
optfunc.c
(13.61 KB)
📄
option.c
(13.89 KB)
📄
option.h
(2 KB)
📄
opttbl.c
(17.14 KB)
📄
os.c
(6.2 KB)
📄
output.c
(13 KB)
📄
pattern.c
(8.55 KB)
📄
pattern.h
(1.54 KB)
📄
pckeys.h
(898 B)
📄
position.c
(5.13 KB)
📄
position.h
(414 B)
📄
prompt.c
(11.98 KB)
📄
regexp.c
(27.74 KB)
📄
regexp.h
(973 B)
📄
screen.c
(53.03 KB)
📄
scrsize.c
(3.06 KB)
📄
search.c
(35.45 KB)
📄
signal.c
(4.63 KB)
📄
tags.c
(15.73 KB)
📄
ttyin.c
(4.12 KB)
📄
ubin.uni
(602 B)
📄
version.c
(46.22 KB)
📄
wide.uni
(3.52 KB)
Editing: brac.c
/* * Copyright (C) 1984-2020 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. * * For more information, see the README file. */ /* * Routines to perform bracket matching functions. */ #include "less.h" #include "position.h" /* * Try to match the n-th open bracket * which appears in the top displayed line (forwdir), * or the n-th close bracket * which appears in the bottom displayed line (!forwdir). * The characters which serve as "open bracket" and * "close bracket" are given. */ public void match_brac(obrac, cbrac, forwdir, n) int obrac; int cbrac; int forwdir; int n; { int c; int nest; POSITION pos; int (*chget)(); extern int ch_forw_get(), ch_back_get(); /* * Seek to the line containing the open bracket. * This is either the top or bottom line on the screen, * depending on the type of bracket. */ pos = position((forwdir) ? TOP : BOTTOM); if (pos == NULL_POSITION || ch_seek(pos)) { if (forwdir) error("Nothing in top line", NULL_PARG); else error("Nothing in bottom line", NULL_PARG); return; } /* * Look thru the line to find the open bracket to match. */ do { if ((c = ch_forw_get()) == '\n' || c == EOI) { if (forwdir) error("No bracket in top line", NULL_PARG); else error("No bracket in bottom line", NULL_PARG); return; } } while (c != obrac || --n > 0); /* * Position the file just "after" the open bracket * (in the direction in which we will be searching). * If searching forward, we are already after the bracket. * If searching backward, skip back over the open bracket. */ if (!forwdir) (void) ch_back_get(); /* * Search the file for the matching bracket. */ chget = (forwdir) ? ch_forw_get : ch_back_get; nest = 0; while ((c = (*chget)()) != EOI) { if (c == obrac) nest++; else if (c == cbrac && --nest < 0) { /* * Found the matching bracket. * If searching backward, put it on the top line. * If searching forward, put it on the bottom line. */ jump_line_loc(ch_tell(), forwdir ? -1 : 1); return; } } error("No matching bracket", NULL_PARG); }
Upload File
Create Folder