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