home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / metamail / contrib / dos / README.DOS < prev    next >
Encoding:
Text File  |  1992-04-27  |  3.8 KB  |  116 lines

  1. NOTE:   The latest distribution includes a DOS metamail binary, metamail.exe.  
  2. What follows is not necessary to read unless you want to recompile metamail for
  3. DOS, i.e. if you're not satisfied with the binary version.
  4.  
  5. Notes for using METAMAIL on MS-DOS machines (revised 2/20/92)
  6. By Blake C. Ramsdell (blake@pinpoint.com)
  7.  
  8.  
  9. Introduction
  10.  
  11. This document describes the author's conversion of METAMAIL and some of
  12. its associated components to an MS-DOS environment using the Borland C++
  13. 3.0 compiler.  I have not yet tried Microsoft C in any version, so I
  14. don't know if the code will compile using that compiler or any other
  15. for that matter.
  16.  
  17. Information about patching mail-reading programs on DOS is included in the 
  18. regular "mailers.txt" file in the top-level directory.
  19.  
  20. Method Used
  21.  
  22. To convert the source code, I simply went through and #ifdef'ed anything
  23. that didn't apply or wouldn't work in an MS-DOS environment.
  24.  
  25.  
  26. --------------------------------------------------------------------------
  27. METAMAIL.C / CODES.C / MMENCODE.C NOTES
  28.  
  29. The following changes were made to the source:
  30.  
  31. 1. The #include section was all but removed -- most of the files are not
  32.    distributed with Borland C++, and the others that were removed were
  33.    done so because I removed the calls that would use the information in
  34.    them.
  35.  
  36. 2. The signal() and kill() commands don't need to be supported.  I don't
  37.    know if they even are...  These were removed.
  38.  
  39. 3. The concept of background processing is nonexistent.  I make sure that
  40.    DoInBackground is always 1.
  41.  
  42. 4. The concept of being "root" is nonexistent.  RunAsRootOK is always 0.
  43.  
  44. 5. getuid() and geteuid() are not or do not need to be supported.
  45.    Reference to these were removed.
  46.  
  47. 6. A UNIX path is composed diferently than an MS-DOS path (UNIX uses colons
  48.    to separate entries, MS-DOS uses semicolons).  This is accounted for.
  49.  
  50. 7. getpwuid() is not or does not need to be suported.
  51.  
  52. 8. The concept of setting/getting the TTY state is not or does not need to
  53.    be supported (SaveTtyState(), RestoreTtyState(), gtty(), and stty()).
  54.  
  55. 9. The concept of setting the core dump size limit is not or does not need
  56.    to be supported.
  57.  
  58. 10. Environments in MS-DOS are handled / accessed differently.  This led to
  59.     the rewriting of SetUpEnvironment().  THIS IS MOST LIKELY WHERE ANY
  60.     BUGS EXIST!  Nothing seems to be wrong now...
  61.  
  62. 11. The name formation for temporary filenames is different for MS-DOS.
  63.  
  64. 12. /dev/tty is nonexistent.  Yanked the freopen() calls for this.
  65.  
  66. 13. The stack size for the program MUST be larger than the default assigned
  67.     by the compiler (8192 doesn't work.  16384 seems to be OK...).  This
  68.     is done with the _stklen variable at the top of the program.
  69.  
  70.  
  71. Bugs
  72.  
  73. 1. At some point or another some wise guy is going to try working with a
  74.    binary file.  This makes my brain hurt.  CR/LF/EOF translation might
  75.    possibly be a bear.
  76.  
  77.  
  78. Other notes
  79.  
  80. In the "metamail" and "richmail" directories, there is a makefile for 
  81. Borland C++ called MAKEFILE.BCC.  To compile METAMAIL, just do:
  82.  
  83. make -fmakefile.bcc metamail
  84.  
  85. Also, you can make MMENCODE.EXE by doing the following:
  86.  
  87. make -fmakefile.bcc mmencode
  88.  
  89. And that's it!  Some warnings will be generated, but it should fly.
  90.  
  91.  
  92. --------------------------------------------------------------------------
  93. RICHTEXT.C NOTES
  94.  
  95. 1. Added ansi variable for ANSI support.
  96.  
  97. 2. Added "-a" command line option support for enabling ANSI attribute
  98.    output.
  99.  
  100. 3. Removed getenv("TERM") and associated logic -- it doesn't apply.
  101.  
  102. 4. Set termcolumns to always be 80.  I could probably ask DOS just in case
  103.    it's different, but I don't think that it's a big deal.
  104.  
  105. 5. NULLed out KS, KE, standoutbuf, standendbuf, StartUnderline, and
  106.    StopUnderline if not in ANSI mode.
  107.  
  108. 6. Put color selection strings into variables listed in 5 if we ARE in ANSI
  109.    mode.
  110.  
  111.  
  112. Other notes
  113.  
  114. Once again there is a makefile.  The target is "richtext".
  115.  
  116.