From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id 0AC0E6DE111A for ; Fri, 6 Jan 2017 12:15:05 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" X-Spam-Flag: NO X-Spam-Score: -0.193 X-Spam-Level: X-Spam-Status: No, score=-0.193 tagged_above=-999 required=5 tests=[AWL=-0.173, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GrEBSah45n_r for ; Fri, 6 Jan 2017 12:15:04 -0800 (PST) Received: from mail-lf0-f68.google.com (mail-lf0-f68.google.com [209.85.215.68]) by arlo.cworth.org (Postfix) with ESMTPS id B29006DE0C78 for ; Fri, 6 Jan 2017 12:14:59 -0800 (PST) Received: by mail-lf0-f68.google.com with SMTP id j75so6842333lfe.3 for ; Fri, 06 Jan 2017 12:14:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nikula-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=yegK+aP8Qum1NclvCTBuVK9/Ae64hRM7UcgAZJuyXps=; b=yx1e9fcqajkLEaupejxCYcjfVzExRNhFCpZdUtmOIjGFBzsCAoY63YZhyE7ojqwzXm sL+zSYHbfjdYckhMk0GzAzV718PyKq0xiLHjY64azQ3ijq8ssL9bZDXXIVJnC4r2L6Sp sSWaBodqYEISxt3uYfqHAvL8xfnxpsVUJ87Cv0YCeOVyMQ14UnTs+U7IXsR/TStu7MHF PBKVHWR2VLeEBuQaYXil1Zvv7yrK6lqqjkyg8fWrIaxn/rncdo5kEy4LPgnMDOKPV5Gf wDVoS+F7xsomtDk9yIYXI+VX6ocdu4RSlNGIesnytTZ65VNOV9gbFIe3f9FZlZ1K67Jj 4+lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=yegK+aP8Qum1NclvCTBuVK9/Ae64hRM7UcgAZJuyXps=; b=GGRpcjzBdalILqw03K0GBD04ONGJtrmIOo5QStuLu4QdfkiHW1DDLrAXq8QVhqXkh1 WE5cHsGjaeGqBpEh8LKHRrPKNsm2O2sOM+GmNijiwg6FwLMAE2Yw0mwlV2TD95OZgZzg /LvTtukuNUWSg2jpp0/M1C2LawuEOyaKGUU3xQFZi5oKMiSXiojfRcZnioOv7HtNDynL JmlDf0CyvEvU3EkTfFSu8XYpJtBMxA7WednsMkhdlplRqBNiEU7T+5lnFEHwx4NO0MM9 xOrawEh3PZYWvscgFKWkV4ThHk/2pX7Z7mbImdZYDcEwdAVk0cQUPSHs5qye7qNub8ur OUbw== X-Gm-Message-State: AIkVDXKYYGJ8LZrBd7yjramHIiUnxZ0Rpmk5d0yEcZuAhMYj/rAmqjXm6nQoI5D4RJRy3Q== X-Received: by 10.25.20.209 with SMTP id 78mr5136119lfu.119.1483733697777; Fri, 06 Jan 2017 12:14:57 -0800 (PST) Received: from localhost (mobile-access-bceec7-199.dhcp.inet.fi. [188.238.199.199]) by smtp.gmail.com with ESMTPSA id y26sm19312008lja.22.2017.01.06.12.14.56 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 06 Jan 2017 12:14:57 -0800 (PST) From: Jani Nikula To: notmuch@notmuchmail.org Subject: [PATCH 4/9] cli/show: use a table for choosing the formatter Date: Fri, 6 Jan 2017 22:14:45 +0200 Message-Id: <05947448b61690904fc488546a76ce31c539a0eb.1483733461.git.jani@nikula.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: In-Reply-To: References: X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Jan 2017 20:15:05 -0000 Continue detangling format pointer and format selection variables. No functional changes. --- notmuch-show.c | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/notmuch-show.c b/notmuch-show.c index b8e45f187360..93b51008381c 100644 --- a/notmuch-show.c +++ b/notmuch-show.c @@ -978,6 +978,14 @@ enum { NOTMUCH_FORMAT_RAW }; +static const notmuch_show_format_t *formatters[] = { + [NOTMUCH_FORMAT_JSON] = &format_json, + [NOTMUCH_FORMAT_SEXP] = &format_sexp, + [NOTMUCH_FORMAT_TEXT] = &format_text, + [NOTMUCH_FORMAT_MBOX] = &format_mbox, + [NOTMUCH_FORMAT_RAW] = &format_raw, +}; + enum { ENTIRE_THREAD_DEFAULT, ENTIRE_THREAD_TRUE, @@ -997,7 +1005,7 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) notmuch_query_t *query; char *query_string; int opt_index, ret; - const notmuch_show_format_t *format = &format_text; + const notmuch_show_format_t *formatter; sprinter_t *sprinter; notmuch_show_params_t params = { .part = -1, @@ -1063,29 +1071,14 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) format_sel = NOTMUCH_FORMAT_TEXT; } - switch (format_sel) { - case NOTMUCH_FORMAT_JSON: - format = &format_json; - break; - case NOTMUCH_FORMAT_TEXT: - format = &format_text; - break; - case NOTMUCH_FORMAT_SEXP: - format = &format_sexp; - break; - case NOTMUCH_FORMAT_MBOX: + if (format_sel == NOTMUCH_FORMAT_MBOX) { if (params.part > 0) { fprintf (stderr, "Error: specifying parts is incompatible with mbox output format.\n"); return EXIT_FAILURE; } - - format = &format_mbox; - break; - case NOTMUCH_FORMAT_RAW: - format = &format_raw; + } else if (format_sel == NOTMUCH_FORMAT_RAW) { /* raw format only supports single message display */ single_message = TRUE; - break; } notmuch_exit_if_unsupported_format (); @@ -1148,11 +1141,12 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) } /* Create structure printer. */ - sprinter = format->new_sprinter(config, stdout); + formatter = formatters[format_sel]; + sprinter = formatter->new_sprinter(config, stdout); /* If a single message is requested we do not use search_excludes. */ if (single_message) { - ret = do_show_single (config, query, format, sprinter, ¶ms); + ret = do_show_single (config, query, formatter, sprinter, ¶ms); } else { /* We always apply set the exclude flag. The * exclude=true|false option controls whether or not we return @@ -1171,7 +1165,7 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) params.omit_excluded = FALSE; } - ret = do_show (config, query, format, sprinter, ¶ms); + ret = do_show (config, query, formatter, sprinter, ¶ms); } notmuch_crypto_cleanup (¶ms.crypto); -- 2.11.0