]> granicus.if.org Git - neomutt/commitdiff
Move mutt_rename_file to lib/file.[hc]
authorPietro Cerutti <gahr@gahr.ch>
Thu, 19 Oct 2017 15:13:47 +0000 (15:13 +0000)
committerRichard Russon <rich@flatcap.org>
Fri, 20 Oct 2017 13:54:09 +0000 (14:54 +0100)
compose.c
lib/file.c
lib/file.h
rfc1524.c
rfc1524.h

index c3331866145147cd4a55cf183cdb4df9b34f3973..07d5acc51c74d4fffde8cf717b290cbcf91778ae 100644 (file)
--- a/compose.c
+++ b/compose.c
@@ -56,7 +56,6 @@
 #include "opcodes.h"
 #include "options.h"
 #include "protos.h"
-#include "rfc1524.h"
 #include "rfc822.h"
 #include "sort.h"
 #ifdef MIXMASTER
index 6a6fcf6668bda246de3b56ad1d51253e2bb2a885..6e978e76c2b90ed05101b2f3ea07f4eae74be95a 100644 (file)
@@ -38,6 +38,7 @@
  * | mutt_quote_filename()     | Quote a filename to survive the shell's quoting rules
  * | mutt_read_line()          | Read a line from a file
  * | mutt_rmtree()             | Recursively remove a directory
+ * | mutt_rename_file()        | Rename a file
  * | mutt_regex_sanitize_string() | Escape any regex-magic characters in a string
  * | mutt_sanitize_filename()  | Replace unsafe characters in a filename
  * | mutt_set_mtime()          | Set the modification time of one file from another
@@ -1111,3 +1112,37 @@ void mutt_unlink_empty(const char *path)
   mutt_unlock_file(path, fd);
   close(fd);
 }
+
+/**
+ * mutt_rename_file - Rename a file
+ *
+ * This function returns 0 on successful move, 1 on old file doesn't exist,
+ * 2 on new file already exists, and 3 on other failure.
+ *
+ * note on access(2) use: No dangling symlink problems here due to
+ * safe_fopen().
+ */
+
+int mutt_rename_file(char *oldfile, char *newfile)
+{
+  FILE *ofp = NULL, *nfp = NULL;
+
+  if (access(oldfile, F_OK) != 0)
+    return 1;
+  if (access(newfile, F_OK) == 0)
+    return 2;
+  ofp = fopen(oldfile, "r");
+  if (!ofp)
+    return 3;
+  nfp = safe_fopen(newfile, "w");
+  if (!nfp)
+  {
+    safe_fclose(&ofp);
+    return 3;
+  }
+  mutt_copy_stream(ofp, nfp);
+  safe_fclose(&nfp);
+  safe_fclose(&ofp);
+  mutt_unlink(oldfile);
+  return 0;
+}
index 38170bedd79660a3c59f8f23ada80dce938ba37f..34e08e973860f507ea7f6cc52d88ee145912e14a 100644 (file)
@@ -45,6 +45,7 @@ size_t      mutt_quote_filename(char *d, size_t l, const char *f);
 char *      mutt_read_line(char *s, size_t *size, FILE *fp, int *line, int flags);
 int         mutt_rmtree(const char *path);
 int         mutt_regex_sanitize_string(char *dest, size_t destlen, const char *src);
+int         mutt_rename_file(char *oldfile, char *newfile);
 void        mutt_sanitize_filename(char *f, short slash);
 void        mutt_set_mtime(const char *from, const char *to);
 void        mutt_touch_atime(int f);
index 49a6e3decef40bc7791c60e5f43ad51a8f4149f2..4e4dab31e5c54ff383382233c253347d25805953 100644 (file)
--- a/rfc1524.c
+++ b/rfc1524.c
@@ -573,39 +573,3 @@ int rfc1524_expand_filename(char *nametemplate, char *oldfile, char *newfile, si
   else
     return 1;
 }
-
-/* If rfc1524_expand_command() is used on a recv'd message, then
- * the filename doesn't exist yet, but if it's used while sending a message,
- * then we need to rename the existing file.
- *
- * This function returns 0 on successful move, 1 on old file doesn't exist,
- * 2 on new file already exists, and 3 on other failure.
- */
-
-/* note on access(2) use: No dangling symlink problems here due to
- * safe_fopen().
- */
-
-int mutt_rename_file(char *oldfile, char *newfile)
-{
-  FILE *ofp = NULL, *nfp = NULL;
-
-  if (access(oldfile, F_OK) != 0)
-    return 1;
-  if (access(newfile, F_OK) == 0)
-    return 2;
-  ofp = fopen(oldfile, "r");
-  if (!ofp)
-    return 3;
-  nfp = safe_fopen(newfile, "w");
-  if (!nfp)
-  {
-    safe_fclose(&ofp);
-    return 3;
-  }
-  mutt_copy_stream(ofp, nfp);
-  safe_fclose(&nfp);
-  safe_fclose(&ofp);
-  mutt_unlink(oldfile);
-  return 0;
-}
index e52770141a50d639bfd33f2ecbb8ed03596c27bd..16987468dd2257ba08ccfccafd437855d8f7d697 100644 (file)
--- a/rfc1524.h
+++ b/rfc1524.h
@@ -50,6 +50,5 @@ void rfc1524_free_entry(struct Rfc1524MailcapEntry **entry);
 int rfc1524_expand_command(struct Body *a, char *filename, char *_type, char *command, int clen);
 int rfc1524_expand_filename(char *nametemplate, char *oldfile, char *newfile, size_t nflen);
 int rfc1524_mailcap_lookup(struct Body *a, char *type, struct Rfc1524MailcapEntry *entry, int opt);
-int mutt_rename_file(char *oldfile, char *newfile);
 
 #endif /* _MUTT_RFC1524_H */