[Pkg-gnupg-commit] [gnupg2] 57/116: common: Avoid unnecessary ambiguity in argparse.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Tue Jan 24 04:40:54 UTC 2017


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gnupg2.

commit 7249ab0f95d1f6cb8ee61eefedc79801bb56398f
Author: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
Date:   Tue Jan 10 15:59:36 2017 -0500

    common: Avoid unnecessary ambiguity in argparse.
    
    * common/argparse.c (find_long_option): Avoid unnecessary ambiguity.
    --
    
    If two struct ARGPARSE_OPTS share a prefix in their long_opt name, but
    have the exact same short_opt and flags, they are aliases and not
    distinct options.  Avoid reporting this as an ambiguity, so that (for
    example) both --clearsign and --clear-sign can be invoked as --clear.
    
    Signed-off-by: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
    Debian-Bug-Id: 850475
---
 common/argparse.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/common/argparse.c b/common/argparse.c
index dce725a..d395229 100644
--- a/common/argparse.c
+++ b/common/argparse.c
@@ -898,7 +898,9 @@ find_long_option( ARGPARSE_ARGS *arg,
 	    int j;
 	    for(j=i+1; opts[j].short_opt; j++ ) {
 		if( opts[j].long_opt
-		    && !strncmp( opts[j].long_opt, keyword, n ) )
+		    && !strncmp( opts[j].long_opt, keyword, n )
+                    && !(opts[j].short_opt == opts[i].short_opt
+                         && opts[j].flags == opts[i].flags ) )
 		    return -2;	/* abbreviation is ambiguous */
 	    }
 	    return i;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list