summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dwmtimestatus.c27
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*)&current_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*)&current_status, 0, sizeof(struct status) );
- XTextProperty status_props = {
- .value = (unsigned char*)&current_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 = &current_status;
- status_props_ptr = &status_props;
- status_update_loop( &current_status, &status_props );
+ status_update_loop( &current_status );
exit( EXIT_SUCCESS );
}