Exemplo n.º 1
0
void
get_commands()
{
    int ch;

    for(;;) {
        can_resize = TRUE; /* it's safe to resize now */
        if(!opt_get_bool(BOOL_SHOW_CURSOR))
            hide_cursor();
        if(should_resize)
            refresh_screen();
        ch = getch();
        if(!opt_get_bool(BOOL_SHOW_CURSOR))
            show_cursor();
        can_resize = FALSE; /* it's not safe to resize anymore */
        switch(ch) {
        case 'q':
            return;
        case 'Q':
            quit_abook(QUIT_DONTSAVE);
            break;
        case 'P':
            print_stderr(selected_items() ?
                         -1 : list_get_curitem());
            return;
        case '?':
            display_help(HELP_MAIN);
            refresh_screen();
            break;
        case 'a':
            add_item();
            break;
        case '\r':
            edit_item(-1);
            break;
        case KEY_DC:
        case 'd':
        case 'r':
            ui_remove_items();
            break;
        case 'D':
            duplicate_item();
            break;
        case 12:
            refresh_screen();
            break;

        case 'k':
        case KEY_UP:
            scroll_up();
            break;
        case 'j':
        case KEY_DOWN:
            scroll_down();
            break;
        case 'K':
        case KEY_PPAGE:
            page_up();
            break;
        case 'J':
        case KEY_NPAGE:
            page_down();
            break;

        case 'g':
        case KEY_HOME:
            goto_home();
            break;
        case 'G':
        case KEY_END:
            goto_end();
            break;

        case 'w':
            save_database();
            break;
        case 'l':
            ui_read_database();
            break;
        case 'i':
            import_database();
            break;
        case 'e':
            export_database();
            break;
        case 'C':
            ui_clear_database();
            break;

        case 'o':
            ui_open_datafile();
            break;

        case 's':
            sort_by_field("name");
            break;
        case 'S':
            sort_surname();
            break;
        case 'F':
            sort_by_field(NULL);
            break;

        case '/':
            ui_find(0);
            break;
        case '\\':
            ui_find(1);
            break;

        case ' ':
            if(list_get_curitem() >= 0) {
                list_invert_curitem_selection();
                ui_print_number_of_items();
                refresh_list();
            }
            break;
        case '+':
            select_all();
            refresh_list();
            break;
        case '-':
            select_none();
            refresh_list();
            break;
        case '*':
            invert_selection();
            refresh_list();
            break;
        case 'A':
            move_curitem(MOVE_ITEM_UP);
            break;
        case 'Z':
            move_curitem(MOVE_ITEM_DOWN);
            break;

        case 'm':
            launch_mutt(selected_items() ?
                        -1 : list_get_curitem());
            refresh_screen();
            break;

        case 'p':
            ui_print_database();
            break;

        case 'v':
            launch_wwwbrowser(list_get_curitem());
            refresh_screen();
            break;
        case 'H':
            launch_callpgm(list_get_curitem(), 'H');
            refresh_screen();
            break;
        case 'W':
            launch_callpgm(list_get_curitem(), 'W');
            refresh_screen();
            break;
        case 'M':
            launch_callpgm(list_get_curitem(), 'M');
            refresh_screen();
            break;
        }
    }
}
Exemplo n.º 2
0
void SysLog::print(unsigned int severity, const char *message, ...)
{    
#if KSERVER_HAS_THREADS
    std::lock_guard<std::mutex> lock(mutex);
#endif

    va_list argptr, argptr2;
    va_start(argptr, message);
    
    // See http://comments.gmane.org/gmane.linux.suse.programming-e/1107
    va_copy(argptr2, argptr);

    switch(severity) {
      case PANIC:
        print_stderr("KSERVER PANIC", message, argptr);
        
        if(config->syslog) {
            vsyslog(LOG_ALERT, message, argptr2);
        }
        
        break;
      case CRITICAL:
        print_stderr("KSERVER CRITICAL", message, argptr);
        
        if(config->syslog) {
            vsyslog(LOG_CRIT, message, argptr2);
        }

        break;
      case ERROR:
        print_stderr("KSERVER ERROR", message, argptr);
        
        if(config->syslog) {
            vsyslog(LOG_ERR, message, argptr2);
        }
        
        break;
      case WARNING:
        print_stderr("KSERVER WARNING", message, argptr);
        
        if(config->syslog) {
            vsyslog(LOG_WARNING, message, argptr2);
        }
        
        break;
      case INFO:
        if(config->verbose) {
            vprintf(message, argptr);
        }
        
        if(config->syslog) {
            vsyslog(LOG_NOTICE, message, argptr2);
        }
        break;
      case DEBUG:
        if(config->verbose) {
            vprintf(message, argptr);
        }
        
        if(config->syslog) {
            vsyslog(LOG_DEBUG, message, argptr2);
        }
    
        break;
      default:
        fprintf(stderr, "Invalid severity level\n");
    }
    
    va_end(argptr2);
    va_end(argptr);
}