static void appendPath(const GURL &url, GMap<GUTF8String,void *> &map, GList<GURL> &list) { if( !url.is_empty() && !map.contains(url.get_string()) ) { map[url.get_string()]=0; list.append(url); } }
GURL DjVuPortcaster::id_to_url(const DjVuPort * source, const GUTF8String &id) { GPList<DjVuPort> list; compute_closure(source, list, true); GURL url; for(GPosition pos=list;pos;++pos) { url=list[pos]->id_to_url(source, id); if (!url.is_empty()) break; } return url; }
GURL getExecDir(void) { // This is the same as GetModulePath in DjVuMessage.cpp GURL retval; GUTF8String &xprogramname=DjVuMessage::programname(); if(xprogramname.length()) { if(xprogramname[1]=='/' ||!xprogramname.cmp("../",3) ||!xprogramname.cmp("./",2)) { retval=GURL::Filename::UTF8(xprogramname); } if(retval.is_empty() || !retval.is_file()) { GList<GURL> paths(parsePATH()); GMap<GUTF8String,void *> pathMAP; for(GPosition pos=paths;pos;++pos) { retval=GURL::UTF8(xprogramname,paths[pos]); const GUTF8String path(retval.get_string()); if(!pathMAP.contains(path)) { if(retval.is_file()) break; pathMAP[path]=0; } } } if (! retval.is_empty() ) retval = retval.follow_symlinks(); if (! retval.is_empty() ) retval = retval.base(); } return retval; }
int main(int argc, const char **argv) { setlocale(LC_ALL,""); setlocale(LC_NUMERIC,"C"); djvu_programname(argv[0]); GArray<GUTF8String> dargv(0,argc-1); for(int i=0;i<argc;++i) dargv[i]=GNativeString(argv[i]); G_TRY { GURL inputppmurl; GURL outputdjvuurl; // Defaults cpaldjvuopts opts; opts.dpi = 100; opts.ncolors = 256; opts.verbose = false; opts.bgwhite = false; // Parse options for (int i=1; i<argc; i++) { GUTF8String arg = dargv[i]; if (arg == "-colors" && i+1<argc) { char *end; opts.ncolors = strtol(dargv[++i], &end, 10); if (*end || opts.ncolors<2 || opts.ncolors>4096) usage(); } else if (arg == "-dpi" && i+1<argc) { char *end; opts.dpi = strtol(dargv[++i], &end, 10); if (*end || opts.dpi<25 || opts.dpi>6000) usage(); } else if (arg == "-verbose" || arg == "-v") opts.verbose = true; else if (arg == "-bgwhite") opts.bgwhite = true; else if (arg[0] == '-' && arg[1]) usage(); else if (inputppmurl.is_empty()) inputppmurl = GURL::Filename::UTF8(arg); else if (outputdjvuurl.is_empty()) outputdjvuurl = GURL::Filename::UTF8(arg); else usage(); } if (inputppmurl.is_empty() || outputdjvuurl.is_empty()) usage(); // Load and run GP<ByteStream> ibs=ByteStream::create(inputppmurl,"rb"); cpaldjvu(ibs, outputdjvuurl, opts); } G_CATCH(ex) { ex.perror(); exit(1); } G_ENDCATCH; return 0; }
int main(int argc, const char **argv) { setlocale(LC_ALL,""); setlocale(LC_NUMERIC,"C"); djvu_programname(argv[0]); GArray<GUTF8String> dargv(0,argc-1); for(int i=0;i<argc;++i) dargv[i]=GNativeString(argv[i]); G_TRY { GURL inputpbmurl; GURL outputdjvuurl; cjb2opts opts; // Defaults opts.forcedpi = 0; opts.dpi = 300; opts.losslevel = 0; opts.verbose = false; // Parse options for (int i=1; i<argc; i++) { GUTF8String arg = dargv[i]; if (arg == "-dpi" && i+1<argc) { char *end; opts.dpi = opts.forcedpi = strtol(dargv[++i], &end, 10); if (*end || opts.dpi<25 || opts.dpi>1200) usage(); } else if (arg == "-losslevel") { char *end; opts.losslevel = strtol(dargv[++i], &end, 10); if (*end || opts.losslevel<0 || opts.losslevel>200) usage(); } else if (arg == "-lossless") opts.losslevel = 0; else if (arg == "-lossy") opts.losslevel = 100; else if (arg == "-clean") // almost deprecated opts.losslevel = 1; else if (arg == "-verbose" || arg == "-v") opts.verbose = true; else if (arg[0] == '-' && arg[1]) usage(); else if (inputpbmurl.is_empty()) inputpbmurl = GURL::Filename::UTF8(arg); else if (outputdjvuurl.is_empty()) outputdjvuurl = GURL::Filename::UTF8(arg); else usage(); } if (inputpbmurl.is_empty() || outputdjvuurl.is_empty()) usage(); // Execute cjb2(inputpbmurl, outputdjvuurl, opts); } G_CATCH(ex) { ex.perror(); exit(1); } G_ENDCATCH; return 0; }