diff options
Diffstat (limited to 'dwmtimestatus.c')
| -rw-r--r-- | dwmtimestatus.c | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/dwmtimestatus.c b/dwmtimestatus.c index 6edee28..90b453a 100644 --- a/dwmtimestatus.c +++ b/dwmtimestatus.c @@ -17,13 +17,13 @@ struct status{ Display *dpy; Window root; char status[256]; + int status_len; const char *time_format; unsigned int status_update_interval; }; struct sigaction *s_act = NULL; struct status *current_status_ptr = NULL; -XTextProperty *status_props_ptr = NULL; void sighandler( int si_code, siginfo_t *si_info, void *si_adr ){ int exit_status = EXIT_SUCCESS; @@ -40,23 +40,23 @@ void sighandler( int si_code, siginfo_t *si_info, void *si_adr ){ fputs( "XCloseDisplay returned BadGC error\n", stderr ); current_status_ptr->dpy = NULL; } - memset( (void*)status_props_ptr, 0, sizeof(*status_props_ptr) ); + memset( (void*)current_status_ptr, 0, sizeof(*current_status_ptr) ); free( s_act ); s_act = NULL; exit( exit_status ); } -void update_status( struct status *status_info, XTextProperty *xprops ){ - if ( status_info == NULL || xprops == NULL ) +void update_status( struct status *status_info ){ + if ( status_info == NULL ) return; - if ( XChangeProperty(status_info->dpy, status_info->root, XA_WM_NAME, XA_STRING, 8, PropModeReplace, (_Xconst unsigned char*)&status_info->status, (int)xprops->nitems) == BadLength ) + if ( XChangeProperty(status_info->dpy, status_info->root, XA_WM_NAME, XA_STRING, 8, PropModeReplace, (_Xconst unsigned char*)&status_info->status, status_info->status_len) == BadLength ) fputs( "Error: XChangeProperty returned BadLength\n", stderr ); XSync( status_info->dpy, 0 ); return; } -void status_update_loop( struct status *cstatus, XTextProperty *status_properties ){ - if ( cstatus == NULL || status_properties == NULL ){ +void status_update_loop( struct status *cstatus ){ + if ( cstatus == NULL ){ fputs( "error: status struct pointer is NULL\n", stderr ); return; } @@ -66,11 +66,11 @@ void status_update_loop( struct status *cstatus, XTextProperty *status_propertie memset( (void*)&cstatus->status, 0, sizeof(cstatus->status) * sizeof(char) ); current_time = time( NULL ); time_info = localtime( (const time_t*)¤t_time ); - if ( (status_properties->nitems = (unsigned long)strftime((char*)&cstatus->status, (sizeof(cstatus->status) * sizeof(char)) - 1, cstatus->time_format, time_info)) <= 0 ){ + if ( (cstatus->status_len = (int)strftime((char*)&cstatus->status, (sizeof(cstatus->status) * sizeof(char)) - 1, cstatus->time_format, time_info)) <= 0 ){ sleep( cstatus->status_update_interval ); continue; } - update_status( cstatus, status_properties ); + update_status( cstatus ); sleep( cstatus->status_update_interval ); } return; @@ -104,12 +104,6 @@ int main( int argc, char **args ){ assert( sigaction(SIGPIPE, (const struct sigaction*)s_act, NULL) != -1 ); struct status current_status = {0}; memset( (void*)¤t_status, 0, sizeof(struct status) ); - XTextProperty status_props = { - .value = (unsigned char*)¤t_status.status, - .encoding = XA_STRING, - .format = 8, - .nitems = 0 - }; const char *optstring = "i:d:f:"; int opt_char = 0; while ( (opt_char = getopt(argc, args, optstring)) != -1 ){ @@ -132,7 +126,6 @@ int main( int argc, char **args ){ } current_status.root = DefaultRootWindow( current_status.dpy ); current_status_ptr = ¤t_status; - status_props_ptr = &status_props; - status_update_loop( ¤t_status, &status_props ); + status_update_loop( ¤t_status ); exit( EXIT_SUCCESS ); } |
