void convert_directory(char *path) { struct dirent *dp; DIR *dirp; char filename[NAME_MAX + 1]; char dirname[NAME_MAX + 1]; struct stat st; strcpy(dirname, output_dir); if (strlen(path) > source_prefix_len) { strcat(dirname, "/"); strcat(dirname, path + source_prefix_len); } mkdir(dirname, 0644); dirp = opendir(path); if (!dirp) return; while ((dp = readdir(dirp))) { if (strcmp(dp->d_name, ".") == 0) continue; if (strcmp(dp->d_name, "..") == 0) continue; if (strcmp(dp->d_name, "CVS") == 0) continue; strcpy(filename, path); strcat(filename, "/"); strcat(filename, dp->d_name); if (stat(filename, &st) < 0) continue; if (S_ISDIR(st.st_mode)) convert_directory(filename); if (S_ISREG(st.st_mode)) convert_file(filename); } closedir(dirp); }
int main(int argc, char *argv[]) { int c, i; // Parse command line options while ((c = getopt(argc, argv, "d:c:i:o:hlt:")) != EOF) { switch (c) { case 'd': source_dir = optarg; break; case 'c': ctags_file = optarg; break; case 'o': output_dir = optarg; break; case 'i': title = include_dir; break; case 'l': source_index = 1; break; case 't': title = optarg; break; case 'h': default: usage(); return 1; } } if (!source_dir) { usage(); return 1; } // Read CTAGS file if (ctags_file != NULL) read_ctags(ctags_file); // Convert all source files source_prefix_len = strlen(source_dir) + 1; convert_directory(source_dir); // Deallocate tags for (i = 0; i < num_tags; ++i) { free(tags[i]->name); free(tags[i]->file); free(tags[i]); } if (tags) free(tags); return 0; }
int _tmain(int argc, _TCHAR* argv[]) { if (argc < 2) return 1; HRESULT hr = -1; if (NSFile::CFileBinary::Exists(argv[1])) { hr = convert_single(argv[1]); } else if (NSDirectory::Exists(argv[1])) { hr = convert_directory(argv[1]); } return hr; }
int _tmain(int argc, _TCHAR* argv[]) { //#ifdef _DEBUG // _CrtDumpMemoryLeaks(); //#endif if (argc < 2) return 1; HRESULT hr = -1; if (NSFile::CFileBinary::Exists(argv[1])) { hr = convert_single(argv[1]); } else if (NSDirectory::Exists(argv[1])) { hr = convert_directory(argv[1]); } return hr; }