📄 main.cc
字号:
case 'F': showFilenames = true; showFilePath = true; break; case 'g': noGifs = true; break; case 'G': forceGifs = true; break; case 'i': showInherited = false; break; case 'j': javaGraphs = false; break; case 'm': alwaysPrintDocSection = false; break; case 'M': showMembersInTOC = true; break; case 'P': useGeneral = false; break; case 'S': sortEntries = true; break; case 'T': if(optarg[0] == '-') { missingArg("--header"); break; } ownHeader = optarg; break; case 'w': printGroupDocBeforeGroup = true; break; case 'W': printClassDocBeforeGroup = true; break; case 'x': if(optarg[0] == '-') { missingArg("--suffix"); break; } htmlSuffix = optarg; break; case 'K': if(optarg[0] == '-') { missingArg("--stylesheet"); break; } htmlStyleSheet = optarg; break; case '1': onlyClassGraph = true; break; case '2': if(optarg[0] == '-') { missingArg("--env"); break; } texFile = optarg; break; case '3': generateIndex = true; break; case '4': if(optarg[0] == '-') { missingArg("--style"); break; } texOption = optarg; break; case '5': if(optarg[0] == '-') { missingArg("--package"); break; } texPackages.append(new McString(optarg)); break; case '6': if(optarg[0] == '-') { missingArg("--title"); break; } texTitle = optarg; break; case 'X': hideIndexOnEverySection = true; break; case 'D': if(optarg[0] == '-') { missingArg("--depth"); break; } if(!sscanf(optarg, "%d", &depth)) fprintf(stderr, _("Ignoring option `--depth': bad argument specified\n")); else depthTOC = depth; break; case 'l': noLatex = true; break; case 'o': if(optarg[0] == '-') { missingArg("--output"); break; } FILE *tmp; if((tmp = fopen(optarg, "w"))) { texOutputName = optarg; out = tmp; } else fprintf(stderr, _("Ignoring option `--output': cannot open file `%s'\n"), optarg); break; case 's': doListing = true; break; case 'e': switch(optarg[0]) { case 'c': onlyClassGraph = true; break; case 'f': if(argv[optind][0] == '-') { missingArgE('f'); break; } texFile = argv[optind++]; break; case 'i': generateIndex = true; break; case 'o': if(argv[optind][0] == '-') { missingArgE('o'); break; } texOption = argv[optind++]; break; case 'p': if(argv[optind][0] == '-') { missingArgE('p'); break; } texPackages.append(new McString(argv[optind++])); break; case 't': if(argv[optind][0] == '-') { missingArgE('t'); break; } texTitle = argv[optind++]; break; default: unknownOption('e', optarg[0]); exit(-1); } break; case '?': unknownOption(optopt); exit(-1); } // read configuration file (if possible) if(configFile.length() > 0) {#ifdef WIN32 ifstream f(configFile.c_str(), ios::nocreate|ios::in);#else ifstream f(configFile.c_str());#endif if(!f) { if(configFile != "doc++.conf") fprintf(stderr, _("Error opening configuration file `%s'\n"), configFile.c_str()); } else { McString s; while(f) s += f.get(); f.close(); parseConfig(s); if(java) language = LANG_JAVA; if(idl) language = LANG_IDL; if(php) language = LANG_PHP; } } if(optind >= argc && fileList.length() == 0 && inputFiles.size() == 0) { fprintf(stderr, _("No input files. Try `doc++ --help'\n")); exit(-1); } // Preload GIFs if(!noGifs && !forceGifs && !doTeX) { McString gifDB(outputDir); gifDB += PATH_DELIMITER; gifDB += GIF_FILE_NAME; ifstream gifFile(gifDB.c_str()); if(gifFile) { gifFile >> gifs; gifNum = gifs.num(); } } // Read input files into buffer if(verb) printf(_("Reading files...\n")); if(fileList.length() > 0) { ifstream i_file(fileList.c_str()); if(!i_file) { fprintf(stderr, _("Error opening file list `%s'\n"), fileList.c_str()); exit(-1); } char line[1024]; while(i_file) { i_file.getline(line, 1024); if(i_file) readfile(&inputFile, line, 1); } i_file.close(); } else if(inputFiles.size() == 0) for(i = optind; i < argc; i++) readfile(&inputFile, argv[i], 1); else for(i = 0; i < inputFiles.size(); i++) readfile(&inputFile, inputFiles[i]->c_str(), 1); if(verb) printf(_("%d bytes read\n"), inputFile.length()); // Do TeX source code listing if that is what the user want if(doTeX && doListing) { if(verb) printf(_("Generating source code listing...\n")); listing(inputFile); if(verb) printf(_("Done.\n")); exit(0); } // Parse buffer if(verb) printf(_("Parsing...\n")); if(language == LANG_JAVA) parseJava(root); else if(language == LANG_PHP) parsePHP(root); else parseCpp(root); checkPackages(root); setupLanguageHash(); // Merge duplicated entries, etc. if(verb) printf(_("Merging duplicate entries...\n")); mergeEntries(root); // Sort entries if(verb) printf(_("Sorting entries...\n")); makeSubLists(root); // Resolve references if(verb) printf(_("Resolving references...\n")); reNumber(root); root->makeRefs(); // Create user manual if(doTeX) usermanTeX(inputFile, root); else if(doDOCBOOK) usermanDBsgml(inputFile, root); else if(doDOCBOOKXML) usermanDBxml(inputFile, root); else doHTML(outputDir.c_str(), root); // Create GIFs (if any) gifNum = gifs.num(); if(gifNum > 0) { McString gifDB(outputDir); gifDB += PATH_DELIMITER; gifDB += GIF_FILE_NAME; if(verb) printf(_("Writing GIF database file `%s'...\n"), gifDB.c_str()); ofstream gifFile(gifDB.c_str()); gifFile << gifs; makeGifs(outputDir.c_str(), GIF_FILE_NAME); } // That's all if(verb) printf(_("Done.\n")); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -