static void Usage(int argc, char *argv[]) { My_name = 0; /* NULL */ Log = 0; strcpy( Config_file, "spread.conf" ); while( --argc > 0 ) { argv++; if( !strncmp( *argv, "-n", 2 ) ) { if (argc < 2) Print_help(); if( strlen( argv[1] ) > MAX_PROC_NAME-1 ) /* -1 for the null */ Alarmp( SPLOG_FATAL, SYSTEM, "Usage: proc name %s too long\n", argv[1] ); memcpy( My_name_buf, argv[1], strlen( argv[1] ) ); My_name = My_name_buf; argc--; argv++; }else if( !strncmp( *argv, "-c", 2 ) ){ if (argc < 2) Print_help(); strcpy( Config_file, argv[1] ); argc--; argv++; }else if( !strncmp( *argv, "-l", 2 ) ){ if (argc < 2) Print_help(); if( !strcmp( argv[1], "y" ) ) Log = 1; else if( !strcmp( argv[1], "n" ) ) Log = 0; else Print_help(); argc--; argv++; }else{ Print_help(); } } }
static void Usage(int argc, char *argv[]) { /* Setting defaults */ sprintf( User, "flooder" ); sprintf( Spread_name, "4803"); Num_bytes = 1000; Num_messages = 10000; Num_members = 0; Read_only = 0; Write_only = 0; while( --argc > 0 ) { argv++; if( !strncmp( *argv, "-u", 2 ) ) { if (argc < 2) Print_help(); strcpy( User, argv[1] ); argc--; argv++; }else if( !strncmp( *argv, "-b", 2 ) ){ if (argc < 2) Print_help(); sscanf(argv[1], "%d", &Num_bytes ); argc--; argv++; }else if( !strncmp( *argv, "-m", 2 ) ){ if (argc < 2) Print_help(); sscanf(argv[1], "%d", &Num_messages ); argc--; argv++; }else if( !strncmp( *argv, "-n", 2 ) ){ if (argc < 2) Print_help(); sscanf(argv[1], "%d", &Num_members ); argc--; argv++; }else if( !strncmp( *argv, "-s", 2 ) ){ if (argc < 2) Print_help(); strcpy( Spread_name, argv[1] ); argc--; argv++; }else if( !strncmp( *argv, "-ro", 3 ) ){ Read_only = 1; Write_only = 0; }else if( !strncmp( *argv, "-wo", 3 ) ){ Write_only = 1; Read_only = 0; }else{ Print_help(); } } if (Num_members > FLOODER_MAX_GROUPS) { printf("Too many members. The max is %d\n", FLOODER_MAX_GROUPS); Print_help(); } }
static void Usage(int argc, char *argv[]) { Use_Pword = 0; sprintf( User, "user" ); sprintf( Spread_name, "4803@localhost"); while( --argc > 0 ) { argv++; if( !strncmp( *argv, "-u", 2 ) ) { if (argc < 2) Print_help(); strcpy( User, argv[1] ); argc--; argv++; }else if( !strncmp( *argv, "-r", 2 ) ) { strcpy( User, "" ); }else if( !strncmp( *argv, "-s", 2 ) ){ if (argc < 2) Print_help(); strcpy( Spread_name, argv[1] ); argc--; argv++; }else if( !strncmp( *argv, "-n", 2 ) ){ if (argc < 2) Print_help(); strcpy( Pword_username, argv[1] ); Use_Pword = 1; argc--; argv++; }else if( !strncmp( *argv, "-p", 2 ) ){ if (argc < 2) Print_help(); strcpy( Pword_password, argv[1] ); Use_Pword = 1; argc--; argv++; }else{ Print_help(); } } }
void Display_help(void) { short line_index; // 0-15 (16 lignes de textes) short start_line=Help_position; const short x_pos=13; const short y_pos=19; char line_type; // N: Normale, T: Titre, S: Sous-titre // -: Ligne inférieur de sous-titre const char * line; char buffer[45]; // buffer texte utilisé pour formater les noms de // raccourcis clavier short link_position=0; // Position du premier caractère "variable" short link_size=0; // Taille de la partie variable short width; for (line_index=0;line_index<16;line_index++) { // Shortcut au cas ou la section fait moins de 16 lignes if (line_index >= Help_section[Current_help_section].Length) { Window_rectangle (x_pos, y_pos + line_index*8, 44*6, // 44 = Nb max de char (+1 pour éviter les plantages en mode X // causés par une largeur = 0) (16 - line_index)*8, MC_Black); break; } // On affiche la ligne line = Help_section[Current_help_section].Help_table[start_line + line_index].Text; line_type = Help_section[Current_help_section].Help_table[start_line + line_index].Line_type; // Si c'est une sous-ligne de titre, on utilise le texte de la ligne précédente if (line_type == '-' && (start_line + line_index > 0)) line = Help_section[Current_help_section].Help_table[start_line + line_index - 1].Text; else if (line_type == 'K') { const char *hyperlink; const char * escaped_percent_pos; // Determine link position: link_position = strstr(line,"%s") - line; // Adjust for any escaped %% that would precede it. escaped_percent_pos = line; do { escaped_percent_pos = strstr(escaped_percent_pos,"%%"); if (escaped_percent_pos && escaped_percent_pos - line < link_position) { link_position--; escaped_percent_pos+=2; } } while (escaped_percent_pos); // hyperlink=Keyboard_shortcut_value(Help_section[Current_help_section].Help_table[start_line + line_index].Line_parameter); link_size=strlen(hyperlink); snprintf(buffer, 44, line, hyperlink); if (strlen(line)+link_size-2>44) { buffer[43]=ELLIPSIS_CHARACTER; buffer[44]='\0'; } line = buffer; } width=Print_help(x_pos, y_pos+(line_index<<3), line, line_type, link_position, link_size); // On efface la fin de la ligne: if (width<44) Window_rectangle (x_pos+width*6, y_pos+(line_index<<3), (44-width)*6, 8, MC_Black); } Update_window_area(x_pos,y_pos,44*6,16*8); }