summaryrefslogtreecommitdiff
path: root/Build/source/texk/mendexk/convert.c
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2012-07-28 10:09:46 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2012-07-28 10:09:46 +0000
commit2c71c9d92117f7f1fe0d5bd6fe74922e50be0c86 (patch)
tree6581f8e2c781693a75e6eabb32df88f8299fe1a2 /Build/source/texk/mendexk/convert.c
parentbb3913a1553c1213f93e6f10185f770cde5ae901 (diff)
mendexk: Use Nelson Beebe's qqsort() instead of qsort()
Handle input files with Dos/Windows (CRLF) line endings (from W32TeX) Always use KPATHSEA. Use xmalloc() and xstrdup() git-svn-id: svn://tug.org/texlive/trunk@27216 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/mendexk/convert.c')
-rw-r--r--Build/source/texk/mendexk/convert.c29
1 files changed, 10 insertions, 19 deletions
diff --git a/Build/source/texk/mendexk/convert.c b/Build/source/texk/mendexk/convert.c
index be0441b4cdb..55f81af0768 100644
--- a/Build/source/texk/mendexk/convert.c
+++ b/Build/source/texk/mendexk/convert.c
@@ -3,18 +3,17 @@
#include <string.h>
#include <kpathsea/config.h>
-#include <kpathsea/lib.h>
#include <kpathsea/tex-file.h>
+#include <kpathsea/variable.h>
#include <ptexenc/ptexenc.h>
#include "mendex.h"
+#include "qsort.h"
#include "exkana.h"
#include "ktable.h"
#include "exvar.h"
-#ifdef KPATHSEA
#include "kp.h"
-#endif
struct dictionary{
char dic[2][50];
@@ -68,9 +67,7 @@ int dicread(const char *filename)
FILE *fp;
if (filename!=NULL) {
-#ifdef KPATHSEA
filename = KP_find_file(&kp_dict,filename);
-#endif
if(kpse_in_name_ok(filename))
fp=nkf_open(filename,"rb");
else
@@ -83,11 +80,11 @@ int dicread(const char *filename)
for (i=0;;i++) {
if (mfgets(buff,4095,fp)==NULL) break;
- if ((buff[0]=='\n')||(buff[0]=='\0')) i--;
+ if ((buff[0]=='\r')||(buff[0]=='\n')||(buff[0]=='\0')) i--;
}
nkf_close(fp);
- dictable=malloc(sizeof(struct dictionary)*i);
+ dictable=xmalloc(sizeof(struct dictionary)*i);
dlines=dicvalread(filename,dictable,i);
@@ -95,15 +92,9 @@ int dicread(const char *filename)
}
ENV:
-#ifdef KPATHSEA
- envfile=KP_get_value("INDEXDEFAULTDICTIONARY",NULL);
-#else
- envfile=getenv("INDEXDEFAULTDICTIONARY");
-#endif
+ envfile=kpse_var_value("INDEXDEFAULTDICTIONARY");
if ((envfile!=NULL)&&(strlen(envfile)!=0)) {
-#ifdef KPATHSEA
envfile = KP_find_file(&kp_dict,envfile);
-#endif
if(kpse_in_name_ok(envfile))
fp=nkf_open(envfile,"rb");
else
@@ -116,11 +107,11 @@ ENV:
for (i=0;;i++) {
if (mfgets(buff,255,fp)==NULL) break;
- if ((buff[0]=='\n')||(buff[0]=='\0')) i--;
+ if ((buff[0]=='\r')||(buff[0]=='\n')||(buff[0]=='\0')) i--;
}
nkf_close(fp);
- envdic=malloc(sizeof(struct dictionary)*i);
+ envdic=xmalloc(sizeof(struct dictionary)*i);
elines=dicvalread(envfile,envdic,i);
@@ -147,12 +138,12 @@ static int dicvalread(const char *filename, struct dictionary *dicval, int line)
}
for (i=0;i<line;i++) {
if (mfgets(buff,255,fp)==NULL) break;
- if ((buff[0]=='\n')||(buff[0]=='\0')) {
+ if ((buff[0]=='\r')||(buff[0]=='\n')||(buff[0]=='\0')) {
i--;
continue;
}
for (j=0;((buff[j]==' ')||(buff[j]=='\t'));j++);
- for (k=0;((buff[j]!='\n')&&(buff[j]!=' ')&&(buff[j]!='\t'));j++,k++) {
+ for (k=0;((buff[j]!='\r')&&(buff[j]!='\n')&&(buff[j]!=' ')&&(buff[j]!='\t'));j++,k++) {
dicval[i].dic[0][k]=buff[j];
}
dicval[i].dic[0][k]='\0';
@@ -161,7 +152,7 @@ static int dicvalread(const char *filename, struct dictionary *dicval, int line)
continue;
}
for (;((buff[j]==' ')||(buff[j]=='\t'));j++);
- for (k=0;((buff[j]!='\n')&&(buff[j]!=' ')&&(buff[j]!='\t'));j++,k++) {
+ for (k=0;((buff[j]!='\r')&&(buff[j]!='\n')&&(buff[j]!=' ')&&(buff[j]!='\t'));j++,k++) {
dicval[i].dic[1][k]=buff[j];
}
dicval[i].dic[1][k]='\0';