From: Junio C Hamano <gitster@pobox.com>
To: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Brian M Carlson <sandals@crustytoothpaste.net>,
git@vger.kernel.org, Jonathan Nieder <jrnieder@gmail.com>
Subject: Re* [PATCH 1/1] send-email: fix transferencoding config option
Date: Wed, 08 May 2019 17:18:03 +0900 [thread overview]
Message-ID: <xmqqef59gy10.fsf_-_@gitster-ct.c.googlers.com> (raw)
In-Reply-To: <xmqq8swi34h5.fsf@gitster-ct.c.googlers.com> (Junio C. Hamano's message of "Wed, 10 Apr 2019 12:48:38 +0900")
Junio C Hamano <gitster@pobox.com> writes:
> I wonder if we can follow the pattern used by the code to handle the
> fallback for %config_bool_settings we can see immediately after
> these two calls to read_config()? That is, each of the element in
> the %config_* hash is not merely a pointer to where the value is
> stored, but also knows what the default fallback value should be,
> and a loop _in the caller of_ read_config(), after it finishes
> making calls to the read_config function, fills in the missing
> default?
So, here is a two-patch series that tries to do so, primarily done
to gauge if there still is the level of interest needed to make it
worth for us to pursue this topic. Here is the first one; I'll send
the second one that takes advantage of this change separately (but
it should be trivial to imagine what that step would involve).
-- >8 --
Subject: [PATCH 1/2] send-email: update the mechanism to set default configuration values
The program has a good mechanism to specify the fallback default
values for boolean configuration variables after two invocations of
read_config() for "sendmail.$ident.$var" and "sendemail.$var" have
not found any configuration. Imitate it so that we can set the
default values for non-boolean variables as well.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
git-send-email.perl | 51 ++++++++++++++++++++++++++-------------------
1 file changed, 29 insertions(+), 22 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl
index f4c07908d2..ca7faff094 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -250,28 +250,28 @@ sub do_edit {
);
my %config_settings = (
- "smtpserver" => \$smtp_server,
- "smtpserverport" => \$smtp_server_port,
- "smtpserveroption" => \@smtp_server_options,
- "smtpuser" => \$smtp_authuser,
- "smtppass" => \$smtp_authpass,
- "smtpdomain" => \$smtp_domain,
- "smtpauth" => \$smtp_auth,
- "smtpbatchsize" => \$batch_size,
- "smtprelogindelay" => \$relogin_delay,
- "to" => \@initial_to,
- "tocmd" => \$to_cmd,
- "cc" => \@initial_cc,
- "cccmd" => \$cc_cmd,
- "aliasfiletype" => \$aliasfiletype,
- "bcc" => \@bcclist,
- "suppresscc" => \@suppress_cc,
- "envelopesender" => \$envelope_sender,
- "confirm" => \$confirm,
- "from" => \$sender,
- "assume8bitencoding" => \$auto_8bit_encoding,
- "composeencoding" => \$compose_encoding,
- "transferencoding" => \$target_xfer_encoding,
+ "smtpserver" => [\$smtp_server],
+ "smtpserverport" => [\$smtp_server_port],
+ "smtpserveroption" => [\@smtp_server_options],
+ "smtpuser" => [\$smtp_authuser],
+ "smtppass" => [\$smtp_authpass],
+ "smtpdomain" => [\$smtp_domain],
+ "smtpauth" => [\$smtp_auth],
+ "smtpbatchsize" => [\$batch_size],
+ "smtprelogindelay" => [\$relogin_delay],
+ "to" => [\@initial_to],
+ "tocmd" => [\$to_cmd],
+ "cc" => [\@initial_cc],
+ "cccmd" => [\$cc_cmd],
+ "aliasfiletype" => [\$aliasfiletype],
+ "bcc" => [\@bcclist],
+ "suppresscc" => [\@suppress_cc],
+ "envelopesender" => [\$envelope_sender],
+ "confirm" => [\$confirm],
+ "from" => [\$sender],
+ "assume8bitencoding" => [\$auto_8bit_encoding],
+ "composeencoding" => [\$compose_encoding],
+ "transferencoding" => [\$target_xfer_encoding],
);
my %config_path_settings = (
@@ -446,6 +446,13 @@ sub read_config {
${$setting->[0]} = $setting->[1] unless (defined (${$setting->[0]}));
}
+# fall back to builtin defaults
+for my $setting (values %config_settings) {
+ if (@$setting == 2 && !defined (${$setting->[0]})) {
+ ${$setting->[0]} = $setting->[1];
+ }
+}
+
# 'default' encryption is none -- this only prevents a warning
$smtp_encryption = '' unless (defined $smtp_encryption);
--
2.21.0-777-g83232e3864
next prev parent reply other threads:[~2019-05-08 8:18 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-09 19:27 [PATCH 1/1] send-email: fix transferencoding config option Heinrich Schuchardt
2019-04-09 21:58 ` Jonathan Nieder
2019-04-09 23:39 ` Heinrich Schuchardt
2019-04-10 3:48 ` Junio C Hamano
2019-04-10 20:40 ` Heinrich Schuchardt
2019-04-10 22:42 ` brian m. carlson
2019-05-08 8:18 ` Junio C Hamano [this message]
2019-05-08 8:20 ` [PATCH 2/2] send-email: honor transferencoding config option again Junio C Hamano
2019-05-08 10:13 ` Re* [PATCH 1/1] send-email: fix transferencoding config option Junio C Hamano
2019-05-08 10:56 ` [PATCH v2 0/2] send-email: set xfer encoding correctly Junio C Hamano
2019-05-09 11:48 ` [PATCH v3 0/3] send-email: fix cli->config parsing crazyness Ævar Arnfjörð Bjarmason
2019-05-10 13:50 ` Junio C Hamano
2019-05-09 11:48 ` [PATCH v3 1/3] send-email: move the read_config() function above getopts Ævar Arnfjörð Bjarmason
2019-05-09 11:48 ` [PATCH v3 2/3] send-email: rename the @bcclist variable for consistency Ævar Arnfjörð Bjarmason
2019-05-09 11:48 ` [PATCH v3 3/3] send-email: do defaults -> config -> getopt in that order Ævar Arnfjörð Bjarmason
2019-05-09 18:04 ` Eric Sunshine
2019-05-13 8:46 ` Junio C Hamano
2019-05-09 23:51 ` brian m. carlson
2019-05-13 8:50 ` Junio C Hamano
2019-05-13 21:13 ` Ævar Arnfjörð Bjarmason
2019-05-16 22:59 ` Stephen Boyd
2019-05-16 23:13 ` Junio C Hamano
2019-05-17 3:43 ` Junio C Hamano
2019-05-17 19:55 ` [PATCH 0/5] ab/send-email-transferencoding-fix-for-the-fix Ævar Arnfjörð Bjarmason
2019-05-17 19:55 ` [PATCH 1/5] send-email: remove cargo-culted multi-patch pattern in tests Ævar Arnfjörð Bjarmason
2019-05-17 19:55 ` [PATCH 2/5] send-email: fix broken transferEncoding tests Ævar Arnfjörð Bjarmason
2019-05-17 19:55 ` [PATCH 3/5] send-email: document --no-[to|cc|bcc] Ævar Arnfjörð Bjarmason
2019-05-17 19:55 ` [PATCH 4/5] send-email: fix regression in sendemail.identity parsing Ævar Arnfjörð Bjarmason
2019-05-19 1:29 ` Junio C Hamano
2019-05-22 20:25 ` Johannes Schindelin
2019-05-29 9:10 ` Johannes Schindelin
2019-05-17 19:55 ` [PATCH 5/5] send-email: remove support for deprecated sendemail.smtpssl Ævar Arnfjörð Bjarmason
2019-05-08 10:56 ` [PATCH v2 1/2] send-email: update the mechanism to set default configuration values Junio C Hamano
2019-05-08 10:56 ` [PATCH v2 2/2] send-email: honor transferencoding config option again Junio C Hamano
2019-05-08 21:24 ` Eric Sunshine
2019-05-09 6:47 ` Junio C Hamano
2019-05-08 23:12 ` brian m. carlson
2019-04-09 22:55 ` [PATCH 1/1] send-email: fix transferencoding config option brian m. carlson
2019-04-09 23:06 ` Heinrich Schuchardt
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=xmqqef59gy10.fsf_-_@gitster-ct.c.googlers.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=sandals@crustytoothpaste.net \
--cc=xypron.glpk@gmx.de \
/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).