int size = maxlen > 0 ? maxlen + 1 : INITIAL_BUFSIZE;
getyx(win, y, x);
- str = MALLOC(size);
+ str = (char *)MALLOC(size);
for( ;; ) { /* main loop */
- if(flags & ESTR_DONT_WRAP && x+i>COLS-2) {
+ if(flags & ESTR_DONT_WRAP && x+i > COLS-2) {
mvwaddnstr(win, y, x, str+(1+x+i-COLS), COLS-x-1);
wmove(win, y, COLS-1);
- wclrtoeol(win);
} else
wmove(win, y, x + i);
+ wclrtoeol(win);
wrefresh(win);
switch( (ch = getch()) ) {
case CANCEL_KEY:
free(str);
return NULL;
+ case XCTRL('u'):
+ i = 0;
+ break;
#ifdef USE_FILESEL
case TAB_KEY:
if( ! (flags & ESTR_USE_FILESEL) )
continue;
str[i++] = ch;
waddch(win,ch);
- if( i + 1 > size )
- str = REALLOC( str, size *= 2 );
- if( maxlen > 0 && i > maxlen)
- break;
+ if( i + 1 >= size )
+ str = (char *)REALLOC( str, size *= 2 );
}
out:
if( i >= 0 && str != NULL )
if( ++filesel_items > filesel_list_capacity) {
filesel_list_capacity =
filesel_list_capacity < 1 ? 30:filesel_list_capacity << 1;
- lst = REALLOC(lst, filesel_list_capacity *
+ lst = (struct filesel_list_item *)REALLOC(lst,
+ filesel_list_capacity *
sizeof(struct filesel_list_item) );
}
qsort((void *)lst, fdp, sizeof(struct filesel_list_item),
filenamecmp );
- qsort((void *)lst + fdp * sizeof(struct filesel_list_item),
+ qsort((void *)(&lst[fdp]),
FILESEL_LAST_ITEM - fdp + 1,
sizeof(struct filesel_list_item),
filenamecmp );
static void
filesel_print_list_line(int i, int line)
{
- if( lst[i].type == FLSL_TYPE_DIR )
+ if( lst[i].type == FLSL_TYPE_DIR ) {
+ mvwaddch(filesel_list, line, 3, 'd');
+#ifdef A_BOLD
wattron(filesel_list, A_BOLD);
+#endif
+ }
mvwaddnstr(filesel_list, line, 5, lst[i].filename, COLS - 5);
}
if(lst[filesel_curitem].type == FLSL_TYPE_DIR) {
dir = my_getcwd();
- newdir = MALLOC(strlen(dir)+strlen(lst[filesel_curitem].filename) +2 );
+ newdir = (char *)MALLOC(strlen(dir) +
+ strlen(lst[filesel_curitem].filename) +2 );
strcpy(newdir, dir);
strcat(newdir, "/");
strcat(newdir,lst[filesel_curitem].filename);
if( !filesel_loop() ) {
dir = my_getcwd();
- tmp = MALLOC(strlen(dir) + strlen(lst[filesel_curitem].filename) + 2);
+ tmp = (char *)MALLOC(strlen(dir) +
+ strlen(lst[filesel_curitem].filename) + 2);
strcpy(tmp,dir);
strcat(tmp, "/");
strcat(tmp, lst[filesel_curitem].filename);