git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Christian Couder <christian.couder@gmail.com>
To: git <git@vger.kernel.org>
Cc: "Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Karsten Blees" <karsten.blees@gmail.com>,
	"Nguyen Thai Ngoc Duy" <pclouds@gmail.com>,
	"Stefan Beller" <sbeller@google.com>,
	"Eric Sunshine" <sunshine@sunshineco.com>,
	"Ramsay Jones" <ramsay@ramsayjones.plus.com>,
	"Johannes Sixt" <j6t@kdbg.org>, "René Scharfe" <l.s.r@web.de>,
	"Christian Couder" <chriscool@tuxfamily.org>
Subject: Re: [PATCH v10 00/40] libify apply and use lib in am, part 2
Date: Mon, 8 Aug 2016 23:23:24 +0200	[thread overview]
Message-ID: <CAP8UFD2t9PaC8hONJJuG2EUU=0NMUC1BaDDD2Hr0u21K5rhZ3Q@mail.gmail.com> (raw)
In-Reply-To: <20160808210337.5038-1-chriscool@tuxfamily.org>

On Mon, Aug 8, 2016 at 11:02 PM, Christian Couder
<christian.couder@gmail.com> 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;
     }

  parent reply	other threads:[~2016-08-08 21:23 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-08 21:02 [PATCH v10 00/40] libify apply and use lib in am, part 2 Christian Couder
2016-08-08 21:02 ` [PATCH v10 01/40] apply: make some names more specific Christian Couder
2016-08-09 14:51   ` stefan.naewe
2016-08-11  8:40     ` Christian Couder
2016-08-11  8:55       ` stefan.naewe
2016-08-08 21:02 ` [PATCH v10 02/40] apply: move 'struct apply_state' to apply.h Christian Couder
2016-08-08 21:03 ` [PATCH v10 03/40] builtin/apply: make apply_patch() return -1 or -128 instead of die()ing Christian Couder
2016-08-08 21:03 ` [PATCH v10 04/40] builtin/apply: read_patch_file() return -1 " Christian Couder
2016-08-08 21:03 ` [PATCH v10 05/40] builtin/apply: make find_header() return -128 " Christian Couder
2016-08-08 21:03 ` [PATCH v10 06/40] builtin/apply: make parse_chunk() return a negative integer on error Christian Couder
2016-08-08 21:03 ` [PATCH v10 07/40] builtin/apply: make parse_single_patch() return -1 " Christian Couder
2016-08-08 21:03 ` [PATCH v10 08/40] builtin/apply: make parse_whitespace_option() return -1 instead of die()ing Christian Couder
2016-08-08 21:03 ` [PATCH v10 09/40] builtin/apply: make parse_ignorewhitespace_option() " Christian Couder
2016-08-08 21:03 ` [PATCH v10 10/40] builtin/apply: move init_apply_state() to apply.c Christian Couder
2016-08-08 21:03 ` [PATCH v10 11/40] apply: make init_apply_state() return -1 instead of exit()ing Christian Couder
2016-08-08 21:03 ` [PATCH v10 12/40] builtin/apply: make check_apply_state() return -1 instead of die()ing Christian Couder
2016-08-08 21:03 ` [PATCH v10 13/40] builtin/apply: move check_apply_state() to apply.c Christian Couder
2016-08-08 21:03 ` [PATCH v10 14/40] builtin/apply: make apply_all_patches() return 128 or 1 on error Christian Couder
2016-08-08 21:03 ` [PATCH v10 15/40] builtin/apply: make parse_traditional_patch() return -1 " Christian Couder
2016-08-08 21:03 ` [PATCH v10 16/40] builtin/apply: make gitdiff_*() return 1 at end of header Christian Couder
2016-08-08 21:03 ` [PATCH v10 17/40] builtin/apply: make gitdiff_*() return -1 on error Christian Couder
2016-08-08 21:03 ` [PATCH v10 18/40] builtin/apply: change die_on_unsafe_path() to check_unsafe_path() Christian Couder
2016-08-08 21:03 ` [PATCH v10 19/40] builtin/apply: make build_fake_ancestor() return -1 on error Christian Couder
2016-08-08 21:03 ` [PATCH v10 20/40] builtin/apply: make remove_file() " Christian Couder
2016-08-08 21:03 ` [PATCH v10 21/40] builtin/apply: make add_conflicted_stages_file() " Christian Couder
2016-08-08 21:03 ` [PATCH v10 22/40] builtin/apply: make add_index_file() " Christian Couder
2016-08-08 21:03 ` [PATCH v10 23/40] builtin/apply: make create_file() " Christian Couder
2016-08-08 21:03 ` [PATCH v10 24/40] builtin/apply: make write_out_one_result() " Christian Couder
2016-08-08 21:03 ` [PATCH v10 25/40] builtin/apply: make write_out_results() " Christian Couder
2016-08-08 21:03 ` [PATCH v10 26/40] builtin/apply: make try_create_file() " Christian Couder
2016-08-08 21:03 ` [PATCH v10 27/40] builtin/apply: make create_one_file() " Christian Couder
2016-08-08 21:03 ` [PATCH v10 28/40] builtin/apply: rename option parsing functions Christian Couder
2016-08-09 14:55   ` stefan.naewe
2016-08-08 21:03 ` [PATCH v10 29/40] apply: rename and move opt constants to apply.h Christian Couder
2016-08-08 21:03 ` [PATCH v10 31/40] apply: make some parsing functions static again Christian Couder
2016-08-08 21:03 ` [PATCH v10 32/40] apply: use error_errno() where possible Christian Couder
2016-08-08 21:03 ` [PATCH v10 33/40] environment: add set_index_file() Christian Couder
2016-08-08 22:13   ` Junio C Hamano
2016-08-10 16:52     ` Christian Couder
2016-08-10 17:34       ` Junio C Hamano
2016-08-11 19:08         ` Christian Couder
2016-08-11 19:30           ` Junio C Hamano
2016-08-08 21:03 ` [PATCH v10 34/40] apply: make it possible to silently apply Christian Couder
2016-08-08 21:03 ` [PATCH v10 35/40] apply: don't print on stdout in verbosity_silent mode Christian Couder
2016-08-08 21:03 ` [PATCH v10 36/40] usage: add set_warn_routine() Christian Couder
2016-08-08 21:03 ` [PATCH v10 37/40] usage: add get_error_routine() and get_warn_routine() Christian Couder
2016-08-08 21:03 ` [PATCH v10 38/40] apply: change error_routine when silent Christian Couder
2016-08-08 21:03 ` [PATCH v10 39/40] apply: refactor `git apply` option parsing Christian Couder
2016-08-08 21:03 ` [PATCH v10 40/40] builtin/am: use apply api in run_apply() Christian Couder
2016-08-08 21:23 ` Christian Couder [this message]
2016-08-08 22:16   ` [PATCH v10 00/40] libify apply and use lib in am, part 2 Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAP8UFD2t9PaC8hONJJuG2EUU=0NMUC1BaDDD2Hr0u21K5rhZ3Q@mail.gmail.com' \
    --to=christian.couder@gmail.com \
    --cc=avarab@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j6t@kdbg.org \
    --cc=karsten.blees@gmail.com \
    --cc=l.s.r@web.de \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    --cc=ramsay@ramsayjones.plus.com \
    --cc=sbeller@google.com \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).