Enable single file processing

Author Mitja Felicijan <mitja.felicijan@gmail.com> 2026-01-21 22:43:38 +0100
Committer Mitja Felicijan <mitja.felicijan@gmail.com> 2026-01-21 22:43:38 +0100
Commit d6d9cb137d1f0f75fd68381ec699f76b518061d5 (patch)
-rw-r--r-- list.c 14
-rw-r--r-- main.c 6
2 files changed, 15 insertions, 5 deletions
diff --git a/list.c b/list.c
...
23
}
23
}
24
  
24
  
25
void list_files_recursively(char *base_path, Node **head) {
25
void list_files_recursively(char *base_path, Node **head) {
  
26
	struct stat statbuf;
  
27
	if (stat(base_path, &statbuf) == -1) {
  
28
		perror("stat");
  
29
		return;
  
30
	}
  
31
  
  
32
	if (S_ISREG(statbuf.st_mode)) {
  
33
		add_file_path(head, base_path);
  
34
		return;
  
35
	}
  
36
  
26
	char path[2048];
37
	char path[2048];
27
	struct dirent *dp;
38
	struct dirent *dp;
28
	DIR *dir = opendir(base_path);
39
	DIR *dir = opendir(base_path);
...
39
				continue;
50
				continue;
40
			}
51
			}
41
  
52
  
42
			struct stat statbuf;
  
43
			if (stat(path, &statbuf) != -1) {
53
			if (stat(path, &statbuf) != -1) {
44
				if (S_ISDIR(statbuf.st_mode)) {
54
				if (S_ISDIR(statbuf.st_mode)) {
45
					list_files_recursively(path, head);
55
					list_files_recursively(path, head);
46
				} else {
56
				} else if (S_ISREG(statbuf.st_mode)) {
47
					add_file_path(head, path);
57
					add_file_path(head, path);
48
				}
58
				}
49
			}
59
			}
...
diff --git a/main.c b/main.c
...
177
}
177
}
178
  
178
  
179
int main(int argc, char *argv[]) {
179
int main(int argc, char *argv[]) {
180
	if (argc < 3) {
180
	if (argc < 2) {
181
		printf("Usage: %s <search term> <directory>\n", argv[0]);
181
		printf("Usage: %s <search term> [directory|file]\n", argv[0]);
182
		return 1;
182
		return 1;
183
	}
183
	}
184
  
184
  
185
	const char *cfname = argv[1];
185
	const char *cfname = argv[1];
186
	char *directory = argv[2];
186
	char *directory = (argc > 2) ? argv[2] : ".";
187
  
187
  
188
	TSLanguage *tree_sitter_c(void);
188
	TSLanguage *tree_sitter_c(void);
189
	TSLanguage *tree_sitter_python(void);
189
	TSLanguage *tree_sitter_python(void);
...