diff options
Diffstat (limited to 'zwgc')
-rw-r--r-- | zwgc/X_driver.c | 46 | ||||
-rw-r--r-- | zwgc/X_driver.h | 4 | ||||
-rw-r--r-- | zwgc/X_gram.c | 12 | ||||
-rw-r--r-- | zwgc/file.c | 4 | ||||
-rw-r--r-- | zwgc/formatter.c | 3 | ||||
-rw-r--r-- | zwgc/lexer.c | 2 | ||||
-rw-r--r-- | zwgc/main.c | 19 | ||||
-rw-r--r-- | zwgc/new_string.c | 4 | ||||
-rw-r--r-- | zwgc/notice.c | 13 | ||||
-rw-r--r-- | zwgc/plus.c | 15 | ||||
-rw-r--r-- | zwgc/plus.h | 2 | ||||
-rw-r--r-- | zwgc/standard_ports.c | 20 | ||||
-rw-r--r-- | zwgc/string_dictionary_aux.c | 1 | ||||
-rw-r--r-- | zwgc/subscriptions.c | 8 | ||||
-rw-r--r-- | zwgc/tty_filter.c | 1 | ||||
-rw-r--r-- | zwgc/tty_filter.h | 2 | ||||
-rw-r--r-- | zwgc/xcut.c | 24 | ||||
-rw-r--r-- | zwgc/xerror.c | 1 | ||||
-rw-r--r-- | zwgc/xmark.c | 23 | ||||
-rw-r--r-- | zwgc/xrevstack.c | 1 | ||||
-rw-r--r-- | zwgc/xselect.c | 19 | ||||
-rw-r--r-- | zwgc/xshow.c | 35 | ||||
-rw-r--r-- | zwgc/zephyr.c | 22 |
23 files changed, 155 insertions, 126 deletions
diff --git a/zwgc/X_driver.c b/zwgc/X_driver.c index 51c8ea0..374b9fd 100644 --- a/zwgc/X_driver.c +++ b/zwgc/X_driver.c @@ -44,10 +44,10 @@ static const char rcsid_X_driver_c[] = "$Id$"; char *app_instance; /* - * dpy - the display we are outputting to + * x_dpy - the display we are outputting to */ -Display *dpy = NULL; +Display *x_dpy = NULL; /****************************************************************************/ /* */ @@ -184,10 +184,11 @@ x_string_to_color(char *name, if (exists) { return((unsigned long) binding->value); } else { - if (XParseColor(dpy,DefaultColormapOfScreen(DefaultScreenOfDisplay(dpy)), + if (XParseColor(x_dpy, + DefaultColormapOfScreen(DefaultScreenOfDisplay(x_dpy)), name,&xc)) { - if (XAllocColor(dpy, - DefaultColormapOfScreen(DefaultScreenOfDisplay(dpy)), + if (XAllocColor(x_dpy, + DefaultColormapOfScreen(DefaultScreenOfDisplay(x_dpy)), &xc)) { binding->value = (unsigned long) xc.pixel; return(xc.pixel); @@ -242,7 +243,7 @@ static XrmOptionDescRec cmd_options[] = { * */ -int +static int open_display_and_load_resources(int *pargc, char **argv) { @@ -264,8 +265,8 @@ open_display_and_load_resources(int *pargc, * Try and open the display using the display specified if given. * If can't open the display, return an error code. */ - dpy = XOpenDisplay(get_string_resource("display", "display")); - if (!dpy) + x_dpy = XOpenDisplay(get_string_resource("display", "display")); + if (!x_dpy) return(1); /* Read in our application-specific resources: */ @@ -275,7 +276,7 @@ open_display_and_load_resources(int *pargc, /* * Get resources from the just opened display: */ - xdef = XResourceManagerString(dpy); + xdef = XResourceManagerString(x_dpy); if (xdef) temp_db2 = XrmGetStringDatabase(xdef); else @@ -291,7 +292,7 @@ open_display_and_load_resources(int *pargc, #if XlibSpecificationRelease > 4 /* X11 R5 per-screen resources */ - res = XScreenResourceString (DefaultScreenOfDisplay (dpy)); + res = XScreenResourceString (DefaultScreenOfDisplay (x_dpy)); if (res != NULL) XrmMergeDatabases(XrmGetStringDatabase(res), &temp_db1); #endif @@ -322,12 +323,13 @@ open_display_and_load_resources(int *pargc, * */ -int +static int X_driver_ioerror(Display *display) { ERROR2("X IO error on display '%s'--exiting\n", DisplayString(display)); finalize_zephyr(); exit(1); + return 1; } /****************************************************************************/ /* */ @@ -343,7 +345,7 @@ X_driver_init(char *drivername, char **argv) { string temp; - int sync; + int is_sync; /* * Attempt to open display and read resources, including from the @@ -360,9 +362,9 @@ X_driver_init(char *drivername, /* * For now, set some useful variables using resources: */ - sync = get_bool_resource("synchronous", "Synchronous", 0); - if (sync) - XSynchronize(dpy, sync); + is_sync = get_bool_resource("synchronous", "Synchronous", 0); + if (is_sync) + XSynchronize(x_dpy, is_sync); temp = get_string_resource("geometry", "Geometry"); if (temp) var_set_variable("default_X_geometry", temp); @@ -374,19 +376,15 @@ X_driver_init(char *drivername, color_dict = unsigned_long_dictionary_Create(37); xshowinit(); - x_gram_init(dpy); - xicccmInitAtoms(dpy); + x_gram_init(x_dpy); + xicccmInitAtoms(x_dpy); - mux_add_input_source(ConnectionNumber(dpy), (void(*)(void *))x_get_input, dpy); + mux_add_input_source(ConnectionNumber(x_dpy), + (void(*)(void *))x_get_input, x_dpy); return(0); } -void -X_driver_reset(void) -{ -} - /****************************************************************************/ /* */ /* The display routine itself: */ @@ -403,7 +401,7 @@ X_driver(string text) text_copy = string_Copy(text); desc = disp_get_cmds(text_copy, &numstr, &numnl); - xshow(dpy, desc, numstr, numnl); + xshow(x_dpy, desc, numstr, numnl); free(text_copy); free_desc(desc); diff --git a/zwgc/X_driver.h b/zwgc/X_driver.h index b32562e..7a77b91 100644 --- a/zwgc/X_driver.h +++ b/zwgc/X_driver.h @@ -21,8 +21,10 @@ #include "new_string.h" -extern Display *dpy; +extern Display *x_dpy; +extern char *X_driver(string); +extern int X_driver_init(char *, char, int *, char **); extern char *get_string_resource(string, string); extern int get_bool_resource(string, string, int); extern unsigned long x_string_to_color(char *, unsigned long); diff --git a/zwgc/X_gram.c b/zwgc/X_gram.c index 998d087..bd80dde 100644 --- a/zwgc/X_gram.c +++ b/zwgc/X_gram.c @@ -91,17 +91,17 @@ static Atom net_wm_window_type_utility = None; */ /*ARGSUSED*/ -void +static void x_set_icccm_hints(Display *dpy, Window w, char *name, - char *icon_name, + char *wm_icon_name, XSizeHints *psizehints, XWMHints *pwmhints, Window main_window) { XStoreName(dpy,w,name); - XSetIconName(dpy,w,icon_name); + XSetIconName(dpy,w,wm_icon_name); XSetWMNormalHints(dpy,w,psizehints); XSetWMHints(dpy,w,pwmhints); XSetClassHint(dpy,w,&classhint); @@ -279,7 +279,7 @@ x_gram_init(Display *dpy) } } -int +static int x_calc_gravity(int xalign, int yalign) { @@ -424,7 +424,7 @@ SetFG(Display *dpy, GC gc, unsigned long foreground) { XChangeGC(dpy, gc, GCForeground, &gcvals); } -void +static void x_gram_draw(Display *dpy, Window w, x_gram *gram, Region region) { int i; @@ -509,7 +509,7 @@ x_gram_draw(Display *dpy, Window w, x_gram *gram, Region region) #ifdef X_HAVE_UTF8_STRING text.chars = xb->wstr; #else - text.chars = (XChar2b *)xb->wstr; + text.chars = (wchar_t *)xb->wstr; #endif text.nchars = xb->wlen; text.delta = 0; diff --git a/zwgc/file.c b/zwgc/file.c index b448e5c..8d5bdd0 100644 --- a/zwgc/file.c +++ b/zwgc/file.c @@ -23,6 +23,7 @@ static const char rcsid_file_c[] = "$Id$"; #include "new_memory.h" #include "new_string.h" #include "error.h" +#include "file.h" /* * char *get_home_directory() @@ -38,7 +39,8 @@ static const char rcsid_file_c[] = "$Id$"; * if necessary. */ -char *get_home_directory(void) +static char +*get_home_directory(void) { char *result; struct passwd *passwd_entry; diff --git a/zwgc/formatter.c b/zwgc/formatter.c index f5d3c87..65ac5c3 100644 --- a/zwgc/formatter.c +++ b/zwgc/formatter.c @@ -235,7 +235,8 @@ verbatim(string str, int bracketsonly) char *temp,*temp2; int bracketnum,len; - if (strlen(str) == pure_text_length(str,0)) { + len = strlen(str); + if (len == pure_text_length(str,0)) { /* No environments, so consider the fast-and-easy methods */ if (not_contains(str,allbracket_set)) { diff --git a/zwgc/lexer.c b/zwgc/lexer.c index e821eb9..f59cdb8 100644 --- a/zwgc/lexer.c +++ b/zwgc/lexer.c @@ -186,7 +186,7 @@ lex_open(FILE *file) * Initialize keyword_dict from keywords if needed: */ if (!keyword_dict) { - int i; + unsigned int i; keyword_dict = int_dictionary_Create(101); diff --git a/zwgc/main.c b/zwgc/main.c index 7383f09..7986242 100644 --- a/zwgc/main.c +++ b/zwgc/main.c @@ -223,20 +223,20 @@ run_initprogs(void) */ int status; - char *progname = ZGetVariable("initprogs"); + char *iprogname = ZGetVariable("initprogs"); - if (!progname) + if (!iprogname) return; - status = system(progname); + status = system(iprogname); if (status == 127) { perror("zwgc initprog exec"); fprintf(stderr,"zwgc initprog of <%s> failed: no shell.\n", - progname); + iprogname); } else if (status!=-1 && status>>8) { perror("zwgc initprog exec"); fprintf(stderr,"zwgc initprog of <%s> failed with status [%d].\n", - progname, status>>8); + iprogname, status>>8); } } @@ -359,11 +359,10 @@ main(int argc, char **argv) extern int_dictionary puntable_addresses_dict; ZNotice_t punt_reply; -void -create_punt_reply(int_dictionary_binding *punt) +static void +create_punt_reply(int_dictionary_binding *punt_ent) { - string binding; - int key_len = strlen(punt->key); + int key_len = strlen(punt_ent->key); char *tmp; if (!punt_reply.z_message) { @@ -382,7 +381,7 @@ create_punt_reply(int_dictionary_binding *punt) punt_reply.z_message = new_message; } tmp = punt_reply.z_message + strlen(punt_reply.z_message); - strcat (punt_reply.z_message, punt->key); + strcat (punt_reply.z_message, punt_ent->key); strcat (punt_reply.z_message, "\n"); punt_reply.z_message_len += key_len + 1; diff --git a/zwgc/new_string.c b/zwgc/new_string.c index 906a2b9..4d95244 100644 --- a/zwgc/new_string.c +++ b/zwgc/new_string.c @@ -12,6 +12,7 @@ */ #include <sysdep.h> +#include "new_string.h" #if (!defined(lint) && !defined(SABER)) static const char rcsid_new_string_c[] = "$Id$"; @@ -43,9 +44,6 @@ static const char rcsid_new_string_c[] = "$Id$"; #include "new_memory.h" -#define string_Length(s) strlen(s) -typedef char *string; - /* * string string_CreateFromData(char *data, int length): * Requires: data[0], data[1], ..., data[length-1] != 0 diff --git a/zwgc/notice.c b/zwgc/notice.c index 47a58ac..21d0676 100644 --- a/zwgc/notice.c +++ b/zwgc/notice.c @@ -257,10 +257,7 @@ decode_notice(ZNotice_t *notice, char *hostname) { char *temp; - string time, notyear, year, date_string, time_string; -#ifdef CMU_ZWGCPLUS - extern char *getSelectedText(); -#endif + string when, notyear, year, date_string, time_string; /* * Convert useful notice fields to ascii and store away in @@ -319,12 +316,12 @@ decode_notice(ZNotice_t *notice, /* the fields of struct timeval might not be the right type to pass to ctime, so use a temporary */ time_t sec = notice->z_time.tv_sec; - time = ctime(&sec); + when = ctime(&sec); } - time_string = string_CreateFromData(time+11,8); + time_string = string_CreateFromData(when+11,8); var_set_variable_then_free_value("time", time_string); - date_string = string_Concat(notyear=string_CreateFromData(time,11), - year=string_CreateFromData(time+20,4)); + date_string = string_Concat(notyear=string_CreateFromData(when,11), + year=string_CreateFromData(when+20,4)); var_set_variable_then_free_value("date", date_string); free(notyear); free(year); diff --git a/zwgc/plus.c b/zwgc/plus.c index d9860b1..761109c 100644 --- a/zwgc/plus.c +++ b/zwgc/plus.c @@ -56,7 +56,7 @@ TimeNode *timeq_head = NULL; int list_hash_fun(ZNotice_t *notice); -TimeNode * +static TimeNode * addtimenode(TimeNode *head, TimeNode *node) { if(head == NULL) { @@ -79,7 +79,7 @@ addtimenode(TimeNode *head, TimeNode *node) return head; } -void +static void handle_timeq_event(TimeNode *event) { char buf[128]; @@ -112,7 +112,7 @@ handle_timeq_event(TimeNode *event) #endif } -void +static void schedule_event(long secs, char *name, ZNotice_t *notice) { time_t eventtime = (time(NULL)) + secs; @@ -146,7 +146,7 @@ schedule_event(long secs, char *name, ZNotice_t *notice) #endif } -void +static void free_timenode(TimeNode *node) { #ifdef DEBUG_TIMEQUEUE @@ -158,7 +158,7 @@ free_timenode(TimeNode *node) } /* returns the number of notices destroyed */ -int +static int destroy_timeq_notice(ZNotice_t *notice, char *name) { TimeNode *curr = timeq_head; @@ -274,7 +274,7 @@ plus_queue_notice(ZNotice_t *notice) int list_hash_fun(ZNotice_t *notice) { - int ix; + unsigned int ix; int res = 0, val = 1, ptval; char *pt = (char *)(notice); @@ -310,7 +310,8 @@ dump_noticelist(void) for (bx=0; bx<HASHSIZE; bx++) { for (pt=notlist[bx]; pt; pt=pt->next) { - fprintf(stderr, "Not %p: %d [%d]\n", pt->notice, pt->refcount, bx); + fprintf(stderr, "Not %p: %d [%d]\n", (void *)pt->notice, + pt->refcount, bx); } } } diff --git a/zwgc/plus.h b/zwgc/plus.h index f0a39a5..e6e5183 100644 --- a/zwgc/plus.h +++ b/zwgc/plus.h @@ -25,3 +25,5 @@ extern void plus_window_deletions(ZNotice_t *notice); /* actually in xshow.c */ extern void plus_queue_notice(ZNotice_t *notice); extern long plus_timequeue_events(void); void plus_set_hname(ZNotice_t *notice, char *hname); + +extern char *getSelectedText(void); /* actually in xcut.c */ diff --git a/zwgc/standard_ports.c b/zwgc/standard_ports.c index bfbd81a..2d6d685 100644 --- a/zwgc/standard_ports.c +++ b/zwgc/standard_ports.c @@ -31,22 +31,22 @@ static const char rcsid_standard_ports_c[] = "$Id$"; #include "variables.h" #include "error.h" #include "main.h" +#include "tty_filter.h" +#ifndef X_DISPLAY_MISSING +#include "X_driver.h" +#endif + extern char *tty_filter(string, int); extern int tty_filter_init(char *, char, int *, char **); -#ifndef X_DISPLAY_MISSING -extern char *X_driver(string); -extern int X_driver_init(char *, char, int *, char **); -#endif - extern void usage(void); /* * */ -char * +static char * plain_driver(string input) { string processed_input = tty_filter(input, 0); @@ -61,7 +61,7 @@ plain_driver(string input) * */ -char * +static char * tty_driver(string input) { string processed_input = tty_filter(input, 1); @@ -76,7 +76,7 @@ tty_driver(string input) * */ -string +static string noop_filter(string input) { return(input); @@ -86,7 +86,7 @@ noop_filter(string input) * */ -string +static string plain_filter(string input) { return(tty_filter(input, 0)); @@ -96,7 +96,7 @@ plain_filter(string input) * */ -string +static string fancy_filter(string input) { return(tty_filter(input, 1)); diff --git a/zwgc/string_dictionary_aux.c b/zwgc/string_dictionary_aux.c index 5dfd89d..0c2b306 100644 --- a/zwgc/string_dictionary_aux.c +++ b/zwgc/string_dictionary_aux.c @@ -34,6 +34,7 @@ static const char rcsid_string_dictionary_aux_c[] = "$Id$"; #include <sysdep.h> #include "new_memory.h" #include "string_dictionary.h" +#include "string_dictionary_aux.h" /* * void string_dictionary_Set(string_dictionary d, string key,string value): diff --git a/zwgc/subscriptions.c b/zwgc/subscriptions.c index e146554..23b1c3d 100644 --- a/zwgc/subscriptions.c +++ b/zwgc/subscriptions.c @@ -88,16 +88,16 @@ int puntable_address_p(string class, string recipient) { string temp; - int ret; if (!puntable_addresses_dict) init_puntable_dict(); temp = address_to_string(class, instance, recipient); - ret = (int)int_dictionary_Lookup(puntable_addresses_dict, temp); + if (int_dictionary_Lookup(puntable_addresses_dict, temp)) { + free(temp); + return 1; + } free(temp); - if (ret) - return 1;; /* This kludge is to allow punts of wildcard instance to work */ temp = address_to_string(class, "*", recipient); diff --git a/zwgc/tty_filter.c b/zwgc/tty_filter.c index ee2409c..7e4924a 100644 --- a/zwgc/tty_filter.c +++ b/zwgc/tty_filter.c @@ -48,6 +48,7 @@ static const char rcsid_tty_filter_c[] = "$Id$"; #include "formatter.h" #include "zwgc.h" #include "error.h" +#include "tty_filter.h" /***************************************************************************/ #ifndef HAVE_TERMCAP_H diff --git a/zwgc/tty_filter.h b/zwgc/tty_filter.h new file mode 100644 index 0000000..77f0e28 --- /dev/null +++ b/zwgc/tty_filter.h @@ -0,0 +1,2 @@ +extern int tty_filter_init(char *, char, int *, char **); +extern string tty_filter(string, int); diff --git a/zwgc/xcut.c b/zwgc/xcut.c index fea0c27..a5d5b39 100644 --- a/zwgc/xcut.c +++ b/zwgc/xcut.c @@ -91,8 +91,9 @@ x_gram_to_string(x_gram *gram) * */ +#if 0 /*ARGSUSED*/ -Bool +static Bool isShiftButton1(Display *dpy, XEvent *event, char *arg) @@ -101,7 +102,7 @@ isShiftButton1(Display *dpy, } /*ARGSUSED*/ -Bool +static Bool isShiftButton3(Display *dpy, XEvent *event, char *arg) @@ -109,7 +110,7 @@ isShiftButton3(Display *dpy, return(event->xbutton.state & (ShiftMask|Button3Mask)); } -void +static void getLastEvent(Display *dpy, unsigned int state, XEvent *event) @@ -124,16 +125,21 @@ getLastEvent(Display *dpy, *event=xev; } } +#endif -void +static void xunmark(Display *dpy, Window w, x_gram *gram, XContext desc_context) { - if (gram == NULL) - if (XFindContext(dpy, w, desc_context, (XPointer *) &gram)) + XPointer gramp; /* Avoid strict aliasing violation */ + + if (gram == NULL) { + if (XFindContext(dpy, w, desc_context, &gramp)) return; + gram = (x_gram *)gramp; + } xmarkClear(); xmarkRedraw(dpy,w,gram,XMARK_REDRAW_OLD); @@ -198,6 +204,7 @@ xcut(Display *dpy, XEvent *event, XContext desc_context) { + XPointer gramp; /* Avoid strict aliasing violation */ x_gram *gram; Window w = event->xany.window; int changedbound; @@ -206,8 +213,9 @@ xcut(Display *dpy, * If event is for a window that's not ours anymore (say we're * in the process of deleting it...), ignore it: */ - if (XFindContext(dpy, w, desc_context, (XPointer *) &gram)) + if (XFindContext(dpy, w, desc_context, &gramp)) return; + gram = (x_gram *)gramp; /* * Dispatch on the event type: @@ -247,7 +255,7 @@ xcut(Display *dpy, case ClientMessage: if ((event->xclient.message_type == XA_WM_PROTOCOLS) && (event->xclient.format == 32) && - (event->xclient.data.l[0] == XA_WM_DELETE_WINDOW)) + (event->xclient.data.l[0] == (long)XA_WM_DELETE_WINDOW)) xdestroygram(dpy,w,desc_context,gram); break; diff --git a/zwgc/xerror.c b/zwgc/xerror.c index 4a5a0ae..cb934b5 100644 --- a/zwgc/xerror.c +++ b/zwgc/xerror.c @@ -23,6 +23,7 @@ static const char rcsid_xerror_c[] = "$Id$"; #include <X11/Xlib.h> #include "mux.h" +#include "xerror.h" int xerror_happened; diff --git a/zwgc/xmark.c b/zwgc/xmark.c index d67c4f9..d25796b 100644 --- a/zwgc/xmark.c +++ b/zwgc/xmark.c @@ -121,7 +121,7 @@ xmarkSetBound(x_gram *gram, Xutf8TextPerCharExtents(font, xb->wstr, xb->wlen, NULL, NULL, -1, &num_chars, NULL, NULL); #else - XwcTextPerCharExtents(font, (XChar2b *)xb->wstr, xb->wlen, + XwcTextPerCharExtents(font, (wchar_t *)xb->wstr, xb->wlen, NULL, NULL, -1, &num_chars, NULL, NULL); #endif ink = malloc(num_chars * sizeof(XRectangle)); @@ -130,7 +130,7 @@ xmarkSetBound(x_gram *gram, Xutf8TextPerCharExtents(font, xb->wstr, xb->wlen, ink, logical, num_chars, &num_chars, NULL, NULL); #else - XwcTextPerCharExtents(font, (XChar2b *)xb->wstr, xb->wlen, + XwcTextPerCharExtents(font, (wchar_t *)xb->wstr, xb->wlen, ink, logical, num_chars, &num_chars, NULL, NULL); #endif for (i=0;i<num_chars;i++) { @@ -177,7 +177,7 @@ xmarkNearest(int x, } } -void +static void xmarkExpose(Display *dpy, Window w, x_gram *gram, @@ -187,11 +187,12 @@ xmarkExpose(Display *dpy, unsigned int p2) { #define swap(x,y) temp=(x); (x)=(y); (y)=temp - int i,temp; + unsigned int i,temp; XEvent event; #define expose (event.xexpose) - if ((b1==-1) || (p1==-1) || (b2==-1) || (p2==-1)) return; + if (((int)b1==-1) || ((int)p1==-1) || ((int)b2==-1) || ((int)p2==-1)) + return; if ((b1 > b2) || ((b1 == b2) && (p1 > p2))) { swap(b1,b2); @@ -371,7 +372,7 @@ xmarkExtendFromNearest(x_gram *gram, char * xmarkGetText(void) { - int i, index, len; + int i, idx, len; int last_y = -1; string temp; string text_so_far = string_Copy(""); @@ -394,17 +395,17 @@ xmarkGetText(void) for (i=startblock; i<=endblock; i++) { if (last_y != -1 && last_y != markgram->blocks[i].y) text_so_far = string_Concat2(text_so_far, "\n"); - index = markgram->blocks[i].strindex; + idx = markgram->blocks[i].strindex; len = markgram->blocks[i].strlen; if (startblock == endblock) - temp = string_CreateFromData(text+index+startchar, + temp = string_CreateFromData(text+idx+startchar, endchar-startchar); else if (i==startblock) - temp = string_CreateFromData(text+index+startchar,len-startchar); + temp = string_CreateFromData(text+idx+startchar,len-startchar); else if (i==endblock) - temp = string_CreateFromData(text+index,endchar); + temp = string_CreateFromData(text+idx,endchar); else - temp = string_CreateFromData(text+index,len); + temp = string_CreateFromData(text+idx,len); text_so_far = string_Concat2(text_so_far, temp); free(temp); last_y = markgram->blocks[i].y; diff --git a/zwgc/xrevstack.c b/zwgc/xrevstack.c index 12e15ab..d9fc8a0 100644 --- a/zwgc/xrevstack.c +++ b/zwgc/xrevstack.c @@ -24,6 +24,7 @@ static const char rcsid_xrevstack_c[] = "$Id$"; #ifndef TRUEREVSTACK #include <zephyr/zephyr.h> #include "X_gram.h" +#include "xrevstack.h" x_gram *bottom_gram = NULL; x_gram *unlinked = NULL; diff --git a/zwgc/xselect.c b/zwgc/xselect.c index 2192182..89f594d 100644 --- a/zwgc/xselect.c +++ b/zwgc/xselect.c @@ -96,17 +96,18 @@ xselSetProperties(Display *dpy, } else if (target==ZA_MULTIPLE) { Atom atype; int aformat; + unsigned char *alistp; /* Avoid strict aliasing violation, we hope */ Atom *alist; unsigned long alistsize,i; XGetWindowProperty(dpy,w,property,0L,0L,False,ZA_ATOM_PAIR,&atype, - &aformat,&i,&alistsize,(unsigned char **) &alist); + &aformat,&i,&alistsize,&alistp); if (alistsize) XGetWindowProperty(dpy,w,property,0L,alistsize/sizeof(Atom),False, - ZA_ATOM_PAIR,&atype,&aformat,&alistsize,&i, - (unsigned char **) &alist); + ZA_ATOM_PAIR,&atype,&aformat,&alistsize,&i, &alistp); + alist = (Atom *)alistp; alistsize/=(sizeof(Atom)/4); for (i=0;i<alistsize;i+=2) xselSetProperties(dpy,w,alist[i+1],alist[i],selreq); @@ -141,7 +142,7 @@ xselSetProperties(Display *dpy, void xicccmInitAtoms(Display *dpy) { - int i; + unsigned int i; for (i=0;i<NumZAtoms;i++) *(ZAtom[i].patom)=XInternAtom(dpy,ZAtom[i].name,False); @@ -153,15 +154,15 @@ xicccmInitAtoms(Display *dpy) int xselGetOwnership(Display *dpy, Window w, - Time time) + Time when) { int temp; - XSetSelectionOwner(dpy,XA_PRIMARY,w,time); + XSetSelectionOwner(dpy,XA_PRIMARY,w,when); temp=(w == XGetSelectionOwner(dpy,XA_PRIMARY)); if (temp) - ownership_start = time; + ownership_start = when; return(temp); } @@ -194,9 +195,9 @@ xselProcessSelection(Display *dpy, } void -xselOwnershipLost(Time time) +xselOwnershipLost(Time when) { - ownership_end = time; + ownership_end = when; } /*ARGSUSED*/ diff --git a/zwgc/xshow.c b/zwgc/xshow.c index 894e25d..3e1b2ce 100644 --- a/zwgc/xshow.c +++ b/zwgc/xshow.c @@ -109,7 +109,7 @@ static struct res_dict_type fgcolor_resources = { }; /*ARGSUSED*/ -char * +static char * mode_to_colorname (Display *dpy, char *style, xmode *mode) @@ -123,7 +123,7 @@ mode_to_colorname (Display *dpy, return result; } -void +static void fixup_and_draw(Display *dpy, char *style, xauxblock *auxblocks, @@ -171,7 +171,7 @@ fixup_and_draw(Display *dpy, blocks[block].wlen); #else ssize = XwcTextEscapement(auxblocks[block].font, - (XChar2b *)blocks[block].wstr, + (wchar_t *)blocks[block].wstr, blocks[block].wlen); #endif auxblocks[block].width = ssize; @@ -361,7 +361,7 @@ fixup_and_draw(Display *dpy, } /* Silly almost-but-not-quite-useless helper function */ -char * +static char * no_dots_downcase_var(char *str) { register char *var, *var2; @@ -412,6 +412,7 @@ xshow(Display *dpy, desctype *desc, int numstr, int numnl) blocks = (xblock *)malloc(sizeof(xblock) * numstr); auxblocks = (xauxblock *)malloc(sizeof(xauxblock) * numstr); + memset(&curmode, 0, sizeof(curmode)); curmode.bold = 0; curmode.italic = 0; curmode.size = MEDIUM_SIZE; @@ -600,10 +601,12 @@ xhandleevent(Display *dpy, Window w, XEvent *event) { + XPointer gramp; /* Avoid strict aliasing violation */ x_gram *gram; - if (XFindContext(dpy, w, desc_context, (XPointer *)&gram)) + if (XFindContext(dpy, w, desc_context, &gramp)) return; + gram = (x_gram *)gramp; if (event->type == Expose) x_gram_expose(dpy, w, gram,&(event->xexpose)); @@ -645,7 +648,7 @@ plus_window_deletions(ZNotice_t *notice) int done; static char class_nm[NAMESIZE], instance_nm[NAMESIZE], recip_nm[NAMESIZE]; - if (!dpy) + if (!x_dpy) return; val = var_get_variable("delete_window"); @@ -662,7 +665,7 @@ plus_window_deletions(ZNotice_t *notice) if (tmp->notice == notice) { fry = tmp; tmp = tmp->above; - xdestroygram(dpy, fry->w, desc_context, fry); + xdestroygram(x_dpy, fry->w, desc_context, fry); done = 0; } else { tmp = tmp->above; @@ -680,7 +683,7 @@ plus_window_deletions(ZNotice_t *notice) if (!strcasecmp(((ZNotice_t *)(tmp->notice))->z_sender, class_nm)) { fry = tmp; tmp = tmp->above; - xdestroygram(dpy, fry->w, desc_context, fry); + xdestroygram(x_dpy, fry->w, desc_context, fry); done = 0; } else { tmp = tmp->above; @@ -698,7 +701,7 @@ plus_window_deletions(ZNotice_t *notice) if (!!strcasecmp(((ZNotice_t *)(tmp->notice))->z_sender, class_nm)) { fry = tmp; tmp = tmp->above; - xdestroygram(dpy, fry->w, desc_context, fry); + xdestroygram(x_dpy, fry->w, desc_context, fry); done = 0; } else { tmp = tmp->above; @@ -715,7 +718,7 @@ plus_window_deletions(ZNotice_t *notice) if (!strcasecmp(((ZNotice_t *)(tmp->notice))->z_recipient, recip_nm)) { fry = tmp; tmp = tmp->above; - xdestroygram(dpy, fry->w, desc_context, fry); + xdestroygram(x_dpy, fry->w, desc_context, fry); done = 0; } else { tmp = tmp->above; @@ -732,7 +735,7 @@ plus_window_deletions(ZNotice_t *notice) if (!!strcasecmp(((ZNotice_t *)(tmp->notice))->z_recipient, recip_nm)) { fry = tmp; tmp = tmp->above; - xdestroygram(dpy, fry->w, desc_context, fry); + xdestroygram(x_dpy, fry->w, desc_context, fry); done = 0; } else { tmp = tmp->above; @@ -754,7 +757,7 @@ plus_window_deletions(ZNotice_t *notice) { fry = tmp; tmp = tmp->above; - xdestroygram(dpy, fry->w, desc_context, fry); + xdestroygram(x_dpy, fry->w, desc_context, fry); done = 0; } else { tmp = tmp->above; @@ -774,7 +777,7 @@ plus_window_deletions(ZNotice_t *notice) { fry = tmp; tmp = tmp->above; - xdestroygram(dpy, fry->w, desc_context, fry); + xdestroygram(x_dpy, fry->w, desc_context, fry); done = 0; } else { tmp = tmp->above; @@ -794,7 +797,7 @@ plus_window_deletions(ZNotice_t *notice) { fry = tmp; tmp = tmp->above; - xdestroygram(dpy, fry->w, desc_context, fry); + xdestroygram(x_dpy, fry->w, desc_context, fry); done = 0; } else { tmp = tmp->above; @@ -811,7 +814,7 @@ plus_window_deletions(ZNotice_t *notice) if (!strcasecmp(((ZNotice_t *)(tmp->notice))->z_class, class_nm)) { fry = tmp; tmp = tmp->above; - xdestroygram(dpy, fry->w, desc_context, fry); + xdestroygram(x_dpy, fry->w, desc_context, fry); done = 0; } else { tmp = tmp->above; @@ -821,7 +824,7 @@ plus_window_deletions(ZNotice_t *notice) } else if (!strcmp(val, "all")) { while (bottom_gram) { - xdestroygram(dpy, bottom_gram->w, desc_context, bottom_gram); + xdestroygram(x_dpy, bottom_gram->w, desc_context, bottom_gram); } } } diff --git a/zwgc/zephyr.c b/zwgc/zephyr.c index 9c9fbd9..6acfe81 100644 --- a/zwgc/zephyr.c +++ b/zwgc/zephyr.c @@ -100,8 +100,12 @@ write_wgfile(void) * */ +struct notice_handler_ptr { + void (*notice_handler)(ZNotice_t *); +}; + static void -handle_zephyr_input(void (*notice_handler)(ZNotice_t *)) +handle_zephyr_input(struct notice_handler_ptr *nhp) { ZNotice_t *notice; struct sockaddr_in from; @@ -120,7 +124,7 @@ handle_zephyr_input(void (*notice_handler)(ZNotice_t *)) TRAP( ZReceiveNotice(notice, &from), "while getting zephyr notice" ); if (!error_code) { notice->z_auth = ZCheckAuthentication(notice, &from); - notice_handler(notice); + nhp->notice_handler(notice); } #ifdef CMU_ZWGCPLUS if (get_list_refcount(notice) <= 0) { @@ -138,6 +142,7 @@ handle_zephyr_input(void (*notice_handler)(ZNotice_t *)) void zephyr_init(void (*notice_handler)(ZNotice_t *)) { + struct notice_handler_ptr *nhp; char *temp; char *exposure; char *tty = NULL; @@ -146,6 +151,11 @@ void zephyr_init(void (*notice_handler)(ZNotice_t *)) /* * Initialize zephyr. If error, print error message & exit. */ + nhp = malloc(sizeof(struct notice_handler_ptr)); + if (!nhp) { + fprintf(stderr, "Out of memory setting up zephyr notice handler.\n"); + exit(3); + } FATAL_TRAP( ZInitialize(), "while initializing Zephyr" ); FATAL_TRAP( ZOpenPort(&zephyr_port), "while opening Zephyr port" ); @@ -168,8 +178,8 @@ void zephyr_init(void (*notice_handler)(ZNotice_t *)) if (location_override) tty = location_override; #ifndef X_DISPLAY_MISSING - else if (dpy) - tty = DisplayString(dpy); + else if (x_dpy) + tty = DisplayString(x_dpy); #endif error_code = ZInitLocationInfo(NULL, tty); TRAP( error_code, "while initializing location information" ); @@ -210,8 +220,8 @@ void zephyr_init(void (*notice_handler)(ZNotice_t *)) /* * <<<>>> */ - mux_add_input_source(ZGetFD(), (void (*)(void *))handle_zephyr_input, - notice_handler); + nhp->notice_handler = notice_handler; + mux_add_input_source(ZGetFD(), (void (*)(void *))handle_zephyr_input, nhp); zephyr_inited = 1; return; } |