diff -uNr k2pdfopt_v2.51/willuslib/ocrtess.c k2pdfopt_v2.51.mod/willuslib/ocrtess.c --- k2pdfopt_v2.51/willuslib/ocrtess.c 2020-01-01 21:00:39.794259355 +0200 +++ k2pdfopt_v2.51.mod/willuslib/ocrtess.c 2020-01-01 21:11:30.131964011 +0200 @@ -38,35 +38,39 @@ static void endian_flip(char *x,int n); /* -** Returns 0 for success, NZ for failure. +** Determine OCR path. Check both TESSDATA_PREFIX\tessdata AND TESSDATA_PREFIX */ -void *ocrtess_init(char *datadir,char *tesspath,int maxtesspathlen, - char *lang,FILE *out,char *initstr,int maxlen,int *status) +void ocrtess_datapath(char *datapath,char *suggested,int maxlen) { - char langdef[16]; - void *api; - char tesspath0[MAXFILENAMELEN]; + char path1[MAXFILENAMELEN-12]; + char path[MAXFILENAMELEN]; + char *p; - ocrtess_datapath(tesspath0,datadir,MAXFILENAMELEN-1); - if (tesspath!=NULL) + if (suggested!=NULL) { - strncpy(tesspath,tesspath0,maxtesspathlen-1); - tesspath[maxtesspathlen-1]='\0'; + strncpy(datapath,suggested,maxlen-1); + datapath[maxlen-1]='\0'; + return; } - if (lang==NULL || lang[0]=='\0') - ocrtess_lang_default(tesspath0,NULL,0,langdef,16,NULL,0,0); - else + if ((p=getenv("TESSDATA_PREFIX"))==NULL) { - strncpy(langdef,lang,15); - langdef[15]='\0'; + datapath[0]='\0'; + return; } - /* Tess v4.00 needs only one attempt with ocrtype=0 */ - api=tess_capi_init(tesspath0,langdef,0,out,initstr,maxlen,status); - return(api); + strncpy(path1,p,MAXFILENAMELEN-13); + path1[MAXFILENAMELEN-13]='\0'; + wfile_fullname(path,path1,"tessdata"); + if (wfile_status(path)==2) + { + strncpy(datapath,path,maxlen-1); + datapath[maxlen-1]='\0'; + return; + } + strncpy(datapath,p,maxlen-1); + datapath[maxlen-1]='\0'; } - void ocrtess_lang_default(char *datadir,char *tesspath,int maxtesspathlen, char *langdef,int maxlen,char *tessdebug,int maxdebug,int use_ansi) @@ -170,39 +174,33 @@ filelist_free(fl); } - /* -** Determine OCR path. Check both TESSDATA_PREFIX\tessdata AND TESSDATA_PREFIX +** Returns 0 for success, NZ for failure. */ -void ocrtess_datapath(char *datapath,char *suggested,int maxlen) +void *ocrtess_init(char *datadir,char *tesspath,int maxtesspathlen, + char *lang,FILE *out,char *initstr,int maxlen,int *status) { - char path1[MAXFILENAMELEN-12]; - char path[MAXFILENAMELEN]; - char *p; + char langdef[16]; + void *api; + char tesspath0[MAXFILENAMELEN]; - if (suggested!=NULL) - { - strncpy(datapath,suggested,maxlen-1); - datapath[maxlen-1]='\0'; - return; - } - if ((p=getenv("TESSDATA_PREFIX"))==NULL) + ocrtess_datapath(tesspath0,datadir,MAXFILENAMELEN-1); + if (tesspath!=NULL) { - datapath[0]='\0'; - return; + strncpy(tesspath,tesspath0,maxtesspathlen-1); + tesspath[maxtesspathlen-1]='\0'; } - strncpy(path1,p,MAXFILENAMELEN-13); - path1[MAXFILENAMELEN-13]='\0'; - wfile_fullname(path,path1,"tessdata"); - if (wfile_status(path)==2) + if (lang==NULL || lang[0]=='\0') + ocrtess_lang_default(tesspath0,NULL,0,langdef,16,NULL,0,0); + else { - strncpy(datapath,path,maxlen-1); - datapath[maxlen-1]='\0'; - return; + strncpy(langdef,lang,15); + langdef[15]='\0'; } - strncpy(datapath,p,maxlen-1); - datapath[maxlen-1]='\0'; + /* Tess v4.00 needs only one attempt with ocrtype=0 */ + api=tess_capi_init(tesspath0,langdef,0,out,initstr,maxlen,status); + return(api); }