1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * Copyright 2002 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28 /* All Rights Reserved */ 29 30 31 /* from OpenSolaris "ext.h 1.10 05/06/08 SMI" */ 32 33 /* 34 * Portions Copyright (c) 2005 Gunnar Ritter, Freiburg i. Br., Germany 35 * 36 * Sccsid @(#)ext.h 1.111 (gritter) 10/23/09 37 */ 38 39 /* 40 * Changes Copyright (c) 2014 Carsten Kunze <carsten.kunze at arcor.de> 41 */ 42 43 /* 44 * University Copyright- Copyright (c) 1982, 1986, 1988 45 * The Regents of the University of California 46 * All Rights Reserved 47 * 48 * University Acknowledgment- Portions of this document are derived from 49 * software developed by the University of California, Berkeley, and its 50 * contributors. 51 */ 52 53 #include <sys/types.h> 54 55 extern char **argp; 56 extern char *chname; 57 extern char *eibuf; 58 extern char *ibufp; 59 extern char *obufp; 60 extern char *xbufp; 61 extern char *xeibuf; 62 extern char *cfname[NSO+1]; 63 extern char devname[20]; 64 extern char ibuf[IBUFSZ]; 65 extern char **mfiles; 66 extern char *nextf; 67 extern char obuf[], *obufp; 68 extern char *termtab, *fontfile; 69 extern char xbuf[IBUFSZ]; 70 extern filep apptr; 71 extern filep ip; 72 extern filep nextb; 73 extern filep offset; 74 extern filep roff; 75 extern filep woff; 76 #ifdef NROFF 77 extern long lvmot; 78 extern size_t *chtab; 79 #else 80 extern short *chtab; 81 extern int html; 82 #endif 83 extern int *pnp; 84 extern int *pstab; 85 extern int app; 86 extern int ascii; 87 extern int bd; 88 extern int *bdtab; 89 extern int blmac; 90 extern int lsmac; 91 extern int glss; 92 extern int lsn; 93 extern int ccs; 94 extern int charf; 95 extern tchar **chartab; 96 extern struct charout *charout; 97 extern int charoutsz; 98 extern int clonef; 99 extern int copyf; 100 extern int cs; 101 extern int defaultpl; 102 extern int defcf; 103 extern int dfact; 104 extern int dfactd; 105 extern int diflg; 106 extern int dilev; 107 extern int donef; 108 extern int donep; 109 extern int dotT; 110 extern int dpn; 111 extern int dl; 112 extern int ds; 113 extern int ecs; 114 extern int ejf; 115 extern int em; 116 extern int eqflg; 117 extern int error; 118 extern int esc; 119 extern int eschar; 120 extern int ev; 121 extern int fc; 122 extern char *fchartab; 123 extern int flss; 124 extern int fmtchar; 125 extern int *fontlab; 126 extern int gflag; 127 extern int hflg; 128 extern int ifi; 129 extern int ifile; 130 extern int ifl[NSO]; 131 extern int iflg; 132 extern int init; 133 extern int lastkern; 134 extern int lasttrack; 135 extern int lead; 136 extern int lg; 137 extern int lgf; 138 extern int macerr; 139 extern int mb_cur_max; 140 extern int mflg; 141 extern int mfont; 142 extern int minflg; 143 extern int minspc; 144 extern int mpts; 145 extern int ndone; 146 extern struct contab *newmn; 147 extern int nflush; 148 extern int nfo; 149 extern int nfonts; 150 extern int nform; 151 extern int nhyp; 152 extern int nlflg; 153 extern int nmfi; 154 extern int no_out; 155 extern int nofeed; 156 extern int nolt; 157 extern int nonumb; 158 extern int noscale; 159 extern int npn; 160 extern int npnflg; 161 extern int nx; 162 extern int oldbits; 163 extern struct contab *oldmn; 164 extern int *olt; 165 extern int over; 166 extern int padc; 167 extern int padj; 168 extern int pfont; 169 extern int pfrom; 170 extern pid_t pipeflg; 171 extern int pl; 172 extern int pnlist[]; 173 extern int po1; 174 extern int po; 175 extern int ppts; 176 extern int print; 177 extern int ptid; 178 extern int pto; 179 extern int quiet; 180 extern int ralss; 181 extern int rargc; 182 extern int raw; 183 extern int rawwidth; 184 extern long realpage; 185 extern int res; 186 extern int setwdf; 187 extern int sfont; 188 extern int smnt; 189 extern int stdi; 190 extern int stop; 191 extern int sv; 192 extern int tabch, ldrch; 193 extern int tailflg; 194 extern int tflg; 195 extern int totout; 196 extern int trap; 197 extern int *trtab; 198 extern int *trintab; 199 extern int *trnttab; 200 extern int tryglf; 201 extern int tty; 202 extern int ttyod; 203 extern int Tflg; 204 extern int ulfont; 205 extern int vflag; 206 extern int vpt; 207 extern int wbfi; 208 extern int widthp; 209 extern int xflag; 210 extern int xfont; 211 extern int xpts; 212 extern int no_out; 213 extern int ejl; 214 extern struct s *frame, *stk, *nxf; 215 extern tchar **hyp; 216 extern tchar *olinep; 217 extern tchar *pbbuf; 218 extern int pbsize; 219 extern int pbp; 220 extern int lastpbp; 221 extern tchar ch; 222 extern tchar nrbits; 223 extern tchar *oline; 224 extern size_t olinesz; 225 extern struct widcache { /* width cache, indexed by character */ 226 int fontpts; 227 int rst; 228 int rsb; 229 int width; 230 int track; 231 char *evid; 232 } *widcache; 233 extern char *gchtab; 234 extern struct d *d; 235 extern struct d *dip; 236 extern int initbdtab[]; 237 238 #ifdef EUC 239 #include <stddef.h> 240 extern int multi_locale; 241 extern int csi_width[]; 242 extern char mbbuf1[]; 243 extern char *mbbuf1p; 244 extern wchar_t twc; 245 extern int (*wdbdg)(wchar_t, wchar_t, int); 246 extern wchar_t *(*wddlm)(wchar_t, wchar_t, int); 247 #endif /* EUC */ 248 extern int **lhangtab; 249 extern int **rhangtab; 250 extern int **kernafter; 251 extern int **kernbefore; 252 extern int **ftrtab; 253 extern char *lgmark; 254 extern struct lgtab **lgtab; 255 extern int ***lgrevtab; 256 extern int spreadwarn; 257 extern int spreadlimit; 258 extern int lastrq; 259 extern int noschr; 260 extern int argdelim; 261 extern int bol; 262 extern int prdblesc; 263 extern int gemu; 264 extern int chomp; 265 extern int chompend; 266 267 /* n1.c */ 268 extern void mainloop(void); 269 extern int tryfile(char *, char *, int); 270 extern void catch(int); 271 extern void kcatch(int); 272 extern void init0(void); 273 extern void init1(char); 274 extern void init2(void); 275 extern void cvtime(void); 276 extern int ctoi(register char *); 277 extern void mesg(int); 278 extern void errprint(const char *, ...); 279 #define fdprintf xxfdprintf 280 extern void fdprintf(int, char *, ...); 281 extern char *roff_sprintf(char *, size_t, char *, ...); 282 extern int control(register int, register int); 283 extern int getrq2(void); 284 extern int getrq(int); 285 extern tchar getch(void); 286 extern void setxon(void); 287 extern tchar getch0(void); 288 extern void pushback(register tchar *); 289 extern void cpushback(register char *); 290 extern tchar *growpbbuf(void); 291 extern int nextfile(void); 292 extern int popf(void); 293 extern void flushi(void); 294 extern int getach(void); 295 extern int rgetach(void); 296 extern void casenx(void); 297 extern int getname(void); 298 extern void caseso(void); 299 extern void casepso(void); 300 extern void caself(void); 301 extern void casecf(void); 302 extern void casesy(void); 303 extern void getpn(register char *); 304 extern void setrpt(void); 305 extern void casedb(void); 306 extern void casexflag(void); 307 extern void casecp(void); 308 extern void caserecursionlimit(void); 309 extern void casechar(int); 310 extern void casefchar(void); 311 extern void caserchar(void); 312 extern tchar setchar(tchar); 313 extern tchar sfmask(tchar); 314 extern int issame(tchar, tchar); 315 /* n2.c */ 316 extern int pchar(register tchar); 317 extern void pchar1(register tchar); 318 extern void outascii(tchar); 319 extern void oputs(register char *); 320 extern void flusho(void); 321 extern void caseoutput(void); 322 extern void done(int); 323 extern void done1(int); 324 extern void done2(int); 325 extern void done3(int); 326 extern void edone(int); 327 extern void casepi(void); 328 /* n3.c */ 329 extern void *growcontab(void); 330 extern void *growblist(void); 331 extern void caseig(void); 332 extern void casern(void); 333 extern void maddhash(register struct contab *); 334 extern void munhash(register struct contab *); 335 extern filep finds(register int, int, int); 336 extern void caserm(void); 337 extern void caseas(void); 338 extern void caseds(void); 339 extern void caseam(void); 340 extern void casede(void); 341 extern struct contab *findmn(register int); 342 extern struct contab *findmx(register int); 343 extern int skip(int); 344 extern int copyb(void); 345 extern void copys(void); 346 extern filep alloc(void); 347 extern void ffree(filep); 348 extern void wbt(tchar); 349 extern void wbf(register tchar); 350 extern void wbfl(void); 351 extern tchar rbf(void); 352 extern tchar rbf0(register filep); 353 extern filep incoff(register filep); 354 extern tchar popi(void); 355 extern int pushi(filep, int, enum flags); 356 extern void sfree(struct s *); 357 extern struct s *macframe(void); 358 extern int getsn(int); 359 extern int setstr(void); 360 extern void collect(void); 361 extern void seta(void); 362 extern void casebox(void); 363 extern void caseboxa(void); 364 extern void caseda(int); 365 extern void casedi(int); 366 extern void casedt(void); 367 extern void caseals(void); 368 extern void casewatch(int); 369 extern void caseunwatch(void); 370 extern void prwatch(struct contab *, int, int); 371 extern void casetl(void); 372 extern void casepc(void); 373 extern void casechop(void); 374 extern void casepm(void); 375 extern void stackdump(void); 376 extern char *macname(int); 377 extern int maybemore(int, int); 378 extern tchar setuc(void); 379 extern int makerq(const char *); 380 /* n4.c */ 381 extern void *grownumtab(void); 382 extern void setn(void); 383 extern int wrc(tchar); 384 extern void setn1(int, int, tchar); 385 extern void nunhash(register struct numtab *); 386 extern struct numtab *findr(register int); 387 extern struct numtab *usedr(register int); 388 extern int fnumb(register int, register int (*)(tchar)); 389 extern int decml(register int, register int (*)(tchar)); 390 extern int roman(int, int (*)(tchar)); 391 extern int roman0(int, int (*)(tchar), char *, char *); 392 extern int abc(int, int (*)(tchar)); 393 extern int abc0(int, int (*)(tchar)); 394 extern int hatoi(void); 395 #undef atof 396 #define atof xxatof 397 extern float atof(void); 398 extern long long atoi0(void); 399 extern double atof0(void); 400 extern void setnr(const char *, int, int); 401 extern void setnrf(const char *, float, float); 402 extern void caserr(void); 403 extern void casernn(void); 404 extern void casenr(void); 405 extern void casenrf(void); 406 extern void caselnr(void); 407 extern void caselnrf(void); 408 extern void setr(void); 409 extern void caseaf(void); 410 extern void setaf(void); 411 extern void casealn(void); 412 extern void casewatchn(int); 413 extern void caseunwatchn(void); 414 extern void prwatchn(struct numtab *); 415 extern int vnumb(int *); 416 extern int hnumb(int *); 417 extern int inumb(int *); 418 extern int inumb2(int *, int *); 419 extern float atop(void); 420 extern int quant(int, int); 421 extern tchar moflo(int); 422 /* n5.c */ 423 extern void save_tty(void); 424 extern void casead(void); 425 extern void casena(void); 426 extern void casefi(void); 427 extern void casenf(void); 428 extern void casepadj(void); 429 extern void casers(void); 430 extern void casens(void); 431 extern void casespreadwarn(void); 432 extern int chget(int); 433 extern void casecc(void); 434 extern void casec2(void); 435 extern void casehc(void); 436 extern void casetc(void); 437 extern void caselc(void); 438 extern void casehy(void); 439 extern void casenh(void); 440 extern void casehlm(void); 441 extern void casehcode(void); 442 extern void caseshc(void); 443 extern void casehylen(void); 444 extern void casehypp(void); 445 extern void casepshape(void); 446 extern void caselpfx(void); 447 extern int max(int, int); 448 extern int min(int, int); 449 extern void casece(void); 450 extern void caserj(void); 451 extern void casebrnl(void); 452 extern void casebrpnl(void); 453 extern void casein(void); 454 extern void casell(void); 455 extern void caselt(void); 456 extern void caseti(void); 457 extern void casels(void); 458 extern void casepo(void); 459 extern void casepl(void); 460 extern void casewh(void); 461 extern void casedwh(void); 462 extern void casech(void); 463 extern void casedch(void); 464 extern void casevpt(void); 465 extern tchar setolt(void); 466 extern int findn(struct d *, int); 467 extern void casepn(void); 468 extern void casebp(void); 469 extern void casetm(int); 470 extern void casetmc(void); 471 extern void caseerrprint(void); 472 extern void caseopen(void); 473 extern void caseopena(void); 474 extern void casewrite(void); 475 extern void casewritec(void); 476 extern void casewritem(void); 477 extern void caseclose(void); 478 extern void casesp(int); 479 extern void casebrp(void); 480 extern void caseblm(void); 481 extern void caselsm(void); 482 extern void casert(void); 483 extern void caseem(void); 484 extern void casefl(void); 485 extern void caseev(void); 486 extern void caseevc(void); 487 extern void evc(struct env *, struct env *); 488 extern void evcline(struct env *, struct env *); 489 extern void relsev(struct env *); 490 extern void caseel(void); 491 extern void caseie(void); 492 extern void caseif(int); 493 extern void casenop(void); 494 extern void casechomp(void); 495 extern void casereturn(void); 496 extern void casewhile(void); 497 extern void casebreak(void); 498 extern void casecontinue(int); 499 extern void eatblk(int); 500 extern int cmpstr(tchar); 501 extern void caserd(void); 502 extern int rdtty(void); 503 extern void caseec(void); 504 extern void caseeo(void); 505 extern void caseecs(void); 506 extern void caseecr(void); 507 extern void caseescoff(void); 508 extern void caseescon(void); 509 extern void caseta(void); 510 extern void casene(void); 511 extern void casetr(int); 512 extern void casetrin(void); 513 extern void casetrnt(void); 514 extern void casecu(void); 515 extern void caseul(void); 516 extern void caseuf(void); 517 extern void caseit(int); 518 extern void caseitc(void); 519 extern void casemc(void); 520 extern void casesentchar(void); 521 extern void casetranschar(void); 522 extern void casebreakchar(void); 523 extern void casenhychar(void); 524 extern void caseconnectchar(void); 525 extern void casemk(void); 526 extern void casesv(void); 527 extern void caseos(void); 528 extern void casenm(void); 529 extern void getnm(int *, int); 530 extern void casenn(void); 531 extern void caseab(void); 532 extern void restore_tty(void); 533 extern void set_tty(void); 534 extern void echo_off(void); 535 extern void echo_on(void); 536 /* n7.c */ 537 extern int collectmb(tchar); 538 extern void tbreak(void); 539 extern void donum(void); 540 extern void text(void); 541 extern void nofill(void); 542 extern void callsp(void); 543 extern void ckul(void); 544 extern int storeline(register tchar, int); 545 extern void newline(int); 546 extern int findn1(struct d *, int); 547 extern void chkpn(void); 548 extern int findt(struct d *, int); 549 extern int findt1(void); 550 extern void eject(struct s *); 551 extern int movword(void); 552 extern void horiz(int); 553 extern void setnel(void); 554 extern int getword(int); 555 extern void storeword(register tchar, register int); 556 extern void growpgsize(void); 557 /* n8.c */ 558 extern void hyphen(tchar *); 559 extern int punct(tchar); 560 extern int alph(tchar); 561 extern void caseht(void); 562 extern void casehw(void); 563 extern int exword(void); 564 extern int suffix(void); 565 extern int maplow(tchar); 566 extern int vowel(tchar); 567 extern tchar *chkvow(tchar *); 568 extern void digram(void); 569 extern int dilook(tchar, tchar, const char [26][13]); 570 extern void casehylang(void); 571 /* n9.c */ 572 extern tchar setz(void); 573 extern void setline(void); 574 extern tchar eat(tchar); 575 extern void setov(void); 576 extern void setbra(void); 577 extern void setvline(void); 578 extern void setdraw(void); 579 extern void casefc(void); 580 extern tchar setfield(int); 581 extern tchar setpenalty(void); 582 extern tchar setdpenal(void); 583 extern tchar mkxfunc(int, int); 584 extern void pushinlev(void); 585 extern tchar popinlev(void); 586 extern void localize(void); 587 extern void caselc_ctype(void); 588 extern void casepsbb(void); 589 extern void casewarn(void); 590 extern void nosuch(int); 591 extern void illseq(int, const char *, int); 592 extern void missing(void); 593 extern void nodelim(int); 594 extern void storerq(int); 595 extern int fetchrq(tchar *); 596 extern void morechars(int); 597 #ifdef NROFF 598 extern void caseutf8conv(void); 599 extern int addch(char *); 600 #endif 601