Small cleanups.

This commit is contained in:
QC 2014-02-27 20:26:35 +01:00
parent a3569079c9
commit 52a28ea494
4 changed files with 18 additions and 51 deletions

View File

@ -79,9 +79,9 @@ static pid_t exec_cmd( const char *cmd, int run_in_term )
char *path = allocate( strlen( cache_dir ) + strlen( RUN_CACHE_FILE )+3 ); char *path = allocate( strlen( cache_dir ) + strlen( RUN_CACHE_FILE )+3 );
sprintf( path, "%s/%s", cache_dir, RUN_CACHE_FILE ); sprintf( path, "%s/%s", cache_dir, RUN_CACHE_FILE );
FILE *fd = fopen ( path, "r" ); FILE *fd = fopen ( path, "r" );
char buffer[1024];
if ( fd != NULL ) { if ( fd != NULL ) {
char buffer[1024];
while ( fgets( buffer,1024,fd ) != NULL ) { while ( fgets( buffer,1024,fd ) != NULL ) {
retv = reallocate( retv, ( index+2 )*sizeof( char* ) ); retv = reallocate( retv, ( index+2 )*sizeof( char* ) );
buffer[strlen( buffer )-1] = '\0'; buffer[strlen( buffer )-1] = '\0';
@ -142,9 +142,9 @@ static void delete_entry( const char *cmd )
char *path = allocate( strlen( cache_dir ) + strlen( RUN_CACHE_FILE )+3 ); char *path = allocate( strlen( cache_dir ) + strlen( RUN_CACHE_FILE )+3 );
sprintf( path, "%s/%s", cache_dir, RUN_CACHE_FILE ); sprintf( path, "%s/%s", cache_dir, RUN_CACHE_FILE );
FILE *fd = fopen ( path, "r" ); FILE *fd = fopen ( path, "r" );
char buffer[1024];
if ( fd != NULL ) { if ( fd != NULL ) {
char buffer[1024];
while ( fgets( buffer,1024,fd ) != NULL ) { while ( fgets( buffer,1024,fd ) != NULL ) {
retv = reallocate( retv, ( index+2 )*sizeof( char* ) ); retv = reallocate( retv, ( index+2 )*sizeof( char* ) );
buffer[strlen( buffer )-1] = '\0'; buffer[strlen( buffer )-1] = '\0';
@ -209,9 +209,9 @@ static char ** get_apps ( )
path = allocate( strlen( cache_dir ) + strlen( RUN_CACHE_FILE )+3 ); path = allocate( strlen( cache_dir ) + strlen( RUN_CACHE_FILE )+3 );
sprintf( path, "%s/%s", cache_dir, RUN_CACHE_FILE ); sprintf( path, "%s/%s", cache_dir, RUN_CACHE_FILE );
FILE *fd = fopen ( path, "r" ); FILE *fd = fopen ( path, "r" );
char buffer[1024];
if ( fd != NULL ) { if ( fd != NULL ) {
char buffer[1024];
while ( fgets( buffer,1024,fd ) != NULL ) { while ( fgets( buffer,1024,fd ) != NULL ) {
retv = reallocate( retv, ( index+2 )*sizeof( char* ) ); retv = reallocate( retv, ( index+2 )*sizeof( char* ) );
buffer[strlen( buffer )-1] = '\0'; buffer[strlen( buffer )-1] = '\0';

View File

@ -220,8 +220,7 @@ static void focus_window_i3( const char *socket_path, int id )
t = recv( s, &head, sizeof( head ),0 ); t = recv( s, &head, sizeof( head ),0 );
if ( t == sizeof( head ) ) { if ( t == sizeof( head ) ) {
t= recv( s, command, head.size, 0 ); recv( s, command, head.size, 0 );
command[t] = '\0';
} }
close( s ); close( s );
@ -529,13 +528,6 @@ void window_set_atom_prop( Window w, Atom prop, Atom *atoms, int count )
XChangeProperty( display, w, prop, XA_ATOM, 32, PropModeReplace, ( unsigned char* )atoms, count ); XChangeProperty( display, w, prop, XA_ATOM, 32, PropModeReplace, ( unsigned char* )atoms, count );
} }
int window_get_cardinal_prop( Window w, Atom atom, unsigned long *list, int count )
{
Atom type;
int items;
return window_get_prop( w, atom, &type, &items, list, count*sizeof( unsigned long ) ) && type == XA_CARDINAL ? items:0;
}
// a ClientMessage // a ClientMessage
int window_send_message( Window target, Window subject, Atom atom, unsigned long protocol, unsigned long mask, Time time ) int window_send_message( Window target, Window subject, Atom atom, unsigned long protocol, unsigned long mask, Time time )
{ {
@ -562,10 +554,11 @@ void monitor_dimensions( Screen *screen, int x, int y, workarea *mon )
// locate the current monitor // locate the current monitor
if ( XineramaIsActive( display ) ) { if ( XineramaIsActive( display ) ) {
int monitors, i; int monitors;
XineramaScreenInfo *info = XineramaQueryScreens( display, &monitors ); XineramaScreenInfo *info = XineramaQueryScreens( display, &monitors );
if ( info ) for ( i = 0; i < monitors; i++ ) { if ( info ) {
for ( int i = 0; i < monitors; i++ ) {
if ( INTERSECT( x, y, 1, 1, info[i].x_org, info[i].y_org, info[i].width, info[i].height ) ) { if ( INTERSECT( x, y, 1, 1, info[i].x_org, info[i].y_org, info[i].width, info[i].height ) ) {
mon->x = info[i].x_org; mon->x = info[i].x_org;
mon->y = info[i].y_org; mon->y = info[i].y_org;
@ -574,6 +567,7 @@ void monitor_dimensions( Screen *screen, int x, int y, workarea *mon )
break; break;
} }
} }
}
XFree( info ); XFree( info );
} }
@ -730,15 +724,16 @@ void menu_draw( textbox *text, textbox **boxes, int max_lines,int num_lines, int
*/ */
static int calculate_common_prefix( char **filtered, int max_lines ) static int calculate_common_prefix( char **filtered, int max_lines )
{ {
int length_prefix = 0,j,found = 1; int length_prefix = 0;
if ( filtered[0] != NULL ) { if ( filtered[0] != NULL ) {
int found = 1;
char *p = filtered[0]; char *p = filtered[0];
do { do {
found = 1; found = 1;
for ( j=0; j < max_lines && filtered[j] != NULL; j++ ) { for ( int j=0; j < max_lines && filtered[j] != NULL; j++ ) {
if ( filtered[j][length_prefix] == '\0' || filtered[j][length_prefix] != *p ) { if ( filtered[j][length_prefix] == '\0' || filtered[j][length_prefix] != *p ) {
if ( found ) if ( found )
found=0; found=0;
@ -753,7 +748,7 @@ static int calculate_common_prefix( char **filtered, int max_lines )
p++; p++;
} while ( found ); } while ( found );
// cut off to be valid utf8. // cut off to be valid utf8.
for ( j = 0; j < length_prefix; ) { for ( int j = 0; j < length_prefix; ) {
if((filtered[0][j]&0x80) == 0){j++;} if((filtered[0][j]&0x80) == 0){j++;}
else if ((filtered[0][j]&0xf0) == 0xc0) { else if ((filtered[0][j]&0xf0) == 0xc0) {
// 2 bytes // 2 bytes
@ -898,8 +893,6 @@ MenuReturn menu( char **lines, char **input, char *prompt, Time *time, int *shif
int *line_map = allocate_clear( sizeof( int ) * num_lines ); int *line_map = allocate_clear( sizeof( int ) * num_lines );
unsigned int filtered_lines = 0; unsigned int filtered_lines = 0;
int jin = 0;
if ( input && *input ) { if ( input && *input ) {
char **tokens = tokenize( *input ); char **tokens = tokenize( *input );
@ -917,6 +910,7 @@ MenuReturn menu( char **lines, char **input, char *prompt, Time *time, int *shif
tokenize_free( tokens ); tokenize_free( tokens );
} else { } else {
int jin = 0;
for ( i = 0; i < num_lines; i++ ) { for ( i = 0; i < num_lines; i++ ) {
filtered[jin] = lines[i]; filtered[jin] = lines[i];
line_map[jin] = i; line_map[jin] = i;

View File

@ -76,9 +76,9 @@ static pid_t exec_ssh( const char *cmd )
char *path = allocate( strlen( cache_dir ) + strlen( SSH_CACHE_FILE )+3 ); char *path = allocate( strlen( cache_dir ) + strlen( SSH_CACHE_FILE )+3 );
sprintf( path, "%s/%s", cache_dir, SSH_CACHE_FILE ); sprintf( path, "%s/%s", cache_dir, SSH_CACHE_FILE );
FILE *fd = fopen ( path, "r" ); FILE *fd = fopen ( path, "r" );
char buffer[1024];
if ( fd != NULL ) { if ( fd != NULL ) {
char buffer[1024];
while ( fgets( buffer,1024,fd ) != NULL ) { while ( fgets( buffer,1024,fd ) != NULL ) {
retv = reallocate( retv, ( index+2 )*sizeof( char* ) ); retv = reallocate( retv, ( index+2 )*sizeof( char* ) );
buffer[strlen( buffer )-1] = '\0'; buffer[strlen( buffer )-1] = '\0';
@ -140,9 +140,9 @@ static void delete_ssh( const char *cmd )
char *path = allocate( strlen( cache_dir ) + strlen( SSH_CACHE_FILE )+3 ); char *path = allocate( strlen( cache_dir ) + strlen( SSH_CACHE_FILE )+3 );
sprintf( path, "%s/%s", cache_dir, SSH_CACHE_FILE ); sprintf( path, "%s/%s", cache_dir, SSH_CACHE_FILE );
FILE *fd = fopen ( path, "r" ); FILE *fd = fopen ( path, "r" );
char buffer[1024];
if ( fd != NULL ) { if ( fd != NULL ) {
char buffer[1024];
while ( fgets( buffer,1024,fd ) != NULL ) { while ( fgets( buffer,1024,fd ) != NULL ) {
retv = reallocate( retv, ( index+2 )*sizeof( char* ) ); retv = reallocate( retv, ( index+2 )*sizeof( char* ) );
buffer[strlen( buffer )-1] = '\0'; buffer[strlen( buffer )-1] = '\0';

View File

@ -113,7 +113,7 @@ void textbox_font( textbox *tb, char *font, char *fg, char *bg )
void textbox_extents( textbox *tb ) void textbox_extents( textbox *tb )
{ {
int length = strlen( tb->text ) + strlen( tb->prompt ) +1; int length = strlen( tb->text ) + strlen( tb->prompt ) +1;
char *line = alloca( length + 1 ); char line[length + 1 ];
sprintf( line, "%s %s", tb->prompt, tb->text ); sprintf( line, "%s %s", tb->prompt, tb->text );
XftTextExtentsUtf8( display, tb->font, ( unsigned char* )line, length, &tb->extents ); XftTextExtentsUtf8( display, tb->font, ( unsigned char* )line, length, &tb->extents );
} }
@ -128,15 +128,6 @@ void textbox_text( textbox *tb, char *text )
textbox_extents( tb ); textbox_extents( tb );
} }
// set an input prompt for edit mode
void textbox_prompt( textbox *tb, char *text )
{
if ( tb->prompt ) free( tb->prompt );
tb->prompt = strdup( text );
textbox_extents( tb );
}
// within the parent. handled auto width/height modes // within the parent. handled auto width/height modes
void textbox_moveresize( textbox *tb, int x, int y, int w, int h ) void textbox_moveresize( textbox *tb, int x, int y, int w, int h )
{ {
@ -160,10 +151,6 @@ void textbox_show( textbox *tb )
XMapWindow( display, tb->window ); XMapWindow( display, tb->window );
} }
void textbox_hide( textbox *tb )
{
XUnmapWindow( display, tb->window );
}
// will also unmap the window if still displayed // will also unmap the window if still displayed
void textbox_free( textbox *tb ) void textbox_free( textbox *tb )
@ -196,7 +183,6 @@ void textbox_free( textbox *tb )
void textbox_draw( textbox *tb ) void textbox_draw( textbox *tb )
{ {
int i;
XGlyphInfo extents; XGlyphInfo extents;
GC context = XCreateGC( display, tb->window, 0, 0 ); GC context = XCreateGC( display, tb->window, 0, 0 );
@ -216,10 +202,10 @@ void textbox_draw( textbox *tb )
int line_width = 0; int line_width = 0;
int cursor_x = 0; int cursor_x = 0;
int cursor_offset = 0;
int cursor_width = MAX( 2, line_height/10 ); int cursor_width = MAX( 2, line_height/10 );
if ( tb->flags & TB_EDITABLE ) { if ( tb->flags & TB_EDITABLE ) {
int cursor_offset = 0;
int prompt_len = strlen( prompt ) +1; int prompt_len = strlen( prompt ) +1;
length = text_len + prompt_len; length = text_len + prompt_len;
cursor_offset = MIN( tb->cursor + prompt_len, length ); cursor_offset = MIN( tb->cursor + prompt_len, length );
@ -228,7 +214,7 @@ void textbox_draw( textbox *tb )
sprintf( line, "%s %s", prompt, text ); sprintf( line, "%s %s", prompt, text );
// replace spaces so XftTextExtents8 includes their width // replace spaces so XftTextExtents8 includes their width
for ( i = 0; i < length; i++ ) if ( isspace( line[i] ) ) line[i] = '_'; for ( int i = 0; i < length; i++ ) if ( isspace( line[i] ) ) line[i] = '_';
// calc cursor position // calc cursor position
XftTextExtentsUtf8( display, tb->font, ( unsigned char* )line, cursor_offset, &extents ); XftTextExtentsUtf8( display, tb->font, ( unsigned char* )line, cursor_offset, &extents );
@ -298,11 +284,6 @@ void textbox_cursor_dec( textbox *tb )
textbox_cursor( tb, nextrune(tb,-1) ); textbox_cursor( tb, nextrune(tb,-1) );
} }
// beginning of line
void textbox_cursor_home( textbox *tb )
{
tb->cursor = 0;
}
// end of line // end of line
void textbox_cursor_end( textbox *tb ) void textbox_cursor_end( textbox *tb )
@ -336,14 +317,6 @@ void textbox_delete( textbox *tb, int pos, int dlen )
textbox_extents( tb ); textbox_extents( tb );
} }
// insert one character
void textbox_cursor_ins( textbox *tb, char c )
{
char tmp[2] = { c, 0 };
textbox_insert( tb, tb->cursor, tmp );
textbox_cursor_inc( tb );
}
// delete on character // delete on character
void textbox_cursor_del( textbox *tb ) void textbox_cursor_del( textbox *tb )
{ {