}
/**
- * @brief Filter buffer names
- * @details Purges invalid buffer names from the table
- * @param[in,out] names The buffer names
- * @param[in,out] cnt The table size
- */
-void filter_buffer_names(char ** names, int * cnt)
-{
- int i;
- for (i = 0; i < *cnt; ++i) {
- int buf_id;
- if (strlen(names[i]) && (((buf_id = log_id_by_name(names[i])) < 0) || (buf_id >= LOG_ID_MAX))) {
- printf("There is no buffer \"%s\"\n", names[i]);
- names[i--] = names[--*cnt];
- names[*cnt] = NULL;
- }
- }
-}
-
-/**
* @brief Process buffer (non-pipe version)
* @details Finalizes a buffer: sends the appropriate socket request
* @param[in] buffer_name The name of the buffer
case 'g':
should_getsize = 1;
break;
- case 'b':
+ case 'b': {
+ log_id_t id = log_id_by_name(optarg);
+ if (id == LOG_ID_INVALID) {
+ printf("There is no buffer \"%s\"\n", optarg);
+ return 1;
+ }
buffer_names[buffer_cnt++] = optarg;
break;
+ }
case 'u':
logs.size = atoi_check_numeric(optarg, &err_arg_nondigit);
break;
for (i = 0; i < sizeof(default_buffers)/sizeof(default_buffers[0]); ++i)
buffer_names[buffer_cnt++] = log_name_by_id(default_buffers[i]);
- filter_buffer_names(buffer_names, &buffer_cnt);
if (files_cnt + buffer_cnt == 0) {
printf("Nothing to do here\n");
return 1;