'\" t
.TH mkmanifest 1 "08Jan22" mtools-4.0.37
.SH Name
mkmanifest - makes list of file names and their DOS 8+3 equivalent
'\" t
.de TQ
.br
.ns
.TP \\$1
..

.tr \(is'
.tr \(if`
.tr \(pd"

.SH Note\ of\ warning
This manpage has been automatically generated from mtools's texinfo
documentation, and may not be entirely accurate or complete.  See the
end of this man page for details.
.PP
.SH Description
.PP
The \fR\&\f(CWmkmanifest\fR command is used to create a shell script (packing
list) to restore Unix filenames. Its syntax is:
.PP
\&\fR\&\f(CWmkmanifest\fR [ \fIfiles\fR ]
.PP
\&\fR\&\f(CWMkmanifest\fR creates a shell script that aids in the restoration of
Unix filenames that got clobbered by the MS-DOS filename restrictions.
MS-DOS filenames are restricted to 8 character names, 3 character
extensions, upper case only, no device names, and no illegal characters.
.PP
The mkmanifest program is compatible with the methods used in
\&\fR\&\f(CWpcomm, arc,\fR and \fR\&\f(CWmtools\fR to change perfectly good Unix
filenames to fit the MS-DOS restrictions. This command is only useful if
the target system which will read the diskette cannot handle VFAT long
names.
.PP
.SH Example
You want to copy the following Unix files to a MS-DOS diskette (using the
\&\fR\&\f(CWmcopy\fR command).
.PP
 
.nf
.ft 3
.in +0.3i
  very_long_name
  2.many.dots
  illegal:
  good.c
  prn.dev
  Capital
.fi
.in -0.3i
.ft R
.PP
 
\&\fR
.PP
\&\fR\&\f(CWASCII\fR
converts the names to:
.PP
 
.nf
.ft 3
.in +0.3i
  very_lon
  2xmany.dot
  illegalx
  good.c
  xprn.dev
  capital
.fi
.in -0.3i
.ft R
.PP
 
\&\fR
.PP
The command:
 
.nf
.ft 3
.in +0.3i
mkmanifest very_long_name 2.many.dots illegal: good.c prn.dev Capital >manifest
.fi
.in -0.3i
.ft R
.PP
 
\&\fRwould produce the following:
 
.nf
.ft 3
.in +0.3i
  mv very_lon very_long_name
  mv 2xmany.dot 2.many.dots
  mv illegalx illegal:
  mv xprn.dev prn.dev
  mv capital Capital
.fi
.in -0.3i
.ft R
.PP
 
\&\fR
.PP
Notice that "good.c" did not require any conversion, so it did not
appear in the output.
.PP
Suppose I've copied these files from the diskette to another Unix
system, and I now want the files back to their original names.  If the
file "manifest" (the output captured above) was sent along with those
files, it could be used to convert the filenames.
.PP
.SH Bugs
.PP
The short names generated by \fR\&\f(CWmkmanifest\fR follow the old convention
(from mtools-2.0.7) and not the one from Windows 95 and mtools-3.0.
.PP
.SH See\ Also
Mtools' texinfo doc
.SH Viewing\ the\ texi\ doc
This manpage has been automatically generated from mtools's texinfo
documentation. However, this process is only approximative, and some
items, such as crossreferences, footnotes and indices are lost in this
translation process.  Indeed, these items have no appropriate
representation in the manpage format.  Moreover, not all information has
been translated into the manpage version.  Thus I strongly advise you to
use the original texinfo doc.  See the end of this manpage for
instructions how to view the texinfo doc.
.TP
* \ \ 
To generate a printable copy from the texinfo doc, run the following
commands:
 
.nf
.ft 3
.in +0.3i
    ./configure; make dvi; dvips mtools.dvi
.fi
.in -0.3i
.ft R
.PP
 
\&\fR
.TP
* \ \ 
To generate a html copy,  run:
 
.nf
.ft 3
.in +0.3i
    ./configure; make html
.fi
.in -0.3i
.ft R
.PP
 
\&\fRA premade html can be found at
\&\fR\&\f(CW\(ifhttp://www.gnu.org/software/mtools/manual/mtools.html\(is\fR
.TP
* \ \ 
To generate an info copy (browsable using emacs' info mode), run:
 
.nf
.ft 3
.in +0.3i
    ./configure; make info
.fi
.in -0.3i
.ft R
.PP
 
\&\fR
.PP
The texinfo doc looks most pretty when printed or as html.  Indeed, in
the info version certain examples are difficult to read due to the
quoting conventions used in info.
.PP
