1/* { dg-do compile } */ 2 3typedef struct { char Vshow; } TScreen; 4typedef struct _Misc { char Tshow; } Misc; 5typedef struct _XtermWidgetRec { TScreen screen; Misc misc; } XtermWidgetRec, *XtermWidget; 6extern XtermWidget term; 7void Bell (XtermWidget, int, int); 8void set_tek_visibility (int); 9 10void 11handle_tekshow (void *gw, int allowswitch) 12{ 13 XtermWidget xw = term; 14 if (!((xw)->misc.Tshow)) 15 set_tek_visibility (1); 16} 17 18void 19do_tekonoff (void *gw, void *closure, void *data) 20{ 21 handle_tekshow (gw, 0); 22} 23 24void 25do_vtonoff (void *gw, void *closure, void *data) 26{ 27} 28 29void 30handle_toggle (void (*proc) (void *gw, void *closure, void *data), 31 int var, char **params, unsigned int nparams, void *w, 32 void *closure, void *data) 33{ 34 XtermWidget xw = term; 35 int dir = -2; 36 switch (nparams) 37 { 38 case 0: 39 dir = -1; 40 } 41 switch (dir) 42 { 43 case 1: 44 (*proc) (w, closure, data); 45 Bell (xw, 2, 0); 46 } 47} 48 49void 50HandleVisibility (void *w, char **params, unsigned int *param_count) 51{ 52 XtermWidget xw = term; 53 if (*param_count == 2) 54 switch (params[0][0]) 55 { 56 case 'v': 57 handle_toggle (do_vtonoff, (int) ((int) (&(xw)->screen)->Vshow), 58 params + 1, (*param_count) - 1, w, (void *) 0, 59 (void *) 0); 60 handle_toggle (do_tekonoff, (int) ((int) ((xw)->misc.Tshow)), 61 params + 1, (*param_count) - 1, w, (void *) 0, 62 (void *) 0); 63 } 64} 65