home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd1.bin / files / text / print / casslabel / source / translate.c < prev   
Encoding:
C/C++ Source or Header  |  1994-06-05  |  7.9 KB  |  399 lines

  1. /* $VER: translate.c 2.1 (05.06.94)
  2.  */
  3.  
  4. #include "global.h"
  5.  
  6. /**********************************************************************
  7.  *               Translating ISO-Latin1 -> LaTeX code                 *
  8.  **********************************************************************/
  9. char *translate_to_latex(const char *input)
  10. {
  11.     static char output[512];
  12.     int i = 0, pos = 0;
  13.  
  14.     while (input[i])
  15.     {
  16.         switch (input[i])
  17.         {
  18.             case '-':
  19.                 output[pos++] = '-';
  20.                 output[pos++] = '-';
  21.                 break;
  22.             case '#':
  23.                 output[pos++] = '\\';
  24.                 output[pos++] = '#';
  25.                 break;
  26.             case '$':
  27.                 output[pos++] = '\\';
  28.                 output[pos++] = '$';
  29.                 break;
  30.             case '%':
  31.                 output[pos++] = '\\';
  32.                 output[pos++] = '%';
  33.                 break;
  34.             case '&':
  35.                 output[pos++] = '\\';
  36.                 output[pos++] = '&';
  37.                 break;
  38.             case '[':
  39.                 output[pos++] = '$';
  40.                 output[pos++] = '[';
  41.                 output[pos++] = '$';
  42.                 break;
  43.             case '\\':
  44.                 strcpy(&output[pos], "$\\backslash$");
  45.                 pos += 12;
  46.                 break;
  47.             case ']':
  48.                 output[pos++] = '$';
  49.                 output[pos++] = ']';
  50.                 output[pos++] = '$';
  51.                 break;
  52.             case '¡':
  53.                 output[pos++] = '!';
  54.                 output[pos++] = '`';
  55.                 break;
  56.             case '£':
  57.                 output[pos++] = '\\';
  58.                 output[pos++] = 'i';
  59.                 output[pos++] = 't';
  60.                 output[pos++] = '\\';
  61.                 output[pos++] = '$';
  62.                 break;
  63.             case '§':
  64.                 output[pos++] = '{';
  65.                 output[pos++] = '\\';
  66.                 output[pos++] = 'S';
  67.                 output[pos++] = '}';
  68.                 break;
  69.             case '¿':
  70.                 output[pos++] = '?';
  71.                 output[pos++] = '`';
  72.                 break;
  73.             case 'À':
  74.                 output[pos++] = '\\';
  75.                 output[pos++] = '`';
  76.                 output[pos++] = 'A';
  77.                 break;
  78.             case 'Á':
  79.                 output[pos++] = '\\';
  80.                 output[pos++] = '\'';
  81.                 output[pos++] = 'A';
  82.                 break;
  83.             case 'Â':
  84.                 output[pos++] = '\\';
  85.                 output[pos++] = '^';
  86.                 output[pos++] = 'A';
  87.                 break;
  88.             case 'Ã':
  89.                 output[pos++] = '\\';
  90.                 output[pos++] = '~';
  91.                 output[pos++] = 'A';
  92.                 break;
  93.             case 'Ä':
  94.                 output[pos++] = '\\';
  95.                 output[pos++] = '"';
  96.                 output[pos++] = 'A';
  97.                 break;
  98.             case 'Å':
  99.                 output[pos++] = '\\';
  100.                 output[pos++] = 'A';
  101.                 output[pos++] = 'A';
  102.                 output[pos++] = '{';
  103.                 output[pos++] = '}';
  104.                 break;
  105.             case 'Æ':
  106.                 output[pos++] = '\\';
  107.                 output[pos++] = 'A';
  108.                 output[pos++] = 'E';
  109.                 output[pos++] = '{';
  110.                 output[pos++] = '}';
  111.                 break;
  112.             case 'Ç':
  113.                 output[pos++] = '\\';
  114.                 output[pos++] = 'c';
  115.                 output[pos++] = ' ';
  116.                 output[pos++] = 'C';
  117.                 break;
  118.             case 'È':
  119.                 output[pos++] = '\\';
  120.                 output[pos++] = '`';
  121.                 output[pos++] = 'E';
  122.                 break;
  123.             case 'É':
  124.                 output[pos++] = '\\';
  125.                 output[pos++] = '\'';
  126.                 output[pos++] = 'E';
  127.                 break;
  128.             case 'Ê':
  129.                 output[pos++] = '\\';
  130.                 output[pos++] = '^';
  131.                 output[pos++] = 'E';
  132.                 break;
  133.             case 'Ë':
  134.                 output[pos++] = '\\';
  135.                 output[pos++] = '"';
  136.                 output[pos++] = 'E';
  137.                 break;
  138.             case 'Ì':
  139.                 output[pos++] = '\\';
  140.                 output[pos++] = '`';
  141.                 output[pos++] = 'I';
  142.                 break;
  143.             case 'Í':
  144.                 output[pos++] = '\\';
  145.                 output[pos++] = '\'';
  146.                 output[pos++] = 'I';
  147.                 break;
  148.             case 'Î':
  149.                 output[pos++] = '\\';
  150.                 output[pos++] = '^';
  151.                 output[pos++] = 'I';
  152.                 break;
  153.             case 'Ï':
  154.                 output[pos++] = '\\';
  155.                 output[pos++] = '"';
  156.                 output[pos++] = 'I';
  157.                 break;
  158.             case 'Ñ':
  159.                 output[pos++] = '\\';
  160.                 output[pos++] = '~';
  161.                 output[pos++] = 'N';
  162.                 break;
  163.             case 'Ò':
  164.                 output[pos++] = '\\';
  165.                 output[pos++] = '`';
  166.                 output[pos++] = 'O';
  167.                 break;
  168.             case 'Ó':
  169.                 output[pos++] = '\\';
  170.                 output[pos++] = '\'';
  171.                 output[pos++] = 'O';
  172.                 break;
  173.             case 'Õ':
  174.                 output[pos++] = '\\';
  175.                 output[pos++] = '~';
  176.                 output[pos++] = 'O';
  177.                 break;
  178.             case 'Ö':
  179.                 output[pos++] = '\\';
  180.                 output[pos++] = '"';
  181.                 output[pos++] = 'O';
  182.                 break;
  183.             case 'Ô':
  184.                 output[pos++] = '\\';
  185.                 output[pos++] = '^';
  186.                 output[pos++] = 'O';
  187.                 break;
  188.             case 'Ø':
  189.                 output[pos++] = '\\';
  190.                 output[pos++] = 'O';
  191.                 output[pos++] = '{';
  192.                 output[pos++] = '}';
  193.                 break;
  194.             case 'Ù':
  195.                 output[pos++] = '\\';
  196.                 output[pos++] = '`';
  197.                 output[pos++] = 'U';
  198.                 break;
  199.             case 'Ú':
  200.                 output[pos++] = '\\';
  201.                 output[pos++] = '\'';
  202.                 output[pos++] = 'U';
  203.                 break;
  204.             case 'Û':
  205.                 output[pos++] = '\\';
  206.                 output[pos++] = '^';
  207.                 output[pos++] = 'U';
  208.                 break;
  209.             case 'Ü':
  210.                 output[pos++] = '\\';
  211.                 output[pos++] = '"';
  212.                 output[pos++] = 'U';
  213.                 break;
  214.             case 'Ý':
  215.                 output[pos++] = '\\';
  216.                 output[pos++] = '\'';
  217.                 output[pos++] = 'Y';
  218.                 break;
  219.             case 'ß':
  220.                 output[pos++] = '\\';
  221.                 output[pos++] = 's';
  222.                 output[pos++] = 's';
  223.                 output[pos++] = '{';
  224.                 output[pos++] = '}';
  225.                 break;
  226.             case 'à':
  227.                 output[pos++] = '\\';
  228.                 output[pos++] = '`';
  229.                 output[pos++] = 'a';
  230.                 break;
  231.             case 'á':
  232.                 output[pos++] = '\\';
  233.                 output[pos++] = '\'';
  234.                 output[pos++] = 'a';
  235.                 break;
  236.             case 'â':
  237.                 output[pos++] = '\\';
  238.                 output[pos++] = '^';
  239.                 output[pos++] = 'a';
  240.                 break;
  241.             case 'ã':
  242.                 output[pos++] = '\\';
  243.                 output[pos++] = '~';
  244.                 output[pos++] = 'a';
  245.                 break;
  246.             case 'ä':
  247.                 output[pos++] = '\\';
  248.                 output[pos++] = '"';
  249.                 output[pos++] = 'a';
  250.                 break;
  251.             case 'å':
  252.                 output[pos++] = '\\';
  253.                 output[pos++] = 'a';
  254.                 output[pos++] = 'a';
  255.                 output[pos++] = '{';
  256.                 output[pos++] = '}';
  257.                 break;
  258.             case 'æ':
  259.                 output[pos++] = '\\';
  260.                 output[pos++] = 'a';
  261.                 output[pos++] = 'e';
  262.                 output[pos++] = '{';
  263.                 output[pos++] = '}';
  264.                 break;
  265.             case 'ç':
  266.                 output[pos++] = '\\';
  267.                 output[pos++] = 'c';
  268.                 output[pos++] = ' ';
  269.                 output[pos++] = 'c';
  270.                 break;
  271.             case 'è':
  272.                 output[pos++] = '\\';
  273.                 output[pos++] = '`';
  274.                 output[pos++] = 'e';
  275.                 break;
  276.             case 'é':
  277.                 output[pos++] = '\\';
  278.                 output[pos++] = '\'';
  279.                 output[pos++] = 'e';
  280.                 break;
  281.             case 'ê':
  282.                 output[pos++] = '\\';
  283.                 output[pos++] = '^';
  284.                 output[pos++] = 'e';
  285.                 break;
  286.             case 'ë':
  287.                 output[pos++] = '\\';
  288.                 output[pos++] = '"';
  289.                 output[pos++] = 'e';
  290.                 break;
  291.             case 'ì':
  292.                 output[pos++] = '\\';
  293.                 output[pos++] = '`';
  294.                 output[pos++] = '\\';
  295.                 output[pos++] = 'i';
  296.                 output[pos++] = '{';
  297.                 output[pos++] = '}';
  298.                 break;
  299.             case 'í':
  300.                 output[pos++] = '\\';
  301.                 output[pos++] = '\'';
  302.                 output[pos++] = '\\';
  303.                 output[pos++] = 'i';
  304.                 output[pos++] = '{';
  305.                 output[pos++] = '}';
  306.                 break;
  307.             case 'î':
  308.                 output[pos++] = '\\';
  309.                 output[pos++] = '^';
  310.                 output[pos++] = '\\';
  311.                 output[pos++] = 'i';
  312.                 output[pos++] = '{';
  313.                 output[pos++] = '}';
  314.                 break;
  315.             case 'ï':
  316.                 output[pos++] = '\\';
  317.                 output[pos++] = '"';
  318.                 output[pos++] = '\\';
  319.                 output[pos++] = 'i';
  320.                 output[pos++] = '{';
  321.                 output[pos++] = '}';
  322.                 break;
  323.             case 'ñ':
  324.                 output[pos++] = '\\';
  325.                 output[pos++] = '~';
  326.                 output[pos++] = 'n';
  327.                 break;
  328.             case 'ò':
  329.                 output[pos++] = '\\';
  330.                 output[pos++] = '`';
  331.                 output[pos++] = 'o';
  332.                 break;
  333.             case 'ó':
  334.                 output[pos++] = '\\';
  335.                 output[pos++] = '\'';
  336.                 output[pos++] = 'o';
  337.                 break;
  338.             case 'ô':
  339.                 output[pos++] = '\\';
  340.                 output[pos++] = '^';
  341.                 output[pos++] = 'o';
  342.                 break;
  343.             case 'õ':
  344.                 output[pos++] = '\\';
  345.                 output[pos++] = '~';
  346.                 output[pos++] = 'o';
  347.                 break;
  348.             case 'ö':
  349.                 output[pos++] = '\\';
  350.                 output[pos++] = '"';
  351.                 output[pos++] = 'o';
  352.                 break;
  353.             case 'ø':
  354.                 output[pos++] = '\\';
  355.                 output[pos++] = 'o';
  356.                 output[pos++] = '{';
  357.                 output[pos++] = '}';
  358.                 break;
  359.             case 'ù':
  360.                 output[pos++] = '\\';
  361.                 output[pos++] = '`';
  362.                 output[pos++] = 'u';
  363.                 break;
  364.             case 'ú':
  365.                 output[pos++] = '\\';
  366.                 output[pos++] = '\'';
  367.                 output[pos++] = 'u';
  368.                 break;
  369.             case 'û':
  370.                 output[pos++] = '\\';
  371.                 output[pos++] = '^';
  372.                 output[pos++] = 'u';
  373.                 break;
  374.             case 'ü':
  375.                 output[pos++] = '\\';
  376.                 output[pos++] = '"';
  377.                 output[pos++] = 'u';
  378.                 break;
  379.             case 'ý':
  380.                 output[pos++] = '\\';
  381.                 output[pos++] = '\'';
  382.                 output[pos++] = 'y';
  383.                 break;
  384.             case 'ÿ':
  385.                 output[pos++] = '\\';
  386.                 output[pos++] = '"';
  387.                 output[pos++] = 'y';
  388.                 break;
  389.             default:
  390.                 output[pos++] = input[i];
  391.                 break;
  392.         }
  393.         i++;
  394.     }
  395.     output[pos] = '\0';
  396.  
  397.     return output;
  398. }
  399.