commit-mailutils
[Top][All Lists]
Advanced

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

[SCM] GNU Mailutils branch, master, updated. release-2.2-792-g97fb478


From: Sergey Poznyakoff
Subject: [SCM] GNU Mailutils branch, master, updated. release-2.2-792-g97fb478
Date: Sat, 22 Oct 2016 17:05:17 +0000 (UTC)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Mailutils".

http://git.savannah.gnu.org/cgit/mailutils.git/commit/?id=97fb4785661350ab0ff8ae5605d1bdf7f6566386

The branch, master has been updated
       via  97fb4785661350ab0ff8ae5605d1bdf7f6566386 (commit)
      from  6856669720c066769f82b90fee521fd05794dec0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 97fb4785661350ab0ff8ae5605d1bdf7f6566386
Author: Sergey Poznyakoff <address@hidden>
Date:   Sat Oct 22 18:39:50 2016 +0300

    Provide extended interface to mu_cli.
    
    * include/mailutils/cfg.h (MU_CFG_APPEND_TREE): New flag.
    * include/mailutils/cli.h (mu_version_copyright): New extern.
    (mu_cli_ext): New proto.
    * libmailutils/cfg/parser.y (mu_cfg_parse_config): Check for
    MU_CFG_APPEND_TREE bit set before accessing hints->append_tree.
    * libmailutils/cli/cli.c (param_set): Likewise.
    (mu_cli_ext): New function.
    (mu_cli): Rewrite as an entry point to mu_cli_ext.
    
    * comsat/comsat.c: Remove inclusion of obsolete headers.
    * mu/help.c: Likewise.
    * pop3d/extra.c: Likewise.

-----------------------------------------------------------------------

Summary of changes:
 comsat/comsat.c           |    3 +-
 include/mailutils/cfg.h   |    1 +
 include/mailutils/cli.h   |    9 +++
 libmailutils/cfg/parser.y |    2 +-
 libmailutils/cli/cli.c    |  139 ++++++++++++++++++++++++++++++++-------------
 mu/help.c                 |    1 -
 pop3d/extra.c             |    1 -
 7 files changed, 113 insertions(+), 43 deletions(-)

diff --git a/comsat/comsat.c b/comsat/comsat.c
index c12ed20..e16f91a 100644
--- a/comsat/comsat.c
+++ b/comsat/comsat.c
@@ -16,8 +16,7 @@
    along with GNU Mailutils.  If not, see <http://www.gnu.org/licenses/>. */
 
 #include "comsat.h"
-#define MU_CFG_COMPATIBILITY /* This source uses deprecated cfg interfaces */
-#include "mailutils/libcfg.h"
+#include "mailutils/syslog.h"
 #include "mailutils/cli.h"
 
 #ifndef PATH_DEV
diff --git a/include/mailutils/cfg.h b/include/mailutils/cfg.h
index e9f3587..1a69c82 100644
--- a/include/mailutils/cfg.h
+++ b/include/mailutils/cfg.h
@@ -241,6 +241,7 @@ int mu_config_register_plain_section (const char 
*parent_path,
 #define MU_CFG_FMT_VALUE_ONLY      0x100
 #define MU_CFG_FMT_PARAM_PATH      0x200
 #define MU_PARSE_CONFIG_LINT       0x400
+#define MU_CFG_APPEND_TREE         0x800
   
 #ifdef MU_CFG_COMPATIBILITY
 # define MU_CFG_DEPRECATED
diff --git a/include/mailutils/cli.h b/include/mailutils/cli.h
index fbf31f3..eaf0f8d 100644
--- a/include/mailutils/cli.h
+++ b/include/mailutils/cli.h
@@ -54,10 +54,19 @@ struct mu_cli_setup
   void (*prog_doc_hook) (mu_stream_t);
 };
 
+extern const char mu_version_copyright[];
+
 void mu_version_hook (struct mu_parseopt *po, mu_stream_t stream);
 void mu_cli (int argc, char **argv, struct mu_cli_setup *setup,
             char **capa, void *data,
             int *ret_argc, char ***ret_argv);
+void mu_cli_ext (int argc, char **argv,
+                struct mu_cli_setup *setup,
+                struct mu_parseopt *pohint,
+                struct mu_cfg_parse_hints *cfhint,
+                char **capa,
+                void *data,
+                int *ret_argc, char ***ret_argv);
 
 char *mu_site_config_file (void);
 
diff --git a/libmailutils/cfg/parser.y b/libmailutils/cfg/parser.y
index 043f7e0..a530f10 100644
--- a/libmailutils/cfg/parser.y
+++ b/libmailutils/cfg/parser.y
@@ -1590,7 +1590,7 @@ mu_cfg_parse_config (mu_cfg_tree_t **ptree, struct 
mu_cfg_parse_hints *hints)
        }
     }
 
-  if (hints->append_tree)
+  if (hints->flags & MU_CFG_APPEND_TREE)
     mu_cfg_tree_union (&tree, &hints->append_tree);
 
   *ptree = tree;
diff --git a/libmailutils/cli/cli.c b/libmailutils/cli/cli.c
index d607551..bf3edae 100644
--- a/libmailutils/cli/cli.c
+++ b/libmailutils/cli/cli.c
@@ -155,8 +155,11 @@ param_set (struct mu_parseopt *po, struct mu_option *opt, 
char const *arg)
   if (rc)
     mu_parseopt_error (po, "%s: cannot create node: %s",
                       arg, mu_strerror (rc));
-  if (!hints->append_tree)
-    mu_cfg_tree_create (&hints->append_tree);
+  if (!(hints->flags & MU_CFG_APPEND_TREE))
+    {
+      mu_cfg_tree_create (&hints->append_tree);
+      hints->flags |= MU_CFG_APPEND_TREE;
+    }
   mu_cfg_tree_add_node (hints->append_tree, node);
 }
 
@@ -334,11 +337,25 @@ run_commit (void *item, void *data)
   commit (data);
   return 0;
 }
-  
+
+#define PRESERVE_FLAGS \
+  ( MU_PARSEOPT_NO_SORT                                        \
+    | MU_PARSEOPT_SINGLE_DASH                          \
+    | MU_PARSEOPT_PACKAGE_NAME                         \
+    | MU_PARSEOPT_PACKAGE_URL                          \
+    | MU_PARSEOPT_BUG_ADDRESS                          \
+    | MU_PARSEOPT_EXTRA_INFO                           \
+    | MU_PARSEOPT_VERSION_HOOK                         \
+    | MU_PARSEOPT_NEGATION)
+
 void
-mu_cli (int argc, char **argv, struct mu_cli_setup *setup, char **capa,
-       void *data,
-       int *ret_argc, char ***ret_argv)
+mu_cli_ext (int argc, char **argv,
+           struct mu_cli_setup *setup,
+           struct mu_parseopt *pohint,
+           struct mu_cfg_parse_hints *cfhint,
+           char **capa,
+           void *data,
+           int *ret_argc, char ***ret_argv)
 {
   struct mu_parseopt po;
   int flags = 0;
@@ -356,14 +373,22 @@ mu_cli (int argc, char **argv, struct mu_cli_setup 
*setup, char **capa,
     setup->ex_usage = EX_USAGE;
   if (setup->ex_config == 0)
     setup->ex_config = EX_CONFIG;
-  if (setup->inorder)
-    flags |= MU_PARSEOPT_IN_ORDER;
-    
-  /* Set program name */
-  mu_set_program_name (argv[0]);
 
-  if (!mu_log_tag)
-    mu_log_tag = (char*)mu_program_name;
+  hints = *cfhint;
+  /* Set program name */
+  if (hints.flags & MU_CFG_PARSE_PROGRAM)
+    {
+      if (!mu_log_tag)
+       mu_log_tag = (char*)hints.program;
+    }
+  else
+    {
+      mu_set_program_name (argv[0]);
+      if (!mu_log_tag)
+       mu_log_tag = (char*)mu_program_name;
+      hints.program = (char*) mu_program_name;
+      hints.flags |= MU_CFG_PARSE_PROGRAM;
+    }
 
   /* Initialize standard streams */
   mu_stdstream_setup (MU_STDSTREAM_RESET_NONE);
@@ -371,16 +396,6 @@ mu_cli (int argc, char **argv, struct mu_cli_setup *setup, 
char **capa,
   /* Initialize standard capabilities */
   mu_cli_capa_init ();
 
-  /* Initialize hints */
-  memset (&hints, 0, sizeof (hints));
-  hints.flags |= MU_CFG_PARSE_SITE_RCFILE;
-  hints.site_rcfile = mu_site_config_file ();
-
-  hints.flags |= MU_CFG_PARSE_PROGRAM;
-  hints.program = (char*) mu_program_name;
-
-  hints.data = setup;
-  
   /* Initialize po */
   
   if (setup->prog_doc)
@@ -388,6 +403,11 @@ mu_cli (int argc, char **argv, struct mu_cli_setup *setup, 
char **capa,
       po.po_prog_doc = setup->prog_doc;
       flags |= MU_PARSEOPT_PROG_DOC;
     }
+  else if (pohint->po_flags & MU_PARSEOPT_PROG_DOC)
+    {
+      po.po_prog_doc = pohint->po_prog_doc;
+      flags |= MU_PARSEOPT_PROG_DOC;
+    }
 
   if (setup->prog_args)
     {
@@ -415,21 +435,11 @@ mu_cli (int argc, char **argv, struct mu_cli_setup 
*setup, char **capa,
 
       flags |= MU_PARSEOPT_PROG_ARGS;
     }
-  
-  po.po_package_name = PACKAGE_NAME;
-  flags |= MU_PARSEOPT_PACKAGE_NAME;
-
-  po.po_package_url = PACKAGE_URL;
-  flags |= MU_PARSEOPT_PACKAGE_URL;
-
-  po.po_bug_address = PACKAGE_BUGREPORT;
-  flags |= MU_PARSEOPT_BUG_ADDRESS;
-
-  po.po_extra_info = gnu_general_help_url;
-  flags |= MU_PARSEOPT_EXTRA_INFO;
-
-  po.po_version_hook = mu_version_hook;
-  flags |= MU_PARSEOPT_VERSION_HOOK;
+  else if (pohint->po_flags & MU_PARSEOPT_PROG_ARGS)
+    {
+      po.po_prog_args = pohint->po_prog_args;
+      flags |= MU_PARSEOPT_PROG_ARGS;
+    }
 
   if (setup->prog_extra_doc)
     {
@@ -442,7 +452,30 @@ mu_cli (int argc, char **argv, struct mu_cli_setup *setup, 
char **capa,
       po.po_prog_doc_hook = prog_doc_hook;
       flags |= MU_PARSEOPT_PROG_DOC_HOOK;
     }
+  else if (pohint->po_flags & MU_PARSEOPT_PROG_DOC_HOOK)
+    {
+      po.po_prog_doc_hook = pohint->po_prog_doc_hook;
+      flags |= MU_PARSEOPT_PROG_DOC_HOOK;
+    }
+  
+  if (setup->inorder)
+    flags |= MU_PARSEOPT_IN_ORDER;
   
+  flags |= pohint->po_flags & PRESERVE_FLAGS;
+
+  if (flags & MU_PARSEOPT_PACKAGE_NAME)
+    po.po_package_name = pohint->po_package_name;
+  if (flags & MU_PARSEOPT_PACKAGE_URL)
+    po.po_package_url = pohint->po_package_url;
+  if (flags & MU_PARSEOPT_BUG_ADDRESS)
+    po.po_bug_address = pohint->po_bug_address;
+  if (flags & MU_PARSEOPT_EXTRA_INFO)
+    po.po_extra_info = pohint->po_extra_info;
+  if (flags & MU_PARSEOPT_VERSION_HOOK)
+    po.po_version_hook = pohint->po_version_hook;
+  if (flags & MU_PARSEOPT_NEGATION)
+    po.po_negation = pohint->po_negation;
+
   po.po_data = &hints;
   flags |= MU_PARSEOPT_DATA;
 
@@ -488,3 +521,33 @@ mu_cli (int argc, char **argv, struct mu_cli_setup *setup, 
char **capa,
 
   mu_parseopt_free (&po);  
 }
+
+void
+mu_cli (int argc, char **argv, struct mu_cli_setup *setup, char **capa,
+       void *data,
+       int *ret_argc, char ***ret_argv)
+{
+  struct mu_parseopt pohint;
+  struct mu_cfg_parse_hints cfhint;
+  
+  pohint.po_package_name = PACKAGE_NAME;
+  pohint.po_flags |= MU_PARSEOPT_PACKAGE_NAME;
+
+  pohint.po_package_url = PACKAGE_URL;
+  pohint.po_flags |= MU_PARSEOPT_PACKAGE_URL;
+
+  pohint.po_bug_address = PACKAGE_BUGREPORT;
+  pohint.po_flags |= MU_PARSEOPT_BUG_ADDRESS;
+
+  pohint.po_extra_info = gnu_general_help_url;
+  pohint.po_flags |= MU_PARSEOPT_EXTRA_INFO;
+
+  pohint.po_version_hook = mu_version_hook;
+  pohint.po_flags |= MU_PARSEOPT_VERSION_HOOK;
+
+  cfhint.site_rcfile = mu_site_config_file ();
+  cfhint.flags = MU_CFG_PARSE_SITE_RCFILE;
+  
+  mu_cli_ext (argc, argv, setup, &pohint, &cfhint, capa, data,
+             ret_argc, ret_argv);
+}
diff --git a/mu/help.c b/mu/help.c
index 3334417..c2dcf1a 100644
--- a/mu/help.c
+++ b/mu/help.c
@@ -22,7 +22,6 @@
 #include <stdlib.h>
 #include <mailutils/nls.h>
 #include <mailutils/io.h>
-#include "mailutils/libargp.h"
 #include "mu.h"
 
 static char help_doc[] = N_("mu help - display a terse help summary");
diff --git a/pop3d/extra.c b/pop3d/extra.c
index 608d8fc..aa15f79 100644
--- a/pop3d/extra.c
+++ b/pop3d/extra.c
@@ -16,7 +16,6 @@
    along with GNU Mailutils.  If not, see <http://www.gnu.org/licenses/>. */
 
 #include "pop3d.h"
-#include "mailutils/libargp.h"
 #include "mailutils/property.h"
 
 mu_stream_t iostream;


hooks/post-receive
-- 
GNU Mailutils



reply via email to

[Prev in Thread] Current Thread [Next in Thread]