mirror of
https://github.com/steveicarus/iverilog.git
synced 2026-08-29 01:03:29 +02:00
Very minor issues dosify was not closing files so memory leaks could
show up and vpi/sys_readmem.c was passing the file after it was
closed to the lexor cleanup code. The lexor cleanup code does not
need an argument.
(cherry picked from commit 52fbb3f734)
69 lines
1.9 KiB
C
69 lines
1.9 KiB
C
/*
|
|
* Copyright (c) 2001-2009 Stephen Williams ([email protected])
|
|
*
|
|
* This source code is free software; you can redistribute it
|
|
* and/or modify it in source code form 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
|
|
*/
|
|
|
|
/*
|
|
* This is a simple program to make a dosified copy of the
|
|
* original. That is, it converts unix style line ends to DOS
|
|
* style. This is useful for installing text files.
|
|
*
|
|
* The exact substitution is to replace \n with \r\n. If the line
|
|
* already ends with \r\n then it is not changed to \r\r\n.
|
|
*/
|
|
|
|
# include <stdio.h>
|
|
|
|
int main(int argc, char*argv[])
|
|
{
|
|
FILE*ifile;
|
|
FILE*ofile;
|
|
int ch, pr;
|
|
|
|
if (argc != 3) {
|
|
fprintf(stderr, "Usage: %s <input> <output>\n", argv[0]);
|
|
return 1;
|
|
}
|
|
|
|
ifile = fopen(argv[1], "rb");
|
|
if (ifile == 0) {
|
|
fprintf(stderr, "Unable to open %s for input.\n", argv[1]);
|
|
return 2;
|
|
}
|
|
|
|
ofile = fopen(argv[2], "wb");
|
|
if (ofile == 0) {
|
|
fprintf(stderr, "Unable to open %s for output.\n", argv[2]);
|
|
fclose(ifile);
|
|
return 2;
|
|
}
|
|
|
|
pr = 0;
|
|
while ((ch = fgetc(ifile)) != EOF) {
|
|
|
|
if ((ch == '\n') && (pr != '\r'))
|
|
fputc('\r', ofile);
|
|
|
|
fputc(ch, ofile);
|
|
pr = ch;
|
|
}
|
|
|
|
fclose(ifile);
|
|
fclose(ofile);
|
|
return 0;
|
|
}
|