/* Don't follow symlink. Create new file. */
else {
buf = charalloc(strlen(realname) + 8);
- strncpy(buf, realname, strlen(realname)+1);
+ strcpy(buf, realname);
strcat(buf, ".XXXXXX");
if ((fd = mkstemp(buf)) == -1) {
if (ISSET(TEMP_OPT)) {
dump_buffer(fileage);
- if (append == 1) {
- f = fdopen(fd, "ab");
- } else {
- f = fdopen(fd, "wb");
- }
-
+ f = fdopen(fd, append==1 ? "ab" : "wb");
if (!f) {
statusbar(_("Could not open file for writing: %s"),
strerror(errno));
if (size < data_len) {
statusbar(_("Could not open file for writing: %s"),
strerror(errno));
- fclose(f);
+ fclose(f);
return -1;
- } else {
+ }
#ifdef DEBUG
+ else
fprintf(stderr, _("Wrote >%s\n"), fileptr->data);
#endif
- }
+
#ifndef NANO_SMALL
if (ISSET(DOS_FILE) || ISSET(MAC_FILE))
putc('\r', f);
}
if (fileptr != NULL) {
- int data_len;
+ int data_len;
- data_len = strlen(fileptr->data);
+ data_len = strlen(fileptr->data);
size = fwrite(fileptr->data, 1, data_len, f);
if (size < data_len) {
statusbar(_("Could not open file for writing: %s"),
/* if we're prepending, open the real file, and append it here */
if (append == 2) {
- int fd_source, fd_dest;
- FILE *f_source, *f_dest;
- int prechar;
+ int fd_source, fd_dest;
+ FILE *f_source, *f_dest;
+ int prechar;
if ((fd_dest = open(buf, O_WRONLY | O_APPEND, (S_IRUSR|S_IWUSR))) == -1) {
statusbar(_("Could not reopen %s: %s"), buf, strerror(errno));
f_dest = fdopen(fd_dest, "wb");
if (!f_dest) {
statusbar(_("Could not reopen %s: %s"), buf, strerror(errno));
- close(fd_dest);
+ close(fd_dest);
return -1;
}
- if ((fd_source = open(realname, O_RDONLY)) == -1) {
+ if ((fd_source = open(realname, O_RDONLY | O_CREAT)) == -1) {
statusbar(_("Could not open %s for prepend: %s"), realname, strerror(errno));
- fclose(f_dest);
+ fclose(f_dest);
return -1;
}
f_source = fdopen(fd_source, "rb");