Re: [PATCH v10 00/40] libify apply and use lib in am, part 2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 8, 2016 at 11:02 PM, Christian Couder
<christian.couder@xxxxxxxxx> wrote:
>
> I will send a diff between this version and the previous one, as a
> reply to this email.

Here is the diff:

diff --git a/apply.c b/apply.c
index a73889e..2ec2a8a 100644
--- a/apply.c
+++ b/apply.c
@@ -4324,7 +4324,10 @@ static int try_create_file(const char *path,
unsigned int mode, const char *buf,
         size = nbuf.len;
         buf  = nbuf.buf;
     }
-    res = !write_or_whine_pipe(fd, buf, size, path);
+
+    res = write_in_full(fd, buf, size) < 0;
+    if (res)
+        error_errno(_("failed to write to '%s'"), path);
     strbuf_release(&nbuf);

     if (close(fd) < 0 && !res)
@@ -4626,7 +4629,7 @@ static int apply_patch(struct apply_state *state,
     int res = 0;

     state->patch_input_file = filename;
-    if (read_patch_file(&buf, fd))
+    if (read_patch_file(&buf, fd) < 0)
         return -128;
     offset = 0;
     while (offset < buf.len) {
@@ -4727,16 +4730,16 @@ static int apply_patch(struct apply_state *state,
     return res;
 }

-int apply_option_parse_exclude(const struct option *opt,
-                   const char *arg, int unset)
+static int apply_option_parse_exclude(const struct option *opt,
+                      const char *arg, int unset)
 {
     struct apply_state *state = opt->value;
     add_name_limit(state, arg, 1);
     return 0;
 }

-int apply_option_parse_include(const struct option *opt,
-                   const char *arg, int unset)
+static int apply_option_parse_include(const struct option *opt,
+                      const char *arg, int unset)
 {
     struct apply_state *state = opt->value;
     add_name_limit(state, arg, 0);
@@ -4744,9 +4747,9 @@ int apply_option_parse_include(const struct option *opt,
     return 0;
 }

-int apply_option_parse_p(const struct option *opt,
-             const char *arg,
-             int unset)
+static int apply_option_parse_p(const struct option *opt,
+                const char *arg,
+                int unset)
 {
     struct apply_state *state = opt->value;
     state->p_value = atoi(arg);
@@ -4754,8 +4757,8 @@ int apply_option_parse_p(const struct option *opt,
     return 0;
 }

-int apply_option_parse_space_change(const struct option *opt,
-                    const char *arg, int unset)
+static int apply_option_parse_space_change(const struct option *opt,
+                       const char *arg, int unset)
 {
     struct apply_state *state = opt->value;
     if (unset)
@@ -4765,8 +4768,8 @@ int apply_option_parse_space_change(const struct
option *opt,
     return 0;
 }

-int apply_option_parse_whitespace(const struct option *opt,
-                  const char *arg, int unset)
+static int apply_option_parse_whitespace(const struct option *opt,
+                     const char *arg, int unset)
 {
     struct apply_state *state = opt->value;
     state->whitespace_option = arg;
@@ -4775,8 +4778,8 @@ int apply_option_parse_whitespace(const struct
option *opt,
     return 0;
 }

-int apply_option_parse_directory(const struct option *opt,
-                 const char *arg, int unset)
+static int apply_option_parse_directory(const struct option *opt,
+                    const char *arg, int unset)
 {
     struct apply_state *state = opt->value;
     strbuf_reset(&state->root);
diff --git a/apply.h b/apply.h
index 27a3a7a..e2b89e8 100644
--- a/apply.h
+++ b/apply.h
@@ -16,7 +16,7 @@ enum apply_ws_ignore {
 enum apply_verbosity {
     verbosity_silent = -1,
     verbosity_normal = 0,
-    verbosity_verbose = 1,
+    verbosity_verbose = 1
 };

 /*
@@ -94,7 +94,11 @@ struct apply_state {
      */
     struct string_list fn_table;

-    /* This is to save some reporting routines */
+    /*
+     * This is to save reporting routines before using
+     * set_error_routine() or set_warn_routine() to install muting
+     * routines when in verbosity_silent mode.
+     */
     void (*saved_error_routine)(const char *err, va_list params);
     void (*saved_warn_routine)(const char *warn, va_list params);

@@ -107,20 +111,6 @@ struct apply_state {
     int applied_after_fixing_ws;
 };

-extern int apply_option_parse_exclude(const struct option *opt,
-                      const char *arg, int unset);
-extern int apply_option_parse_include(const struct option *opt,
-                      const char *arg, int unset);
-extern int apply_option_parse_p(const struct option *opt,
-                const char *arg,
-                int unset);
-extern int apply_option_parse_whitespace(const struct option *opt,
-                     const char *arg, int unset);
-extern int apply_option_parse_directory(const struct option *opt,
-                    const char *arg, int unset);
-extern int apply_option_parse_space_change(const struct option *opt,
-                       const char *arg, int unset);
-
 extern int apply_parse_options(int argc, const char **argv,
                    struct apply_state *state,
                    int *force_apply, int *options,
diff --git a/cache.h b/cache.h
index 18b96fe..c9ad7f9 100644
--- a/cache.h
+++ b/cache.h
@@ -461,7 +461,6 @@ extern int is_inside_work_tree(void);
 extern const char *get_git_dir(void);
 extern const char *get_git_common_dir(void);
 extern char *get_object_directory(void);
-extern void set_index_file(char *index_file);
 extern char *get_index_file(void);
 extern char *get_graft_file(void);
 extern int set_git_dir(const char *path);
@@ -472,6 +471,19 @@ extern const char *strip_namespace(const char
*namespaced_ref);
 extern const char *get_git_work_tree(void);

 /*
+ * Hack to temporarily change the index.
+ * Yeah, the libification of 'apply' took a short-circuit by adding
+ * this technical debt.
+ * Please use functions available when
+ * NO_THE_INDEX_COMPATIBILITY_MACROS is defined, instead of this
+ * function.
+ * If you really need to use this function, please save the current
+ * index file using get_index_file() before changing the index
+ * file. And when finished, reset it to the saved value.
+ */
+extern void set_index_file(char *index_file);
+
+/*
  * Return true if the given path is a git directory; note that this _just_
  * looks at the directory itself. If you want to know whether "foo/.git"
  * is a repository, you must feed that path, not just "foo".
diff --git a/environment.c b/environment.c
index eb23d01..55b2b6b 100644
--- a/environment.c
+++ b/environment.c
@@ -293,11 +293,15 @@ int odb_pack_keep(char *name, size_t namesz,
const unsigned char *sha1)
 }

 /*
- * Temporarily change the index file.
- * Please save the current index file using get_index_file() before changing
- * the index file. And when finished, reset it to the saved value.
- * Yeah, the libification of 'apply' took a short-circuit by adding this
- * technical debt; please do not call this function in new codepaths.
+ * Hack to temporarily change the index.
+ * Yeah, the libification of 'apply' took a short-circuit by adding
+ * this technical debt.
+ * Please use functions available when
+ * NO_THE_INDEX_COMPATIBILITY_MACROS is defined, instead of this
+ * function.
+ * If you really need to use this function, please save the current
+ * index file using get_index_file() before changing the index
+ * file. And when finished, reset it to the saved value.
  */
 void set_index_file(char *index_file)
 {
diff --git a/write_or_die.c b/write_or_die.c
index 26eeec8..9816879 100644
--- a/write_or_die.c
+++ b/write_or_die.c
@@ -87,7 +87,8 @@ int write_or_whine_pipe(int fd, const void *buf,
size_t count, const char *msg)
 {
     if (write_in_full(fd, buf, count) < 0) {
         check_pipe(errno);
-        warning("%s: write error (%s)\n", msg, strerror(errno));
+        fprintf(stderr, "%s: write error (%s)\n",
+            msg, strerror(errno));
         return 0;
     }
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]