Hany's Home Page
Software
Hany's Dos2Unix 0.9.2 (development release)
[Author]
[Contributors]
[Description]
[Copying]
[Requirements]
[Download]
[Installation]
[Usage]
[Contribute]
[Changelog]
[Todo]
Author
Peter Hanecak <hany (at) hany.sk>
[up]
[back]
[home]
Contributors
- Sam Barnum <sbarnum (at) pointsystems.com>
for suggestion about support for Macintosh text file format
- Rob Ginda <rginda (at) netscape.com>
rewrite of version 0.6.0 and new features (--test, --verbose, skip binary)
- Dan Kuykendall <dan (at) kuykendall.org>
suggestion to not to touch files which are alredy in specified target format
- max
for suggestion and code changes hints about support for Macintosh text file
format and also for pushing me to actualy do that :)
- Philip White <pwhite (at) gigacluster.net>
minor grammar corrections and miscellaneous beautifying in help & docs
Thank you.
[up]
[back]
[home]
Description
hd2u is Hany's DOS <-> Unix convertor.
dos2unix is filter used to convert plain texts from DOS (CR/LF) format to UNIX
format (LF) and vice versa. Aditionaly it can also handle files in Macintosh
format (CR) and convert them into other formats.
[up]
[back]
[home]
Copying
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
See the COPYING file or
GNU
General Public License page for license information.
Copyright 1997,.. by Peter Hanecak <hany (at) hany.sk>.
All rights reserved.
[up]
[back]
[home]
Requirements
popt
Popt library is required to process command line arguments.
For more information about mktemp see
http://freshmeat.net/projects/popt/.
Sources can be downloaded from
ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/.
RPM package of mktemp can be found for example at
http://rpmfind.net/linux/RPM/popt.html.
[up]
[back]
[home]
Download
You can find sources at:
- http://www.megaloman.com/~hany/_data/hd2u/
- http://terminus.sk/~hany/_data/hd2u/
Also you can download RPM packages from:
- http://www.megaloman.com/~hany/RPM/hd2u.html
[up]
[back]
[home]
Installation
First, you need some UNIX system which have some basic C development tools
alredy installed.
Note: If you're using some package management tool on your system you should
have also installed so called 'development' package of popt library
(popt-dev or popt-devel, etc.) so required header files are also installed.
After you sucessfuly downloaded and unpacked source tarball, do the
following in source directory:
$ ./configure
$ make
$ make install
This will build and install 'dos2unix' into default location,
which is /usr/local/bin .
If you want to use another prefix than /usr/local use for example:
$ ./configure --prefix=/usr
This will install 'dos2unix' into /usr/bin .
For more information use:
$ ./configure --help
[up]
[back]
[home]
Usage
dos2unix [--verbose|-v] [--test|-t] [--force|-f] [--<x>2<y>|--auto|-<Z>] [<file name> [...]] |
| |
--auto, -A |
|
output will be set based upon autodetection of source format |
--d2u, -U |
|
perform DOS -> UNIX conversion |
--m2u, -T |
|
perform MAC -> UNIX conversion |
--u2d, -D |
|
perform UNIX -> DOS conversion |
--u2m, -M |
|
perform UNIX -> MAC conversion |
--d2m, -O |
|
perform DOS -> MAC conversion |
--m2d, -C |
|
perform MAC -> DOS conversion |
| |
--force, -f |
|
suppress internal conversion type corrections based on autodetected input format |
--skipbin, -b |
|
skip binary files |
--test, -t |
|
don't write any conversion results; usefull with --verbose
to just report on source type |
--verbose, -v |
|
print extra information on stderr |
--version, -V |
|
print version information on stderr |
When no options are given then input format will be automatically detected
and converted as follows:
- DOS -> UNIX
- MAC -> UNIX
- UNIX -> DOS
Same as above applies if --auto option is used.
When no file is given, then stdin is used as input and
stdout as output.
When concrete conversion type is used (--d2u or --u2d
option) and file format is autodetected as target format, file is skipped - not
touched - so there is no modification time change.
Binary files will be skipped automatically if option --skipbin
(or -b) is used.
Stray '\r' characters (without a following '\n') are reported but only
conversion 'DOS -> Unix' affects them (they are skipped).
You can display usage information using 'dos2unix -h' or
'dos2unix --help'.
Examples:
-
this converts README.txt into DOS format; if README.txt is in UNIX format,
it is converted otherwise it will be unchanged:
dos2unix --u2d README.txt
-
this is obvious :) :
cat source_in_UNIX_format.txt | dos2unix > result_in_DOS_format.txt
-
this will just "copy" source.txt to unchanged_source.txt:
cat source.txt | dos2unix | dos2unix > unchanged_source.txt
-
this will convert all .txt files in current directory into UNIX format,
all documents in UNIX format and all binary files are skipped, verbose
information will be displayed:
dos2unix -Ubv *.txt
[up]
[back]
[home]
How to contribute
If you would like to submit a patch, send it to me
<hany (at) hany.sk>.
Please be sure to include a textual explanation of what your patch does.
The preferred format for changes is 'diff -u' output. You might
generate it like this:
$ cd hd2u-work
$ [your changes]
$ make mrproper
$ cd ..
$ diff -urN hd2u-orig hd2u-work > mydiffs.patch
[up]
[back]
[home]
ChangeLog
| 0.9.2 |
2004/10/28 |
- NEWS: updated
| |
2004/10/25 |
- dos2unix.c: do not clear
FT_BINARY flag from fileType when Mac
line endings are detected which should avoid image or sound (or
other binary) files to be confused with Mac text files (thanks to
basic <basic (at) mozdev.org> and Caj Nordström
<caj.nordstrom (at) beamex.com> for pointing out the bug and suggesting
the fix)
- README: fixed typo (thanks to N. Roeser <n-roeser (at) gmx.net> and
Ryan Schmidt <hello-200407 (at) ryandesign.com> for pointing out the
mistake)
- INSTALL: added notice about popt-devel as suggested by max
- install-sh: updated from automake-1.8.3 package
- Makefile.in: changed '
$(CC) $(CFLAGS) -o $(TARGET) $(TARGET).c
$(LIBS)' to '$(CC) $(CFLAGS) -o $@ $(@:%=%.c) $(LIBS)' (based on
suggestion by Marty Leisner <mleisner (at) eng.mc.xerox.com>)
| |
2004/04/18 |
- ChangeLog, README: fixed typos
|
| 0.9.1 |
2004/04/14 |
- Makefile.in: 'make cleanall' removes also cache directory created
by 'autoconf'
- dos2unix.c:
--version (-V) option added: display version
information
- configure.in: incorporated changes sugested by configure.scan
generated by 'autoscan'
- config.h.in added (as created by 'autoheader')
- configure.in: config.h is generated by 'configure'
- Makefile.in: incorporated changes done to configure.in
- README: added info about
--version (-V) option
|
| 0.9.0 |
2003/11/14 |
- dos2unix.c: files in Mac format are now recognized; thanks to Sam
Barnum <sbarnum (at) pointsystems.com>
and max
for suggestion (and to max also for pushing me to actualy do that :)
- dos2unix.c: new conversion types: MAC -> UNIX, UNIX -> MAC, DOS -> MAC and MAC -> DOS
- dos2unix.c: when autodetected input format does not match input
format suggested by conversion type option on command line, conversion
type is automaticaly corrected
- dos2unix.c:
--force (-f) option, which supress above mentioned
behaviour
- install-sh: updated from automake-1.6 package
- README: updated
- TODO: what should be fixed till next stable release
|
| 0.8.2 |
2003/10/03 |
- dos2unix.c: read/write buffers implemented - increases performance
about 9 times
- dos2unix.c: message "File format '<file>':" changed to
"File format of '<file>':"
- TODO: updated
|
| 0.8.1 |
2003/02/26 |
- dos2unix.c: mkstemp() used instead of tmpnam()
- dos2unix.c: temporary directory specified by TMPDIR or TMP
environment variable used; if none of them is avialable, then "/tmp"
is used
|
| 0.8.0 |
2002/05/07 |
- ChangeLog: fixed typo
- README: updated "Usage" chapter
- dos2unix.c: updated help
- applied patch from Philip White <pwhite (at) gigacluster.net>
(minor grammar corrections and miscellaneous beautifying in help & docs)
|
| 0.7.2 |
2002/01/04 |
- INSTALL: fixed info about changing prefix
- Makefile.in: create bin directory before installing hd2u binary
into it; this should solve the problem when using custom prefix
in which 'bin' directory does not exists (thanks to Emanuele Olivetti
<olivetti (at) itc.it> for reporting the problem)
- dos2unix.c: fix gcc 2.96 warning: string length '687' is greater
than the minimum length '509' ISO C89 is required to support
|
| 0.7.1 |
2001/01/11 |
- dos2unix.c: --skipbin (-b) switch added: binary files won't be
converted
- dos2unix.c: --test (-t): NO output (not even verbose)
- dos2unix.c: conversion of input data from stdin works again
- dos2unix.c: reworked convert(): conversion of input data from stdin works
again; better separation of detection, verbose info output and other logic
- dos2unix.c: rouge '\r' are reported but only conversion dos -> unix
affects them (they are skipped)
- dos2unix.c: directories when given as input are skipped
|
| 0.7.0 |
2001/02/11 |
- dos2unix.c: more robust source format detection can detect binary
files, mixed mode files, and files with no line endings at all
- dos2unix.c: added automatic skipping of binary files
- dos2unix.c: added --test mode to check filetype without converting
- dos2unix.c: added --verbose option to show status messages while
working
- dos2unix.c: converted C++ style (//) comments to C style (/**/)
(some C compilers will choke on //)
- dos2unix.c: reordered function definition to avoid prototypes
- dos2unix.c: replaced hard tabs with 4 spaces
- dos2unix.c: added emacs modeline
(2001/02/07 - Rob Ginda <rginda (at) netscape.com>)
- documentation updates (see TODO!!!)
|
| 0.6.0 |
2001/01/21 |
- documentation: fixed typos
- dos2unix.c: handle NULL when returned by tmpnam()
- Makefile.in: added '-Wall -pedantic' to CFLAGS
|
| 0.5.12 |
2000/10/03 |
- documentation extended (popt) and updated (configure)
- configure.in: check for getopt_long() function
|
| 0.5.11 |
2000/09/26 |
- ./configure.in: check popt library
- Makefile.in: LIBS
|
| 0.5.10 |
2000/08/07 |
|
| 0.5.9 |
2000/08/05 |
- --auto option
- do not touch files which are alredy in specified target format
|
| 0.5.0 |
1999/11/25 |
- first public release
- full enought feature set
|
| |
[up]
[back]
[home]
TODO
- sometimes some BIG files are truncated - FIX THAT; it may be becase of
a) '
dos2unix' unable to handle big files or b) some weird character in input
files or both (reported are incidents: files over 1 GB and truncation of
one file from 6.4 MB to 2.5 MB)
- some other package formats to support more distributions
[up]
[back]
[home]