if(n_opt + n >= argc) {
fprintf(stderr, "Selector: Missing argument for %s, expecting %s.\n",
argv[n_opt], help);
- exit(1);
+ exit(EXIT_FAILURE);
}
}
fprintf(stderr,
"Selector: Value `%s' is not a positive integer.\n",
string);
- exit(1);
+ exit(EXIT_FAILURE);
}
return result;
table. When a string is added, if it was already in the table, the
new index replaces the previous one. */
-typedef struct {
+struct hash_table_t {
int size;
int *entries;
-} hash_table_t;
+};
-hash_table_t *new_hash_table(int size) {
+struct hash_table_t *new_hash_table(int size) {
int k;
- hash_table_t *hash_table;
+ struct hash_table_t *hash_table;
- hash_table = (hash_table_t *) malloc(sizeof(hash_table_t));
+ hash_table = (struct hash_table_t *) malloc(sizeof(struct hash_table_t));
hash_table->size = size;
hash_table->entries = (int *) malloc(hash_table->size * sizeof(int));
return hash_table;
}
-void free_hash_table(hash_table_t *hash_table) {
+void free_hash_table(struct hash_table_t *hash_table) {
free(hash_table->entries);
free(hash_table);
}
string was not already in the table, returns -1. Otherwise, returns
the previous index it had. */
-int add_and_get_previous_index(hash_table_t *hash_table,
+int add_and_get_previous_index(struct hash_table_t *hash_table,
const char *new_string, int new_index,
char **strings) {
/*********************************************************************/
-void store_line(hash_table_t *hash_table,
+void store_line(struct hash_table_t *hash_table,
const char *new_line,
int *nb_lines, char **lines) {
int dup;
(*nb_lines)++;
}
-void read_file(hash_table_t *hash_table,
+void read_file(struct hash_table_t *hash_table,
const char *input_filename,
int nb_lines_max, int *nb_lines, char **lines) {
if(!file) {
fprintf(stderr, "Selector: Can not open `%s'.\n", input_filename);
- exit(1);
+ exit(EXIT_FAILURE);
}
start = 0;
BUFFER_SIZE);
fprintf(stderr, raw_line);
fprintf(stderr, "\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
/* If we got a line, we replace the carriage return by a \0 to
char **lines, **labels;
int nb_lines;
- hash_table_t *hash_table;
+ struct hash_table_t *hash_table;
- if(!ttyname(STDIN_FILENO)) {
+ if(!isatty(STDIN_FILENO)) {
fprintf(stderr, "Selector: The standard input is not a tty.\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
color_fg_modeline = COLOR_WHITE;
i = 1;
while(!error && !show_help &&
- i < argc && argv[i][0] == '-' &&
- !rest_are_files) {
+ i < argc &&
+ argv[i][0] == '-' && !rest_are_files) {
if(strcmp(argv[i], "-o") == 0) {
check_opt(argc, argv, i, 1, "<output filename>");
out = stderr;
}
- fprintf(out, "Selector version %s-R%s\n", VERSION, REVISION_NUMBER);
+ fprintf(out, "Selector version %s-R%s (%s)\n", VERSION, REVISION_NUMBER, UNAME);
fprintf(out, "Written by Francois Fleuret <francois@fleuret.org>.\n");
fprintf(out, "\n");
fprintf(out, "Usage: %s [options] [<filename1> [<filename2> ...]]\n",
endwin();
fprintf(stderr, "Selector: Color numbers have to be between 0 and %d.\n",
COLORS - 1);
- exit(1);
+ exit(EXIT_FAILURE);
}
init_pair(1, color_fg_modeline, color_bg_modeline);
fprintf(stderr,
"Selector: Can not open %s for writing.\n",
output_filename);
- exit(1);
+ exit(EXIT_FAILURE);
}
fclose(out);
}
free(lines);
free(title);
- exit(0);
+ exit(EXIT_SUCCESS);
}