1 /* 2 * 3 * This code contains changes by 4 * Gunnar Ritter, Freiburg i. Br., Germany, 2002. All rights reserved. 5 * 6 * Conditions 1, 2, and 4 and the no-warranty notice below apply 7 * to these changes. 8 * 9 * 10 * Copyright (c) 1980, 1993 11 * The Regents of the University of California. All rights reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following conditions 15 * are met: 16 * 1. Redistributions of source code must retain the above copyright 17 * notice, this list of conditions and the following disclaimer. 18 * 2. Redistributions in binary form must reproduce the above copyright 19 * notice, this list of conditions and the following disclaimer in the 20 * documentation and/or other materials provided with the distribution. 21 * 3. All advertising materials mentioning features or use of this software 22 * must display the following acknowledgement: 23 * This product includes software developed by the University of 24 * California, Berkeley and its contributors. 25 * 4. Neither the name of the University nor the names of its contributors 26 * may be used to endorse or promote products derived from this software 27 * without specific prior written permission. 28 * 29 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 30 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 31 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 32 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 33 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 34 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 35 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 37 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 38 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 39 * SUCH DAMAGE. 40 * 41 * 42 * Copyright(C) Caldera International Inc. 2001-2002. All rights reserved. 43 * 44 * Redistribution and use in source and binary forms, with or without 45 * modification, are permitted provided that the following conditions 46 * are met: 47 * Redistributions of source code and documentation must retain the 48 * above copyright notice, this list of conditions and the following 49 * disclaimer. 50 * Redistributions in binary form must reproduce the above copyright 51 * notice, this list of conditions and the following disclaimer in the 52 * documentation and/or other materials provided with the distribution. 53 * All advertising materials mentioning features or use of this software 54 * must display the following acknowledgement: 55 * This product includes software developed or owned by Caldera 56 * International, Inc. 57 * Neither the name of Caldera International, Inc. nor the names of 58 * other contributors may be used to endorse or promote products 59 * derived from this software without specific prior written permission. 60 * 61 * USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA 62 * INTERNATIONAL, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR 63 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 64 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 65 * ARE DISCLAIMED. IN NO EVENT SHALL CALDERA INTERNATIONAL, INC. BE 66 * LIABLE FOR ANY DIRECT, INDIRECT INCIDENTAL, SPECIAL, EXEMPLARY, OR 67 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 68 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 69 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 70 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 71 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 72 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 73 * @(#)ex_proto.h 1.28 (gritter) 2/19/05 74 */ 75 76 /* 77 * Function type definitions 78 */ 79 80 #define join xjoin 81 #define word xword 82 #define getline xgetline 83 84 /* ex.c */ 85 extern void erropen(void); 86 extern void usage(void); 87 extern void needarg(int); 88 extern void invopt(int); 89 extern char *tailpath(register char *); 90 extern int iownit(char *); 91 extern shand setsig(int, shand); 92 extern void init(void); 93 /* ex_addr.c */ 94 extern void setdot(void); 95 extern void setdot1(void); 96 extern void setcount(void); 97 extern int getnum(void); 98 extern void setall(void); 99 extern void setnoaddr(void); 100 extern line *address(char *); 101 extern void setCNL(void); 102 extern void setNAEOL(void); 103 /* ex_cmds.c */ 104 extern void commands(int, int); 105 /* ex_cmds2.c */ 106 extern int cmdreg(void); 107 extern int endcmd(int); 108 extern void eol(void); 109 extern void error0(void); 110 extern int error1(char *); 111 extern void verror(char *, va_list); 112 extern void error(char *, ...); 113 extern void erewind(void); 114 extern void fixol(void); 115 extern int exclam(void); 116 extern void makargs(void); 117 extern void next(void); 118 extern void newline(void); 119 extern void nomore(void); 120 extern int quickly(void); 121 extern void resetflav(void); 122 extern void serror(char *, ...); 123 extern void setflav(void); 124 extern int skipend(void); 125 extern void tailspec(int); 126 extern void tail(char *); 127 extern void tail2of(char *); 128 extern void tailprim(register char *, int, bool); 129 extern void vcontin(bool); 130 extern void vnfl(void); 131 /* ex_cmdsub.c */ 132 extern int append(int (*)(void), line *); 133 extern void appendnone(void); 134 extern void pargs(void); 135 extern void delete(int); 136 extern void deletenone(void); 137 extern void squish(void); 138 extern void join(int); 139 extern void move1(int, line *); 140 extern void move(void); 141 extern int getcopy(void); 142 extern int getput(void); 143 extern void put(int); 144 extern void pragged(int); 145 extern void shift(int, int); 146 extern void tagfind(bool); 147 extern void yank(int); 148 extern void zop(int); 149 extern void zop2(register int, register int); 150 extern void plines(line *, register line *, bool); 151 extern void pofix(void); 152 extern void somechange(void); 153 extern void undo(bool); 154 extern void mapcmd(int, int); 155 extern void cmdmac(char); 156 /* ex_data.c */ 157 /* ex_extern.c */ 158 /* ex_get.c */ 159 extern void ignchar(void); 160 extern int getach(void); 161 extern int getchar(void); 162 extern void checkjunk(int); 163 extern int getcd(void); 164 extern int peekchar(void); 165 extern int peekcd(void); 166 extern int smunch(register int, char *); 167 extern int gettty(void); 168 extern void setin(line *); 169 /* ex_io.c */ 170 extern void filename(int); 171 extern int getargs(void); 172 extern int gscan(void); 173 extern void getone(void); 174 extern int samei(struct stat *, char *); 175 extern void rop(int); 176 extern void rop2(void); 177 extern int iostats(void); 178 extern void rop3(int); 179 extern int edfile(void); 180 extern void wop(bool); 181 extern int getfile(void); 182 extern void putfile(int); 183 extern void wrerror(void); 184 extern void source(char *, bool); 185 extern void clrstats(void); 186 extern void checkmodeline(char *); 187 #ifdef MB 188 extern int mbtowi(int *c, const char *s, size_t n); 189 extern int widthok(int c); 190 #endif /* MB */ 191 extern int GETWC(char *); 192 /* ex_put.c */ 193 extern int (*setlist(int))(int); 194 extern void (*setnumb(int))(int); 195 extern int listchar(int); 196 extern int normchar(register int); 197 extern void slobber(int); 198 extern void numbline(int); 199 extern void normline(int); 200 extern int putchar(int); 201 extern int termchar(int); 202 extern void flush2(void); 203 extern void flush(void); 204 extern void flush1(void); 205 extern int plodput(int); 206 extern int plod(int); 207 extern void fgoto(void); 208 extern void tab(int); 209 extern void noteinp(void); 210 extern void termreset(void); 211 extern void draino(void); 212 extern void flusho(void); 213 extern void putnl(void); 214 extern void putS(char *); 215 extern int putch(int); 216 extern void putpad(char *); 217 extern void setoutt(void); 218 extern void vlprintf(char *, va_list); 219 extern void lprintf(char *, ...); 220 extern void putNFL(void); 221 extern void sTTY(int); 222 extern void pstart(void); 223 extern void pstop(void); 224 extern void ttcharoff(void); 225 extern struct termios ostart(void); 226 extern void normal(struct termios); 227 /* ex_re.c */ 228 extern void global(int); 229 extern void gdelete(void); 230 extern int substitute(int); 231 extern int compsub(int); 232 extern void comprhs(int); 233 extern int getsub(void); 234 extern int dosubcon(bool, line *); 235 extern int confirmed(line *); 236 extern void ugo(int, int); 237 extern void dosub(void); 238 extern int fixcase(register int); 239 extern char *place(register char *, register char *, register char *); 240 extern void snote(register int, register int); 241 extern void cerror(char *); 242 extern struct regexp *savere(struct regexp *); 243 extern struct regexp *resre(struct regexp *); 244 extern int compile(int, int); 245 extern int same(register int, register int); 246 extern int ecmp(register char *, register char *, register int); 247 extern int execute(int, line *); 248 /* ex_set.c */ 249 extern void set(void); 250 extern int setend(void); 251 extern void prall(void); 252 extern void propts(void); 253 extern void propt(register struct option *); 254 /* ex_subr.c */ 255 extern int any(int, register char *); 256 extern int backtab(register int); 257 extern void change(void); 258 extern int column(register char *); 259 extern int lcolumn(register char *); 260 extern void comment(void); 261 extern void Copy(register char *, register char *, register int); 262 extern void copyw(register line *, register line *, register int); 263 extern void copywR(register line *, register line *, register int); 264 extern int ctlof(int); 265 extern void dingdong(void); 266 extern int fixindent(int); 267 extern void filioerr(char *); 268 extern char *genindent(register int); 269 extern void getDOT(void); 270 extern line *getmark(register int); 271 extern int getn(register char *); 272 extern void ignnEOF(void); 273 extern int is_white(int); 274 extern int junk(register int); 275 extern void killed(void); 276 extern void killcnt(register int); 277 extern int lineno(line *); 278 extern int lineDOL(void); 279 extern int lineDOT(void); 280 extern void markDOT(void); 281 extern void markpr(line *); 282 extern int markreg(register int); 283 extern char *mesg(register char *); 284 extern void merror1(intptr_t); 285 extern void vmerror(char *, va_list); 286 extern void merror(char *, ...); 287 extern int morelines(void); 288 extern void nonzero(void); 289 extern int notable(int); 290 extern void notempty(void); 291 extern void netchHAD(int); 292 extern void netchange(register int); 293 extern int printof(int); 294 extern void putmark(line *); 295 extern void putmk1(register line *, int); 296 extern char *plural(long); 297 extern int qcolumn(register char *, register char *); 298 extern int qcount(int); 299 extern void reverse(register line *, register line *); 300 extern void save(line *, register line *); 301 extern void save12(void); 302 extern void saveall(void); 303 extern int span(void); 304 extern void synced(void); 305 extern int skipwh(void); 306 extern void vsmerror(char *, va_list); 307 extern void smerror(char *, ...); 308 extern char *strend(register char *); 309 extern void strcLIN(char *); 310 extern void syserror(void); 311 extern int tabcol(int, int); 312 extern char *vfindcol(int); 313 extern char *vskipwh(register char *); 314 extern char *vpastwh(register char *); 315 extern int whitecnt(register char *); 316 extern void markit(line *); 317 extern void onhup(int); 318 extern void onintr(int); 319 extern void setrupt(void); 320 extern int preserve(void); 321 extern int exitex(int); 322 extern void onsusp(int); 323 extern void onemt(int); 324 extern char *movestr(char *, const char *); 325 extern char *safecp(char *, const char *, size_t, char *, ...); 326 extern char *safecat(char *, const char *, size_t, char *, ...); 327 /* ex_tagio.c */ 328 extern int topen(char *, char *); 329 extern int tseek(int, off_t); 330 extern int tgets(char *, int, int); 331 extern void tclose(int); 332 /* ex_temp.c */ 333 extern void fileinit(void); 334 extern void cleanup(bool); 335 extern void getline(line); 336 extern line putline(void); 337 extern char *getblock(line, int); 338 extern void blkio(bloc, char *, ssize_t (*)(int, void *, size_t)); 339 extern void tlaste(void); 340 extern void tflush(void); 341 extern void synctmp(void); 342 extern void TSYNC(void); 343 extern void regio(short, ssize_t (*)(int, void *, size_t)); 344 extern int REGblk(void); 345 extern struct strreg *mapreg(register int); 346 extern void KILLreg(register int); 347 extern ssize_t shread(void); 348 extern void putreg(int); 349 extern int partreg(int); 350 extern void notpart(register int); 351 extern int getREG(void); 352 extern void YANKreg(register int); 353 extern void kshift(void); 354 extern void YANKline(void); 355 extern void rbflush(void); 356 extern void regbuf(char, char *, int); 357 extern void tlaste(void); 358 /* ex_tty.c */ 359 extern void gettmode(void); 360 extern void setterm(char *); 361 extern void setsize(void); 362 extern void zap(void); 363 extern char *gettlongname(register char *, char *); 364 extern char *fkey(int); 365 extern int cost(char *); 366 extern int countnum(int); 367 extern struct termios ostart(void); 368 extern void tostart(void); 369 extern void ostop(struct termios); 370 extern void tostop(void); 371 extern struct termios setty(struct termios); 372 extern void gTTY(int); 373 extern void noonl(void); 374 /* ex_unix.c */ 375 extern void unix0(int); 376 extern struct termios unixex(char *, char *, int, int); 377 extern void unixwt(int, struct termios); 378 extern void filter(register int); 379 extern void recover(void); 380 extern void waitfor(void); 381 extern void revocer(void); 382 /* ex_v.c */ 383 extern void oop(void); 384 extern void ovbeg(void); 385 extern void ovend(struct termios); 386 extern void vop(void); 387 extern void fixzero(void); 388 extern void savevis(void); 389 extern void undvis(void); 390 extern void setwind(void); 391 extern void vok(register cell *); 392 extern void vintr(int); 393 extern void vsetsiz(int); 394 extern void onwinch(int); 395 /* ex_vadj.c */ 396 extern void vopen(line *, int); 397 extern int vreopen(int, int, int); 398 extern int vglitchup(int, int); 399 extern void vinslin(register int, register int, int); 400 extern void vopenup(int, int, int); 401 extern void vadjAL(int, int); 402 extern void vrollup(int); 403 extern void vup1(void); 404 extern void vmoveitup(register int, int); 405 extern void vscroll(register int); 406 extern void vscrap(void); 407 extern void vrepaint(char *); 408 extern void vredraw(register int); 409 extern void vdellin(int, int, int); 410 extern void vadjDL(int, int); 411 extern void vsyncCL(void); 412 extern void vsync(register int); 413 extern void vsync1(register int); 414 extern void vcloseup(int, register int); 415 extern void vreplace(int, int, int); 416 extern void sethard(void); 417 extern void vdirty(register int, register int); 418 /* ex_version.c */ 419 extern void printver(void); 420 /* ex_vget.c */ 421 extern void ungetkey(int); 422 extern int getkey(void); 423 extern int peekbr(void); 424 extern int getbr(void); 425 extern int getesc(void); 426 extern int peekkey(void); 427 extern int readecho(int); 428 extern void setLAST(void); 429 extern void addtext(char *); 430 extern void setDEL(void); 431 extern void setBUF(register cell *); 432 extern void addto(register cell *, register char *); 433 extern int noteit(int); 434 extern void obeep(void); 435 extern void macpush(char *, int); 436 extern int vgetcnt(void); 437 extern void trapalarm(int); 438 extern int fastpeekkey(void); 439 /* ex_vmain.c */ 440 extern void vmain(void); 441 extern void grabtag(void); 442 extern void prepapp(void); 443 extern void vremote(int, void (*)(int), int); 444 extern void vsave(void); 445 extern void vzop(int, int, register int); 446 extern cell *str2cell(cell *, register char *); 447 extern char *cell2str(char *, register cell *); 448 extern cell *cellcpy(cell *, register cell *); 449 extern size_t cellen(register cell *); 450 extern cell *cellcat(cell *, register cell *); 451 /* ex_voper.c */ 452 extern void operate(register int, register int); 453 extern int find(int); 454 extern int word(register void (*)(int), int); 455 extern void eend(register void (*)(int)); 456 extern int wordof(int, register char *); 457 extern int wordch(char *); 458 extern int edge(void); 459 extern int margin(void); 460 /* ex_vops.c */ 461 extern void vUndo(void); 462 extern void vundo(int); 463 extern void vmacchng(int); 464 extern void vnoapp(void); 465 extern void vmove(int); 466 extern void vdelete(int); 467 extern void vchange(int); 468 extern void voOpen(int, register int); 469 extern void vshftop(int); 470 extern void vfilter(int); 471 extern int xdw(void); 472 extern void vshift(int); 473 extern void vrep(register int); 474 extern void vyankit(int); 475 extern void setpk(void); 476 extern void vkillDEL(void); 477 /* ex_vops2.c */ 478 extern void bleep(register int, char *); 479 extern int vdcMID(void); 480 extern void takeout(cell *); 481 extern int ateopr(void); 482 extern void showmode(int); 483 extern void addc(cell); 484 extern void vappend(int, int, int); 485 extern void back1(void); 486 extern char *vgetline(int, register char *, bool *, int); 487 extern void vdoappend(char *); 488 extern int vgetsplit(void); 489 extern int vmaxrep(int, register int); 490 /* ex_vops3.c */ 491 extern int llfind(bool, int, void (*)(int), line *); 492 extern int endsent(bool); 493 extern int endPS(void); 494 extern int lindent(line *); 495 extern int lmatchp(line *); 496 extern void lsmatch(char *); 497 extern int ltosolid(void); 498 extern int ltosol1(register char *); 499 extern int lskipbal(register char *); 500 extern int lskipatom(void); 501 extern int lskipa1(register char *); 502 extern int lnext(void); 503 extern int lbrack(register int, void (*)(int)); 504 extern int isa(register char *); 505 extern void vswitch(int); 506 #ifdef MB 507 extern int wskipleft(char *, char *); 508 extern int wskipright(char *, char *); 509 extern int wsamechar(char *, int); 510 #endif /* MB */ 511 /* ex_vput.c */ 512 extern void vclear(void); 513 extern void vclrcell(register cell *, register int); 514 extern void vclrlin(int, line *); 515 extern void vclreol(void); 516 extern void vclrech(bool); 517 extern void fixech(void); 518 extern void vcursbef(register char *); 519 extern void vcursat(register char *); 520 extern void vcursaft(register char *); 521 extern void vfixcurs(void); 522 extern void vsetcurs(register char *); 523 extern void vigoto(int, int); 524 extern void vcsync(void); 525 extern void vgotoCL(register int); 526 extern void vigotoCL(register int); 527 extern void vgoto(register int, register int); 528 extern void vgotab(void); 529 extern void vprepins(void); 530 extern void vmaktop(register int, cell *); 531 extern int vinschar(int); 532 extern void vrigid(void); 533 extern void vneedpos(int); 534 extern void vnpins(int); 535 extern void vishft(void); 536 extern void viin(int); 537 extern void godm(void); 538 extern void enddm(void); 539 extern void goim(void); 540 extern void endim(void); 541 extern int vputchar(register int); 542 extern void physdc(int, int); 543 extern int vputch(int); 544 /* ex_vwind.c */ 545 extern void vmoveto(register line *, char *, int); 546 extern void vjumpto(register line *, char *, int); 547 extern void vupdown(register int, char *); 548 extern void vup(register int, register int, int); 549 extern void vdown(register int, register int, int); 550 extern void vcontext(register line *, int); 551 extern void vclean(void); 552 extern void vshow(line *, line *); 553 extern void vreset(int); 554 extern line *vback(register line *, register int); 555 extern int vfit(register line *, int); 556 extern void vroll(register int); 557 extern void vrollR(register int); 558 extern int vcookit(register int); 559 extern int vdepth(void); 560 extern void vnline(char *); 561 /* malloc.c */ 562 /* mapmalloc.c */ 563 extern char *poolsbrk(intptr_t); 564 /* printf.c */ 565 extern int printf(const char *, ...); 566 extern int vprintf(const char *, va_list); 567 extern char *p_dconv(long, char *); 568