2 * declarations common to
4 * - gui-plan-* displayers
15 typedef struct CommandInput CommandInput;
17 /*---------- from obc.c ----------*/
19 typedef struct OutBuffer OutBuffer;
20 typedef struct OutBufferChain OutBufferChain;
21 typedef void OutBufferError(OutBufferChain*, const char *e1, const char *e2
22 /* on error: both e1 and e2 non-0. say `$e1: $e2'
23 * on eof: both e1 and e2 =0. */);
24 typedef void OutBufferEmpty(OutBufferChain*);
26 typedef void CopyCallBack(char *m, size_t l, void *u);
28 struct OutBufferChain {
32 int limit; /* 0 means obc_init will set a default */
33 OutBufferError *error;
34 OutBufferEmpty *empty; /* may be 0 */
35 /* set/used by obc_..., oprintf, etc., only */
36 int done_of_head, total;
37 struct { OutBuffer *head, *tail; } obs;
40 void obc_init(OutBufferChain *ch);
41 void obc_init_core(OutBufferChain *ch); /* doesn't mess with fd */
42 int obc_tryflush(OutBufferChain *ch);
43 /* returns 0 for all flushed or errno, including particularly EWOULDBLOCK */
45 void ovprintf_ccb(OutBufferChain *ch, CopyCallBack *ccb, void *ccbu,
46 const char *fmt, va_list al)
47 __attribute__((format(printf,4,0)));
48 void ovprintf(OutBufferChain *ch, const char *fmt, va_list al)
49 __attribute__((format(printf,2,0)));
50 void oprintf(OutBufferChain *ch, const char *msg, ...)
51 __attribute__((format(printf,2,3)));
52 void owrite(OutBufferChain *ch, const char *data, int l);
53 void voerror(OutBufferChain *ch, const char *fmt, va_list al)
54 __attribute__((format(printf,2,0)));
56 /*---------- from cmdinput.c ----------*/
58 extern oop_source *events;
60 typedef void CommandInputCallback(ParseState *ps, CommandInput *cmdi);
64 CommandInputCallback *doline;
68 void cmdin_new(CommandInput *cmdi, int readfd);
69 /* fill in cmdi->out's `set by user' fields before calling cmdin_new,
70 * as cmdin_new will call obc_init and will use cmdi->out->fd. */