mirror of
git://git.sv.gnu.org/nano.git
synced 2024-11-22 12:51:23 +03:00
Code to read/write dos formatted files. Massive amounts of new code in read_line and write_file. New flag DOS_FILE
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@771 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
This commit is contained in:
parent
5d25f06e3b
commit
91841895e0
@ -10,6 +10,8 @@ CVS code -
|
||||
function check_operating_dir(), changes to load_file (arg),
|
||||
open_file_dup_search (arg), new function do_gotopos for -F
|
||||
(Ravid Lawrence Ramsey).
|
||||
- Code to read/write dos formatted files. Massive amounts of
|
||||
new code in read_line and write_file. New flag DOS_FILE.
|
||||
- nano.c:
|
||||
main()
|
||||
- Added vars oldcurrent and oldcurrent_x to check whether cursor
|
||||
|
22
files.c
22
files.c
@ -124,6 +124,13 @@ filestruct *read_line(char *buf, filestruct * prev, int *line1ins)
|
||||
fileptr->data = charalloc(strlen(buf) + 2);
|
||||
strcpy(fileptr->data, buf);
|
||||
|
||||
#ifndef NANO_SMALL
|
||||
if (buf[strlen(buf) - 1] == '\r') {
|
||||
SET(DOS_FILE);
|
||||
fileptr->data[strlen(buf) - 1] = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (*line1ins) {
|
||||
/* Special case, insert with cursor on 1st line. */
|
||||
fileptr->prev = NULL;
|
||||
@ -1117,6 +1124,10 @@ int write_file(char *name, int tmp, int append, int nonamechange)
|
||||
fprintf(stderr, _("Wrote >%s\n"), fileptr->data);
|
||||
#endif
|
||||
}
|
||||
#ifndef NANO_SMALL
|
||||
if (ISSET(DOS_FILE))
|
||||
write(fd, "\r", 1);
|
||||
#endif
|
||||
write(fd, "\n", 1);
|
||||
|
||||
fileptr = fileptr->next;
|
||||
@ -1130,6 +1141,17 @@ int write_file(char *name, int tmp, int append, int nonamechange)
|
||||
strerror(errno));
|
||||
return -1;
|
||||
} else if (size > 0) {
|
||||
#ifndef NANO_SMALL
|
||||
if (ISSET(DOS_FILE)) {
|
||||
size = write(fd, "\r", 1);
|
||||
lineswritten++;
|
||||
if (size == -1) {
|
||||
statusbar(_("Could not open file for writing: %s"),
|
||||
strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
size = write(fd, "\n", 1);
|
||||
lineswritten++;
|
||||
if (size == -1) {
|
||||
|
Loading…
Reference in New Issue
Block a user