Milos Komarcevic <[EMAIL PROTECTED]> writes: > > Ruurd, thanks a lot for the updated version! > > I do have some problems with it though, maybe someone on the > list could confirm them and provide some help. > > > Your mention of the inclusion of a newer version of Sed.exe has also > > addressed another of my questions. > > > > > > > FYI, I did include the new sed.exe and fixed the path thing in > > > configure.bat. > > - I couldn't see this new sed version in lyx-1.3.5-win32-nc.exe > It seems to be the old one, identical to the one packaged with > 1.3.3, so my LaTeX configuration file is still 0 bytes. Is there > a newer package? Can someone confirm this? >
This bug can be overcomed by modifying the configure the script like this: $ diff -u configure.orig configure --- configure.orig 2005-01-03 17:40:28.000000000 +0100 +++ configure 2005-01-04 17:11:16.000000000 +0100 @@ -1241,6 +1241,7 @@ echo "creating doc/LaTeXConfig.lyx" echo "s/@chk_linuxdoc@/$chk_linuxdoc/g" >> chkconfig.sed echo "s/@chk_docbook@/$chk_docbook/g" >> chkconfig.sed +dos2iso chkconfig.sed sed -f chkconfig.sed ${srcdir}/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx echo "creating $outfile" and putting dos2iso.exe in the lyx bin directory. I have included the C source dos2iso.c at the bottom of this email (compile with WIN32 defined). > - The convertDefault.sh script doesn't work again, it always fails > when testing for converted file existance. I had to comment those > lines out in order to get the figures to display in LyX > This is due to a nasty feature of the shell sh.exe included in the package. If you installed lyx in C:/Programs/lyx, then any path of the form C:/Programs/lyx/tmp/anything gets translated to %TEMP%/anything, where %TEMP% is the windows temporary files location. To test this, try opening a dos terminal and launching sh.exe, then try "cd C:/Programs/lyx/tmp" and see where you end up.... I have also Cygwin installed and noticed that if using cygwin pathnames this does not occur, i.e., "cd /c/Programs/lyx/tmp" works (I mounted /c on C: under cygwin). For those with Cygwin, this patch works: $ diff -u convertDefault.sh.orig convertDefault.sh --- convertDefault.sh.orig 2005-01-03 17:40:30.000000000 +0100 +++ convertDefault.sh 2005-01-05 19:00:14.000000000 +0100 @@ -28,7 +28,13 @@ # so use everything from the first ':' to the end of the line. FILE=`echo "$2" | cut -d ':' -f 2-` -test -f "$FILE" || { +# The shell sh.exe distributed with LyX behaves strangely: +# The references to $INSTDIR/tmp get translated to $TEMP if $INSTDIR is of +# the type "C:/xyz", but not translated if it is a cygwin path like "/c/xyz". +# Hence, $FILE would not be found because it is searched in the wrong place! +CYGFILE=`cygpath $FILE` + +test -f "$CYGFILE" || { echo "$0 ERROR" echo "Unable to find file \"${FILE}\"" exit 1 This "feature" of sh.exe was also responsible for the failure of the old script lyxpreview2bitmap.sh, used for instant preview. > - The display of fonts in math mode with Qt 3.2.1 non-commerical > is much worse than with 2.3.0, but I guess someone already mentioned > this. I hope it can be fixed somehow because it's very annoying. > Indeed. For this reason I am still using 1.3.3 with instant preview, as in 1.3.5 the script for the pixmaps generation cannot be launched due to a "Exec format error" ??? > Regards, > Milos > > Regards, Enrico $ cat dos2iso.c /* * A utility to convert text files from/to MSDOS * * If named dos2iso will convert from MSDOS char set to iso8859-1 char set * If named iso2dos will convert from iso8859-1 char set to MSDOS char set * * $Revision: 1.2 $ * * $Log: dos2iso.c,v $ * Revision 1.2 2004/03/16 23:59:19 enrico * If output filename missing, convert in place. * * Revision 1.1 1996/11/03 22:29:19 enrico * Now converts between MSDOS and ISO Latin 1 char sets. * * Revision 1.0 1996/11/03 19:14:46 enrico * Initial revision * */ #include <stdio.h> #include <stdlib.h> #include <string.h> unsigned char dos2iso[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 0 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, /* 10 */ 20,167, 22, 23, 24, 25, 26, 27, 28, 29, /* 20 */ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, /* 30 */ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, /* 40 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, /* 50 */ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, /* 60 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 70 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, /* 80 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, /* 90 */ 100,101,102,103,104,105,106,107,108,109, /* 100 */ 110,111,112,113,114,115,116,117,118,119, /* 110 */ 120,121,122,123,124,125,126,127,199,252, /* 120 */ 233,226,228,224,229,231,234,235,232,239, /* 130 */ 238,236,196,197,200,230,198,244,246,242, /* 140 */ 251,249,255,214,220,162,163,165,223,102, /* 150 */ 225,237,243,218,241,209,170,186,191,225, /* 160 */ 172,189,188,161,171,187, 35, 35, 35,124, /* 170 */ 43, 43, 43, 43, 43, 43,124, 43, 43, 43, /* 180 */ 43, 43, 43, 43, 43, 43,196, 43, 43, 43, /* 190 */ 43, 43, 43, 43, 43,173, 43, 43, 43, 43, /* 200 */ 43, 43, 43, 43,214, 43, 43, 43, 43, 35, /* 210 */ 220, 35, 35,223, 97,223, 71,182,228,115, /* 220 */ 181,116, 70,216, 79,240, 56,248,101,110, /* 230 */ 61,177, 62, 60, 83,228,246, 61,176,183, /* 240 */ 183, 86,252,178, 35, 32 /* 250 */ }; unsigned char iso2dos[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 0 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, /* 10 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, /* 20 */ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, /* 30 */ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, /* 40 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, /* 50 */ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, /* 60 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 70 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, /* 80 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, /* 90 */ 100,101,102,103,104,105,106,107,108,109, /* 100 */ 110,111,112,113,114,115,116,117,118,119, /* 110 */ 120,121,122,123,124,125,126,127,128,129, /* 120 */ 130,131,132,133,134,135,136,137,138,139, /* 130 */ 140,141,142,143,144,145,146,147,148,149, /* 140 */ 150,151,152,153,154,155,156,157,158,159, /* 150 */ 160,173,155,156,248,157,124, 21, 34, 99, /* 160 */ 166,174,170, 45, 82,126,248,241,253, 51, /* 170 */ 96,230,227,249, 44, 49,167,175,172,171, /* 180 */ 190,168, 65, 65, 65, 65,142,143,146,128, /* 190 */ 144,144,144, 73, 73, 73, 73, 73, 68,165, /* 200 */ 79, 79, 79, 79,153,120,233,163,163,150, /* 210 */ 154, 89, 98,225,133,160,131,160,132,134, /* 220 */ 145,135,138,130,136,137,141,161,140,139, /* 230 */ 235,164,149,162,149,149,148,246,237,151, /* 240 */ 163,150,129,121, 98,152 /* 250 */ }; #define MAXLEN 256 FILE *infile; FILE *outfile; #ifndef WIN32 char *progname; #else char progname[MAXLEN] = { 0 }; #endif char buf[MAXLEN] = { 0 }; void Fputc(int, FILE *); void Fputs(char *, FILE *); void toDOS(void); void toUnix(void); int main(int ac, char *av[]) { char *s, *outname; #ifdef WIN32 for (s = av[0]+strlen(av[0]); s >= av[0] && *s != '\\' && *s != ':'; --s); strncpy(progname, ++s, MAXLEN-1); if ((s = strstr(progname, ".exe")) != NULL) { *s = 0; } #else for (s = av[0]+strlen(av[0]); s >= av[0] && *s != '/' && *s != ':'; --s); ++s; progname = s; #endif if (ac == 2) { strncpy(buf, av[1], MAXLEN-5); strcat(buf, ".tmp"); outname = buf; } else if (ac == 3) { outname = av[2]; } else { fprintf(stderr, "Usage: %s infile [outfile]\n", progname); exit(EXIT_FAILURE); } if (NULL == (infile = fopen(av[1], "rb"))) { fprintf(stderr, "%s: can't open input file %s\n", progname, av[1]); return EXIT_FAILURE; } if (NULL == (outfile = fopen(outname, "wb"))) { fprintf(stderr, "%s: can't open output file %s\n", progname, outname); return EXIT_FAILURE; } if (strcmp(progname, "dos2iso") == 0) toUnix(); else toDOS(); fclose(infile); fclose(outfile); if (ac == 2) { if (remove(av[1]) != 0) { sprintf(buf, "%s: Cannot remove `%s'", progname, av[1]); perror(buf); return EXIT_FAILURE; } if (rename(outname, av[1]) != 0) { sprintf(buf, "%s: Cannot rename `%s'", progname, av[1]); perror(buf); return EXIT_FAILURE; } } return EXIT_SUCCESS; } void Fputc(int ch, FILE *outfile) { if (EOF == fputc(ch, outfile)) { perror(progname); exit(EXIT_FAILURE); } } void Fputs(char *str, FILE *outfile) { if (EOF == fputs(str, outfile)) { perror(progname); exit(EXIT_FAILURE); } } void toDOS(void) { int ch, lastch = 0; while (EOF != (ch = fgetc(infile))) { if ('\n' == ch && '\r' != lastch) Fputc('\r', outfile); lastch = ch; while (EOF != (ch = fgetc(infile))) { if ('\n' == ch && '\r' != lastch) Fputc('\r', outfile); lastch = ch; Fputc(iso2dos[ch], outfile); } if ('\n' != lastch) Fputs("\r\n", outfile); } void toUnix(void) { int ch, lastch = 0; while (EOF != (ch = fgetc(infile)) && '\x1a' != ch) { if ('\r' != ch) { lastch = ch; Fputc(dos2iso[ch], outfile); } } if ('\n' != lastch) Fputc('\n', outfile); }