void on_list_apply_clicked(GtkButton *button, gpointer user_data) { ASGtkImageDir *id = ASGTK_IMAGE_DIR(user_data); ASImageListEntry *entry = asgtk_image_dir_get_selection( id ); if( entry ) { SendTextCommand ( F_CHANGE_BACKGROUND, NULL, entry->fullfilename, 0); unref_asimage_list_entry( entry ); } }
/* DO NOT RUN WITH SUID-PRIVILIDGES */ void group_wrapper(ASWinCommandState *state, const char *action) { #define WINTABS_COMMAND_PATTERN "WinTabs --pattern \"posix:%s\" &" if( state->pattern != NULL ) { char* com = safemalloc(sizeof(WINTABS_COMMAND_PATTERN)+strlen(state->pattern)) ; /* Launch WinTabs */ sprintf(com, WINTABS_COMMAND_PATTERN, state->pattern); SendTextCommand ( F_MODULE, "-", com, None); free( com ); } }
void on_update_as_menu_clicked(GtkButton *button, gpointer user_data) { SendTextCommand ( F_QUICKRESTART, NULL, "startmenu", 0); }
int ConnectAfterStep (send_data_type message_mask, send_data_type lock_on_send_mask) { char *temp; int fd; /* connect to AfterStep */ /* Dead pipe == AS died */ signal (SIGPIPE, ASDeadPipe); fd = ASDefaultScr->wmprops?socket_connect_client(ASDefaultScr->wmprops->as_socket_filename):-1; set_module_in_fd( fd ); set_module_out_fd( fd ); if (fd < 0) { show_error("unable to establish connection to AfterStep"); }else { int arg_len = 0 ; int i ; char *ptr ; char *exec_name = strrchr (MyArgs.saved_argv[0], '/'); int exec_name_len ; send_signed_data_type masks[2] ; masks[0] = message_mask ; masks[1] = lock_on_send_mask ; if( exec_name == NULL ) exec_name = MyArgs.saved_argv[0] ; else ++exec_name ; exec_name_len = strlen(exec_name); arg_len = exec_name_len ; for( i = 1 ; i < MyArgs.saved_argc ; ++i ) arg_len += 1+1+strlen( MyArgs.saved_argv[i] )+1 ; /* assuming that unsigned long will be limited to 32 chars : */ temp = safemalloc (arg_len+1); strcpy(temp, exec_name); ptr = temp + exec_name_len; for( i = 1 ; i < MyArgs.saved_argc ; ++i ) { Bool quote = False ; if( MyArgs.saved_argv[i][0] != '-' ) { int k = 0; int c = MyArgs.saved_argv[i][k] ; while( isalnum(c) || c == '-' || c == '+' || c == '.' || c == '_' ) c = MyArgs.saved_argv[i][++k] ; quote = ( c != '\0' ) ; } sprintf( ptr, quote?" \"%s\"":" %s", MyArgs.saved_argv[i] ); while( *ptr ) ++ptr; } SendTextCommand ( F_SET_NAME, MyName, temp, None); free (temp); SendNumCommand ( F_SET_MASK, NULL, &masks[0], NULL, None); //sprintf (mask_mesg, "SET_MASK %lu %lu\n", (unsigned long)message_mask, (unsigned long) lock_on_send_mask); //SendInfo ( mask_mesg, None); } /* don't really have to do this here, but anyway : */ InitSession(); return fd; }