1/* Copyright (c) 1993-2002 2 * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) 3 * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) 4 * Copyright (c) 1987 Oliver Laumann 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2, or (at your option) 9 * any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program (see the file COPYING); if not, write to the 18 * Free Software Foundation, Inc., 19 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 20 * 21 **************************************************************** 22 * $Id: extern.h,v 1.18 1994/05/31 12:31:57 mlschroe Exp $ FAU 23 */ 24 25#if !defined(__GNUC__) || __GNUC__ < 2 26#undef __attribute__ 27#define __attribute__(x) 28#endif 29 30/* screen.c */ 31extern int main __P((int, char **)); 32extern sigret_t SigHup __P(SIGPROTOARG); 33extern void eexit __P((int)); 34extern void Detach __P((int)); 35extern void Hangup __P((void)); 36extern void Kill __P((int, int)); 37#ifdef USEVARARGS 38extern void Msg __P((int, char *, ...)) __attribute__((format(printf, 2, 3))); 39extern void Panic __P((int, char *, ...)) __attribute__((format(printf, 2, 3))); 40#else 41extern void Msg __P(()); 42extern void Panic __P(()); 43#endif 44extern void Finit __P((int)); 45extern void MakeNewEnv __P((void)); 46extern char *MakeWinMsg __P((char *, struct win *, int)); 47extern char *MakeWinMsgEv __P((char *, struct win *, int, int, struct event *, int)); 48extern int PutWinMsg __P((char *, int, int)); 49extern void WindowDied __P((struct win *)); 50extern void setbacktick __P((int, int, int, char **)); 51 52/* ansi.c */ 53extern void ResetAnsiState __P((struct win *)); 54extern void ResetWindow __P((struct win *)); 55extern void ResetCharsets __P((struct win *)); 56extern void WriteString __P((struct win *, char *, int)); 57extern void ChangeAKA __P((struct win *, char *, int)); 58extern void SetCharsets __P((struct win *, char *)); 59extern int GetAnsiStatus __P((struct win *, char *)); 60extern void WNewAutoFlow __P((struct win *, int)); 61extern void WBell __P((struct win *, int)); 62extern void WMsg __P((struct win *, int, char *)); 63extern void WChangeSize __P((struct win *, int, int)); 64extern void WindowChanged __P((struct win *, int)); 65extern int MFindUsedLine __P((struct win *, int, int)); 66 67/* fileio.c */ 68extern void StartRc __P((char *)); 69extern void FinishRc __P((char *)); 70extern void RcLine __P((char *, int)); 71extern FILE *secfopen __P((char *, char *)); 72extern int secopen __P((char *, int, int)); 73extern void WriteFile __P((struct acluser *, char *, int)); 74extern char *ReadFile __P((char *, int *)); 75extern void KillBuffers __P((void)); 76extern int printpipe __P((struct win *, char *)); 77extern int readpipe __P((char **)); 78extern void RunBlanker __P((char **)); 79extern void do_source __P((char *)); 80 81/* tty.c */ 82extern int OpenTTY __P((char *, char *)); 83extern void InitTTY __P((struct mode *, int)); 84extern void GetTTY __P((int, struct mode *)); 85extern void SetTTY __P((int, struct mode *)); 86extern void SetMode __P((struct mode *, struct mode *, int, int)); 87extern void SetFlow __P((int)); 88extern void SendBreak __P((struct win *, int, int)); 89extern int TtyGrabConsole __P((int, int, char *)); 90extern char *TtyGetModemStatus __P((int, char *)); 91#ifdef DEBUG 92extern void DebugTTY __P((struct mode *)); 93#endif /* DEBUG */ 94extern int fgtty __P((int)); 95extern void brktty __P((int)); 96extern struct baud_values *lookup_baud __P((int bps)); 97extern int SetBaud __P((struct mode *, int, int)); 98extern int SttyMode __P((struct mode *, char *)); 99 100 101/* mark.c */ 102extern int GetHistory __P((void)); 103extern void MarkRoutine __P((void)); 104extern void revto_line __P((int, int, int)); 105extern void revto __P((int, int)); 106extern int InMark __P((void)); 107extern void MakePaster __P((struct paster *, char *, int, int)); 108extern void FreePaster __P((struct paster *)); 109 110/* search.c */ 111extern void Search __P((int)); 112extern void ISearch __P((int)); 113 114/* input.c */ 115extern void inp_setprompt __P((char *, char *)); 116extern void Input __P((char *, int, int, void (*)(char *, int, char *), char *)); 117extern int InInput __P((void)); 118 119/* help.c */ 120extern void exit_with_usage __P((char *, char *, char *)); 121extern void display_help __P((char *, struct action *)); 122extern void display_copyright __P((void)); 123extern void display_displays __P((void)); 124extern void display_bindkey __P((char *, struct action *)); 125extern void display_wlist __P((int, int)); 126extern int InWList __P((void)); 127extern void WListUpdatecv __P((struct canvas *, struct win *)); 128extern void WListLinkChanged __P((void)); 129#ifdef ZMODEM 130extern void ZmodemPage __P((void)); 131#endif 132 133/* window.c */ 134extern int MakeWindow __P((struct NewWindow *)); 135extern int RemakeWindow __P((struct win *)); 136extern void FreeWindow __P((struct win *)); 137#ifdef PSEUDOS 138extern int winexec __P((char **)); 139extern void FreePseudowin __P((struct win *)); 140#endif 141extern void nwin_compose __P((struct NewWindow *, struct NewWindow *, struct NewWindow *)); 142extern int DoStartLog __P((struct win *, char *, int)); 143extern int ReleaseAutoWritelock __P((struct display *, struct win *)); 144extern int ObtainAutoWritelock __P((struct display *, struct win *)); 145extern void CloseDevice __P((struct win *)); 146#ifdef ZMODEM 147extern void zmodem_abort __P((struct win *, struct display *)); 148#endif 149extern void execvpe __P((char *, char **, char **)); 150 151/* utmp.c */ 152#ifdef UTMPOK 153extern void InitUtmp __P((void)); 154extern void RemoveLoginSlot __P((void)); 155extern void RestoreLoginSlot __P((void)); 156extern int SetUtmp __P((struct win *)); 157extern int RemoveUtmp __P((struct win *)); 158#endif /* UTMPOK */ 159extern void SlotToggle __P((int)); 160#ifdef USRLIMIT 161extern int CountUsers __P((void)); 162#endif 163#ifdef CAREFULUTMP 164extern void CarefulUtmp __P((void)); 165#else 166# define CarefulUtmp() /* nothing */ 167#endif /* CAREFULUTMP */ 168 169 170/* loadav.c */ 171#ifdef LOADAV 172extern void InitLoadav __P((void)); 173extern void AddLoadav __P((char *)); 174#endif 175 176/* pty.c */ 177extern int OpenPTY __P((char **)); 178extern void InitPTY __P((int)); 179 180/* process.c */ 181extern void InitKeytab __P((void)); 182extern void ProcessInput __P((char *, int)); 183#ifdef MAPKEYS 184extern void ProcessInput2 __P((char *, int)); 185#endif 186extern void DoProcess __P((struct win *, char **, int *, struct paster *)); 187extern void DoAction __P((struct action *, int)); 188extern int FindCommnr __P((char *)); 189extern void DoCommand __P((char **, int *)); 190extern void Activate __P((int)); 191extern void KillWindow __P((struct win *)); 192extern void SetForeWindow __P((struct win *)); 193extern int Parse __P((char *, int, char **, int *)); 194extern void SetEscape __P((struct acluser *, int, int)); 195extern void DoScreen __P((char *, char **)); 196extern int IsNumColon __P((char *, int, char *, int)); 197extern void ShowWindows __P((int)); 198extern char *AddWindows __P((char *, int, int, int)); 199extern char *AddWindowFlags __P((char *, int, struct win *)); 200extern char *AddOtherUsers __P((char *, int, struct win *)); 201extern int WindowByNoN __P((char *)); 202extern struct win *FindNiceWindow __P((struct win *, char *)); 203#ifdef COPY_PASTE 204extern int CompileKeys __P((char *, int, unsigned char *)); 205#endif 206#ifdef RXVT_OSC 207extern void RefreshXtermOSC __P((void)); 208#endif 209extern int ParseSaveStr __P((struct action *act, char **)); 210extern int ParseNum __P((struct action *act, int *)); 211extern int ParseSwitch __P((struct action *, int *)); 212extern int ParseAttrColor __P((char *, char *, int)); 213extern void ApplyAttrColor __P((int, struct mchar *)); 214extern void SwitchWindow __P((int)); 215extern int StuffKey __P((int)); 216 217/* termcap.c */ 218extern int InitTermcap __P((int, int)); 219extern char *MakeTermcap __P((int)); 220extern char *gettermcapstring __P((char *)); 221#ifdef MAPKEYS 222extern int remap __P((int, int)); 223extern void CheckEscape __P((void)); 224#endif 225extern int CreateTransTable __P((char *)); 226extern void FreeTransTable __P((void)); 227 228/* attacher.c */ 229extern int Attach __P((int)); 230extern void Attacher __P((void)); 231extern sigret_t AttacherFinit __P(SIGPROTOARG); 232extern void SendCmdMessage __P((char *, char *, char **)); 233 234/* display.c */ 235extern struct display *MakeDisplay __P((char *, char *, char *, int, int, struct mode *)); 236extern void FreeDisplay __P((void)); 237extern void DefProcess __P((char **, int *)); 238extern void DefRedisplayLine __P((int, int, int, int)); 239extern void DefClearLine __P((int, int, int, int)); 240extern int DefRewrite __P((int, int, int, struct mchar *, int)); 241extern int DefResize __P((int, int)); 242extern void DefRestore __P((void)); 243extern void AddCStr __P((char *)); 244extern void AddCStr2 __P((char *, int)); 245extern void InitTerm __P((int)); 246extern void FinitTerm __P((void)); 247extern void PUTCHAR __P((int)); 248extern void PUTCHARLP __P((int)); 249extern void ClearAll __P((void)); 250extern void ClearArea __P((int, int, int, int, int, int, int, int)); 251extern void ClearLine __P((struct mline *, int, int, int, int)); 252extern void RefreshAll __P((int)); 253extern void RefreshArea __P((int, int, int, int, int)); 254extern void RefreshLine __P((int, int, int, int)); 255extern void Redisplay __P((int)); 256extern void RedisplayDisplays __P((int)); 257extern void ShowHStatus __P((char *)); 258extern void RefreshHStatus __P((void)); 259extern void DisplayLine __P((struct mline *, struct mline *, int, int, int)); 260extern void GotoPos __P((int, int)); 261extern int CalcCost __P((char *)); 262extern void ScrollH __P((int, int, int, int, int, struct mline *)); 263extern void ScrollV __P((int, int, int, int, int, int)); 264extern void PutChar __P((struct mchar *, int, int)); 265extern void InsChar __P((struct mchar *, int, int, int, struct mline *)); 266extern void WrapChar __P((struct mchar *, int, int, int, int, int, int, int)); 267extern void ChangeScrollRegion __P((int, int)); 268extern void InsertMode __P((int)); 269extern void KeypadMode __P((int)); 270extern void CursorkeysMode __P((int)); 271extern void ReverseVideo __P((int)); 272extern void CursorVisibility __P((int)); 273extern void MouseMode __P((int)); 274extern void SetFont __P((int)); 275extern void SetAttr __P((int)); 276extern void SetColor __P((int, int)); 277extern void SetRendition __P((struct mchar *)); 278extern void SetRenditionMline __P((struct mline *, int)); 279extern void MakeStatus __P((char *)); 280extern void RemoveStatus __P((void)); 281extern int ResizeDisplay __P((int, int)); 282extern void AddStr __P((char *)); 283extern void AddStrn __P((char *, int)); 284extern void Flush __P((void)); 285extern void freetty __P((void)); 286extern void Resize_obuf __P((void)); 287#ifdef AUTO_NUKE 288extern void NukePending __P((void)); 289#endif 290extern void SetCanvasWindow __P((struct canvas *, struct win *)); 291extern int MakeDefaultCanvas __P((void)); 292extern int AddCanvas __P((void)); 293extern void RemCanvas __P((void)); 294extern void OneCanvas __P((void)); 295extern int RethinkDisplayViewports __P((void)); 296extern void RethinkViewportOffsets __P((struct canvas *)); 297#ifdef RXVT_OSC 298extern void ClearAllXtermOSC __P((void)); 299extern void SetXtermOSC __P((int, char *)); 300#endif 301#ifdef COLOR 302extern int color256to16 __P((int)); 303# ifdef COLORS256 304extern int color256to88 __P((int)); 305# endif 306#endif 307extern void ResetIdle __P((void)); 308extern void KillBlanker __P((void)); 309extern void DisplaySleep1000 __P((int, int)); 310 311/* resize.c */ 312extern int ChangeWindowSize __P((struct win *, int, int, int)); 313extern void ChangeScreenSize __P((int, int, int)); 314extern void CheckScreenSize __P((int)); 315extern char *xrealloc __P((char *, int)); 316extern void ResizeLayersToCanvases __P((void)); 317extern void ResizeLayer __P((struct layer *, int, int, struct display *)); 318extern int MayResizeLayer __P((struct layer *)); 319extern void FreeAltScreen __P((struct win *)); 320extern void EnterAltScreen __P((struct win *)); 321extern void LeaveAltScreen __P((struct win *)); 322 323/* sched.c */ 324extern void evenq __P((struct event *)); 325extern void evdeq __P((struct event *)); 326extern void SetTimeout __P((struct event *, int)); 327extern void sched __P((void)); 328 329/* socket.c */ 330extern int FindSocket __P((int *, int *, int *, char *)); 331extern int MakeClientSocket __P((int)); 332extern int MakeServerSocket __P((void)); 333extern int RecoverSocket __P((void)); 334extern int chsock __P((void)); 335extern void ReceiveMsg __P((void)); 336extern void SendCreateMsg __P((char *, struct NewWindow *)); 337extern int SendErrorMsg __P((char *, char *)); 338 339/* misc.c */ 340extern char *SaveStr __P((const char *)); 341extern char *SaveStrn __P((const char *, int)); 342extern char *InStr __P((char *, const char *)); 343#ifndef HAVE_STRERROR 344extern char *strerror __P((int)); 345#endif 346extern void centerline __P((char *, int)); 347extern void leftline __P((char *, int)); 348extern char *Filename __P((char *)); 349extern char *stripdev __P((char *)); 350#ifdef NEED_OWN_BCOPY 351extern void xbcopy __P((char *, char *, int)); 352#endif 353extern void bclear __P((char *, int)); 354extern void closeallfiles __P((int)); 355extern int UserContext __P((void)); 356extern void UserReturn __P((int)); 357extern int UserStatus __P((void)); 358#if defined(POSIX) || defined(hpux) 359extern void (*xsignal __P((int, void (*)SIGPROTOARG))) __P(SIGPROTOARG); 360#endif 361#ifndef HAVE_RENAME 362extern int rename __P((char *, char *)); 363#endif 364#if defined(HAVE_SETEUID) || defined(HAVE_SETREUID) 365extern void xseteuid __P((int)); 366extern void xsetegid __P((int)); 367#endif 368extern int AddXChar __P((char *, int)); 369extern int AddXChars __P((char *, int, char *)); 370extern void xsetenv __P((char *, char *)); 371extern void sleep1000 __P((int)); 372#ifdef DEBUG 373extern void opendebug __P((int, int)); 374#endif 375#ifdef USEVARARGS 376# ifndef HAVE_VSNPRINTF 377extern int xvsnprintf __P((char *, int, char *, va_list)); 378# endif 379#else 380extern int xsnprintf __P(()); 381#endif 382 383 384/* acl.c */ 385#ifdef MULTIUSER 386extern int AclCheckPermWin __P((struct acluser *, int, struct win *)); 387extern int AclCheckPermCmd __P((struct acluser *, int, struct comm *)); 388extern int AclSetPerm __P((struct acluser *, struct acluser *, char *, char *)); 389extern int AclUmask __P((struct acluser *, char *, char **)); 390extern int UsersAcl __P((struct acluser *, int, char **)); 391extern void AclWinSwap __P((int, int)); 392extern int NewWindowAcl __P((struct win *, struct acluser *)); 393extern void FreeWindowAcl __P((struct win *)); 394extern char *DoSu __P((struct acluser **, char *, char *, char *)); 395extern int AclLinkUser __P((char *, char *)); 396#endif /* MULTIUSER */ 397extern int UserFreeCopyBuffer __P((struct acluser *)); 398extern struct acluser **FindUserPtr __P((char *)); 399extern int UserAdd __P((char *, char *, struct acluser **)); 400extern int UserDel __P((char *, struct acluser **)); 401 402 403/* braile.c */ 404#ifdef HAVE_BRAILLE 405extern void InitBraille __P((void)); 406extern void RefreshBraille __P((void)); 407extern void DoBrailleAction __P((struct action *, int)); 408extern void BGotoPos __P((struct layer *, int, int)); 409extern void BPutChar __P((struct layer *, struct mchar *, int, int)); 410extern void BPutStr __P((struct layer *, char *, int, struct mchar *, int, int)); 411extern void BCDisplayLine __P((struct layer *, struct mline *, int, int, int, int)); 412#endif 413 414 415 416 417/* layer.c */ 418extern void LGotoPos __P((struct layer *, int, int)); 419extern void LPutChar __P((struct layer *, struct mchar *, int, int)); 420extern void LInsChar __P((struct layer *, struct mchar *, int, int, struct mline *)); 421extern void LPutStr __P((struct layer *, char *, int, struct mchar *, int, int)); 422extern void LPutWinMsg __P((struct layer *, char *, int, struct mchar *, int, int)); 423extern void LScrollH __P((struct layer *, int, int, int, int, int, struct mline *)); 424extern void LScrollV __P((struct layer *, int, int, int, int)); 425extern void LClearAll __P((struct layer *, int)); 426extern void LClearArea __P((struct layer *, int, int, int, int, int, int)); 427extern void LClearLine __P((struct layer *, int, int, int, int, struct mline *)); 428extern void LRefreshAll __P((struct layer *, int)); 429extern void LCDisplayLine __P((struct layer *, struct mline *, int, int, int, int)); 430extern void LCDisplayLineWrap __P((struct layer *, struct mline *, int, int, int, int)); 431extern void LSetRendition __P((struct layer *, struct mchar *)); 432extern void LWrapChar __P((struct layer *, struct mchar *, int, int, int, int)); 433extern void LCursorVisibility __P((struct layer *, int)); 434extern void LSetFlow __P((struct layer *, int)); 435extern void LKeypadMode __P((struct layer *, int)); 436extern void LCursorkeysMode __P((struct layer *, int)); 437extern void LMouseMode __P((struct layer *, int)); 438#ifdef USEVARARGS 439extern void LMsg __P((int, char *, ...)) __attribute__((format(printf, 2, 3))); 440#else 441extern void LMsg __P(()); 442#endif 443extern void KillLayerChain __P((struct layer *)); 444extern int InitOverlayPage __P((int, struct LayFuncs *, int)); 445extern void ExitOverlayPage __P((void)); 446 447/* teln.c */ 448#ifdef BUILTIN_TELNET 449extern int TelOpen __P((char **)); 450extern int TelConnect __P((struct win *)); 451extern int TelIsline __P((struct win *p)); 452extern void TelProcessLine __P((char **, int *)); 453extern int DoTelnet __P((char *, int *, int)); 454extern int TelIn __P((struct win *, char *, int, int)); 455extern void TelBreak __P((struct win *)); 456extern void TelWindowSize __P((struct win *)); 457extern void TelStatus __P((struct win *, char *, int)); 458#endif 459 460/* nethack.c */ 461extern char *DoNLS __P((char *)); 462 463/* encoding.c */ 464#ifdef ENCODINGS 465# ifdef UTF8 466extern void InitBuiltinTabs __P((void)); 467extern struct mchar *recode_mchar __P((struct mchar *, int, int)); 468extern struct mline *recode_mline __P((struct mline *, int, int, int)); 469extern int FromUtf8 __P((int, int *)); 470extern void AddUtf8 __P((int)); 471extern int ToUtf8 __P((char *, int)); 472extern int ToUtf8_comb __P((char *, int)); 473extern int utf8_isdouble __P((int)); 474extern int utf8_iscomb __P((int)); 475extern void utf8_handle_comb __P((int, struct mchar *)); 476extern int ContainsSpecialDeffont __P((struct mline *, int, int, int)); 477extern int LoadFontTranslation __P((int, char *)); 478extern void LoadFontTranslationsForEncoding __P((int)); 479# endif /* UTF8 */ 480extern void WinSwitchEncoding __P((struct win *, int)); 481extern int FindEncoding __P((char *)); 482extern char *EncodingName __P((int)); 483extern int EncodingDefFont __P((int)); 484extern void ResetEncoding __P((struct win *)); 485extern int CanEncodeFont __P((int, int)); 486extern int DecodeChar __P((int, int, int *)); 487extern int RecodeBuf __P((unsigned char *, int, int, int, unsigned char *)); 488# ifdef DW_CHARS 489extern int PrepareEncodedChar __P((int)); 490# endif 491#endif 492extern int EncodeChar __P((char *, int, int, int *)); 493