]> git.lyx.org Git - features.git/commitdiff
Herbert's patch supporting more graphics formats.
authorAngus Leeming <leeming@lyx.org>
Fri, 1 Mar 2002 09:58:15 +0000 (09:58 +0000)
committerAngus Leeming <leeming@lyx.org>
Fri, 1 Mar 2002 09:58:15 +0000 (09:58 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3621 a592a061-630c-0410-9148-cb99ea01b6c8

lib/ChangeLog
lib/configure.m4
src/support/ChangeLog
src/support/filetools.C

index 4909b31794384fd6962060dc377fcd7352549778..b0db0b0925ffc8d22133326f00de406f70acc779 100644 (file)
@@ -6,6 +6,10 @@
 
        * ui/default.ui: change Layout>LaTeX Preamble to Layout>Preamble.
 
+2002-02-23  Herbert Voss  <voss@perce.de>
+
+       * configure.m4: added converter stuff for different formats
+
 2002-02-13  José Matos  <jamatos@fep.up.pt>
 
        * examples/linuxdoc_manpage.lyx: added
index 431589569c5be37da5d2fbc582afa837aa493b43..15ff8aea8c9780023ea60769dc31ec03188e861a 100644 (file)
@@ -355,7 +355,7 @@ esac
 #### Search for image conversion ####
 SEARCH_PROG([for an Image -> EPS converter], TOEPS, convert pnmtops)
 case $TOEPS in
-       convert) gif_to_eps="convert GIF:\$\$i EPS:\$\$o" png_to_eps="convert PNG:\$\$i EPS:\$\$o" jpg_to_eps="convert JPG:\$\$i EPS:\$\$o";;
+       convert) bmp_to_eps="convert BMP:\$\$i EPS:\$\$o" fits_to_eps="convert FITS:\$\$i EPS:\$\$o" gif_to_eps="convert GIF:\$\$i EPS:\$\$o" jpg_to_eps="convert JPG:\$\$i EPS:\$\$o" pbm_to_eps="convert PBM:\$\$i EPS:\$\$o" pgm_to_eps="convert PGM:\$\$i EPS:\$\$o" png_to_eps="convert PNG:\$\$i EPS:\$\$o" ppm_to_eps="convert PPM:\$\$i EPS:\$\$o" sgi_to_eps="convert SGI:\$\$i EPS:\$\$o" xwd_to_eps="convert XWD:\$\$i EPS:\$\$o" ;;
        pnmtops) gif_to_eps="giftopnm \$\$i | pnmtops > \$\$o" png_to_eps="pngtopnm \$\$i | pnmtops >\$\$o" jpg_to_eps="jpegtopnm \$\$i | pnmtops >\$\$o";;
 esac
 
@@ -452,11 +452,14 @@ cat >$outfile <<EOF
 \\Format text    txt   ASCII           A
 \\Format textparagraph txt ASCII(paragraphs)   ""
 \\Format docbook  sgml DocBook         B
+\\Format bmp      bmp  BMP             ""
 \\Format dvi     dvi   DVI             D
 \\Format eps     eps   EPS             ""
-\\Format epsi     epsi  EPSI    ""
+\\Format epsi     epsi  EPSI           ""
 \\Format fax     ""    Fax             ""
+\\Format fits     fits FITS            ""
 \\Format gif      gif  GIF             ""
+\\Format grace    agr  GRACE           ""
 \\Format html    html  HTML            H
 \\Format jpg      jpg  JPEG            ""
 \\Format latex   tex   LaTeX           L
@@ -466,10 +469,17 @@ cat >$outfile <<EOF
 \\Format pdf     pdf   PDF             P
 \\Format pdf2    pdf  "PDF (pdflatex)" F
 \\Format pdf3    pdf  "PDF (dvipdfm)"  m
+\\Format pbm     pbm   PBM             ""
+\\Format pgm     pgm   PGM             ""
 \\Format png     png   PNG             ""
+\\Format ppm     ppm   PPM             ""
 \\Format ps      ps    Postscript      t
 \\Format program  ""   Program         ""
+\\Format sgi      sgi  SGI             ""
+\\Format tgif     tgif TGIF            ""
+\\Format tiff     tif  TIFF            ""
 \\Format xpm      xpm   XPM             ""
+\\Format xwd      xwd  XWD             ""
 \\Format word    doc   Word            W
 
 \\converter latex dvi "$latex_to_dvi" "latex"
@@ -492,9 +502,22 @@ cat >$outfile <<EOF
 \\converter html latex "$html_to_latex_command" ""
 \\converter word latex "$word_to_latex_command" ""
 
+\\converter agr  eps "xmgrace -hardcopy -hdevice EPS \$\$i" ""
+\\converter bmp  eps "$bmp_to_eps" ""
+\\converter fits  eps "$fits_to_eps" ""
 \\converter gif  eps "$gif_to_eps" ""
-\\converter png  eps "$png_to_eps" ""
 \\converter jpg  eps "$jpg_to_eps" ""
+\\converter pbm  eps "$pbm_to_eps" ""
+\\converter pgm  eps "$pgm_to_eps" ""
+\\converter png  eps "$png_to_eps" ""
+\\converter ppm  eps "$ppm_to_eps" ""
+\\converter sgi  eps "$sgi_to_eps" ""
+\\converter tgif eps "tgif -print -eps \$\$i" ""
+\\converter tiff eps "tiff2ps \$\$i > \$\$o" ""
+\\converter xwd  eps "$xwd_to_eps" ""
+
+\\converter tgif gif "tgif -print -gif \$\$i" ""
+\\converter tgif pdf "tgif -print -pdf \$\$i" ""
 
 \\converter gif  png "$gif_to_png" ""
 \\converter eps  png "$eps_to_png" ""
index 79caa3932c8ea8cec1b74155b630d446879b7b98..2121d9e3f81e4d27c8ed4ca64c011b7fcb370c39 100644 (file)
        * os2_errortable.h:
        * nt_defines.h: moved from src/
  
+2002-02-23  Herbert Voss  <voss@perce.de>
+
+       * filetools.C: added more graphic formats
+
 2002-02-18  Herbert Voss  <voss@perce.de>
 
        * filetools.C: (getExtFromContents) return the fileextension
index 6f2376999ab61520c019a00ee0c390554d2f2e95..4792c70d0c8f2bb62e2841b92ec6510434bfe8d6 100644 (file)
@@ -966,16 +966,24 @@ string const GetExtension(string const & name)
 
 // the different filetypes and what they contain in one of the first lines
 // (dots are any characters).          (Herbert 20020131)
+// AGR Grace...
+// BMP BM...
 // EPS %!PS-Adobe-3.0 EPSF...
-// TGIF        %TGIF...
+// FITS ...BITPIX...
 // GIF GIF...
-// GRACE Grace ...
 // JPG JFIF
 // PDF %PDF-...
 // PNG .PNG...
+// PBM P1... or P4     (B/W)
+// PGM P2... or P5     (Grayscale)
+// PPM P3... or P6     (color)
 // PS  %!PS-Adobe-2.0 or 1.0,  no "EPSF"!
+// SGI \001\332...     (decimal 474)
+// TGIF        %TGIF...
+// TIFF        II... or MM...
 // XBM ... static char ...
 // XPM /* XPM */
+// XWD \000\000\000\151        (0x00006900)
 //
 // GZIP        \037\213\010\010...     http://www.ietf.org/rfc/rfc1952.txt
 // ZIP PK...                   http://www.halyava.ru/document/ind_arch.htm
@@ -996,33 +1004,63 @@ string const getExtFromContents(string const & filename) {
        int const max_count = 50;       // Maximum strings to read
        int count = 0;                  // Counter of attempts.
        string str;
-       bool zipChecked = false;
+       bool firstLine = true;
        for (; count < max_count; ++count) {
                if (ifs.eof()) {
-                       lyxerr[Debug::GRAPHICS] << "filetools(getExtFromContents)"
-                               " End of file reached and it wasn't found to be a known Type!" << endl;
+                       lyxerr[Debug::GRAPHICS] << "filetools(getExtFromContents)\n"
+                               "\tEnd of file reached and it wasn't found a known Type!" << endl;
                        break;
                }
                ifs >> str;
-               if (!zipChecked) {
+               if (firstLine) {
                    // at first we check for a zipped file, because this information
                    // is saved in the first bytes of the file!
+                   // also some graphic formats which save the information
+                   // in the first line, too.
                    if (str.substr(0,4) == gzipStamp)
                        return "gzip";
-                   else if (str.substr(0,2) == zipStamp)
+                   string const stamp = str.substr(0,2);
+                   if (stamp == zipStamp)
                        return "zip";
-                   else if (str.substr(0,2) == compressStamp)
+                   else if (stamp == compressStamp)
                        return "compress";
-                   zipChecked = true;
+                   // the graphics part
+                   else if (stamp == "BM")
+                       return "bmp";
+                   else if (str.at(0) == 'P') {        // PBM family
+                       switch (str.at(1)) {
+                           case '1':
+                           case '4':
+                               return "pbm";
+                           break;
+                           case '2':
+                           case '5':
+                               return "pgm";
+                           break;
+                           case '3':
+                           case '6':
+                               return "ppm";
+                           break;
+                           default: ;                  // do nothing
+                       }
+                   } 
+                   if (stamp == "\001\332")
+                       return "sgi";
+                   else if ((stamp == "II") || (stamp == "MM"))
+                       return "tiff";
+                   else if (str.substr(0,3) == "GIF")
+                       return "gif";
+                   else if ((str.at(3) == 'i') && (str.at(0) == '\000') &&
+                            (str.at(1) == '\000') && (str.at(2) == '\000'))
+                       return "xwd";
+                   firstLine = false;
                }
                if (contains(str,"EPSF")) // dummy, if we have wrong file
                    return "eps";         // description like "%!PS-Adobe-2.0EPSF"
                else if (contains(str,"TGIF"))
                    return "tgif";
-               else if (contains(str,"GIF"))
-                   return "gif";
                else if (contains(str,"Grace"))
-                   return "grace";
+                   return "agr";
                else if (contains(str,"JFIF"))
                    return "jpg";
                else if (contains(str,"%PDF"))
@@ -1039,6 +1077,8 @@ string const getExtFromContents(string const & filename) {
                    return "xbm";
                else if (contains(str,"XPM"))
                    return "xpm";
+               else if (contains(str,"BITPIX"))
+                   return "fits";
        }
        lyxerr[Debug::GRAPHICS] << "filetools(getExtFromContents)\n"
                "\tCouldn't find a known Type!"