mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
Made arg_parse more readable.
This commit is contained in:
parent
df089498d8
commit
329509c864
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
2008-08-30 Werner Koch <wk@g10code.com>
|
2008-08-30 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* yat2m.c (write_th): Print a not ethat this is generated source.
|
* yat2m.c (write_th): Print a note that this is generated source.
|
||||||
(VERSION): Bump up to 1.0.
|
(VERSION): Bump up to 1.0.
|
||||||
|
|
||||||
2008-07-30 Werner Koch <wk@g10code.com>
|
2008-07-30 Werner Koch <wk@g10code.com>
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2008-11-11 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* gpg.c (opts): Use new ARGPARSE macros for clarity.
|
||||||
|
|
||||||
2008-10-24 Werner Koch <wk@g10code.com>
|
2008-10-24 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* keyedit.c (change_passphrase): Clear passphrase cache.
|
* keyedit.c (change_passphrase): Clear passphrase cache.
|
||||||
|
699
g10/gpg.c
699
g10/gpg.c
@ -367,358 +367,387 @@ enum cmd_and_opt_values
|
|||||||
|
|
||||||
static ARGPARSE_OPTS opts[] = {
|
static ARGPARSE_OPTS opts[] = {
|
||||||
|
|
||||||
{ 300, NULL, 0, N_("@Commands:\n ") },
|
ARGPARSE_group (300, N_("@Commands:\n ")),
|
||||||
|
|
||||||
{ aSign, "sign", 256, N_("|[file]|make a signature")},
|
ARGPARSE_c (aSign, "sign", N_("|[file]|make a signature")),
|
||||||
{ aClearsign, "clearsign", 256, N_("|[file]|make a clear text signature")},
|
ARGPARSE_c (aClearsign, "clearsign", N_("|[file]|make a clear text signature")),
|
||||||
{ aDetachedSign, "detach-sign", 256, N_("make a detached signature")},
|
ARGPARSE_c (aDetachedSign, "detach-sign", N_("make a detached signature")),
|
||||||
{ aEncr, "encrypt", 256, N_("encrypt data")},
|
ARGPARSE_c (aEncr, "encrypt", N_("encrypt data")),
|
||||||
{ aEncrFiles, "encrypt-files", 256, "@"},
|
ARGPARSE_c (aEncrFiles, "encrypt-files", "@"),
|
||||||
{ aSym, "symmetric", 256, N_("encryption only with symmetric cipher")},
|
ARGPARSE_c (aSym, "symmetric", N_("encryption only with symmetric cipher")),
|
||||||
{ aStore, "store", 256, "@"},
|
ARGPARSE_c (aStore, "store", "@"),
|
||||||
{ aDecrypt, "decrypt", 256, N_("decrypt data (default)")},
|
ARGPARSE_c (aDecrypt, "decrypt", N_("decrypt data (default)")),
|
||||||
{ aDecryptFiles, "decrypt-files", 256, "@"},
|
ARGPARSE_c (aDecryptFiles, "decrypt-files", "@"),
|
||||||
{ aVerify, "verify" , 256, N_("verify a signature")},
|
ARGPARSE_c (aVerify, "verify" , N_("verify a signature")),
|
||||||
{ aVerifyFiles, "verify-files" , 256, "@" },
|
ARGPARSE_c (aVerifyFiles, "verify-files" , "@" ),
|
||||||
{ aListKeys, "list-keys", 256, N_("list keys")},
|
ARGPARSE_c (aListKeys, "list-keys", N_("list keys")),
|
||||||
{ aListKeys, "list-public-keys", 256, "@" },
|
ARGPARSE_c (aListKeys, "list-public-keys", "@" ),
|
||||||
{ aListSigs, "list-sigs", 256, N_("list keys and signatures")},
|
ARGPARSE_c (aListSigs, "list-sigs", N_("list keys and signatures")),
|
||||||
{ aCheckKeys, "check-sigs",256, N_("list and check key signatures")},
|
ARGPARSE_c (aCheckKeys, "check-sigs",N_("list and check key signatures")),
|
||||||
{ oFingerprint, "fingerprint", 256, N_("list keys and fingerprints")},
|
ARGPARSE_c (oFingerprint, "fingerprint", N_("list keys and fingerprints")),
|
||||||
{ aListSecretKeys, "list-secret-keys", 256, N_("list secret keys")},
|
ARGPARSE_c (aListSecretKeys, "list-secret-keys", N_("list secret keys")),
|
||||||
{ aKeygen, "gen-key", 256, N_("generate a new key pair")},
|
ARGPARSE_c (aKeygen, "gen-key", N_("generate a new key pair")),
|
||||||
{ aDeleteKeys,"delete-keys",256,N_("remove keys from the public keyring")},
|
ARGPARSE_c (aDeleteKeys,"delete-keys",
|
||||||
{ aDeleteSecretKeys, "delete-secret-keys",256,
|
N_("remove keys from the public keyring")),
|
||||||
N_("remove keys from the secret keyring")},
|
ARGPARSE_c (aDeleteSecretKeys, "delete-secret-keys",
|
||||||
{ aSignKey, "sign-key" ,256, N_("sign a key")},
|
N_("remove keys from the secret keyring")),
|
||||||
{ aLSignKey, "lsign-key" ,256, N_("sign a key locally")},
|
ARGPARSE_c (aSignKey, "sign-key" ,N_("sign a key")),
|
||||||
{ aEditKey, "edit-key" ,256, N_("sign or edit a key")},
|
ARGPARSE_c (aLSignKey, "lsign-key" ,N_("sign a key locally")),
|
||||||
{ aGenRevoke, "gen-revoke",256, N_("generate a revocation certificate")},
|
ARGPARSE_c (aEditKey, "edit-key" ,N_("sign or edit a key")),
|
||||||
{ aDesigRevoke, "desig-revoke",256, "@" },
|
ARGPARSE_c (aGenRevoke, "gen-revoke",N_("generate a revocation certificate")),
|
||||||
{ aExport, "export" , 256, N_("export keys") },
|
ARGPARSE_c (aDesigRevoke, "desig-revoke","@" ),
|
||||||
{ aSendKeys, "send-keys" , 256, N_("export keys to a key server") },
|
ARGPARSE_c (aExport, "export" , N_("export keys") ),
|
||||||
{ aRecvKeys, "recv-keys" , 256, N_("import keys from a key server") },
|
ARGPARSE_c (aSendKeys, "send-keys" , N_("export keys to a key server") ),
|
||||||
{ aSearchKeys, "search-keys" , 256,
|
ARGPARSE_c (aRecvKeys, "recv-keys" , N_("import keys from a key server") ),
|
||||||
N_("search for keys on a key server") },
|
ARGPARSE_c (aSearchKeys, "search-keys" ,
|
||||||
{ aRefreshKeys, "refresh-keys", 256,
|
N_("search for keys on a key server") ),
|
||||||
N_("update all keys from a keyserver")},
|
ARGPARSE_c (aRefreshKeys, "refresh-keys",
|
||||||
{ aLocateKeys, "locate-keys", 256, "@"},
|
N_("update all keys from a keyserver")),
|
||||||
{ aFetchKeys, "fetch-keys" , 256, "@" },
|
ARGPARSE_c (aLocateKeys, "locate-keys", "@"),
|
||||||
{ aExportSecret, "export-secret-keys" , 256, "@" },
|
ARGPARSE_c (aFetchKeys, "fetch-keys" , "@" ),
|
||||||
{ aExportSecretSub, "export-secret-subkeys" , 256, "@" },
|
ARGPARSE_c (aExportSecret, "export-secret-keys" , "@" ),
|
||||||
{ aImport, "import", 256 , N_("import/merge keys")},
|
ARGPARSE_c (aExportSecretSub, "export-secret-subkeys" , "@" ),
|
||||||
{ aFastImport, "fast-import", 256 , "@"},
|
ARGPARSE_c (aImport, "import", N_("import/merge keys")),
|
||||||
|
ARGPARSE_c (aFastImport, "fast-import", "@"),
|
||||||
#ifdef ENABLE_CARD_SUPPORT
|
#ifdef ENABLE_CARD_SUPPORT
|
||||||
{ aCardStatus, "card-status", 256, N_("print the card status")},
|
ARGPARSE_c (aCardStatus, "card-status", N_("print the card status")),
|
||||||
{ aCardEdit, "card-edit", 256, N_("change data on a card")},
|
ARGPARSE_c (aCardEdit, "card-edit", N_("change data on a card")),
|
||||||
{ aChangePIN, "change-pin", 256, N_("change a card's PIN")},
|
ARGPARSE_c (aChangePIN, "change-pin", N_("change a card's PIN")),
|
||||||
#endif
|
#endif
|
||||||
{ aListConfig, "list-config", 256, "@"},
|
ARGPARSE_c (aListConfig, "list-config", "@"),
|
||||||
{ aGPGConfList, "gpgconf-list", 256, "@" },
|
ARGPARSE_c (aGPGConfList, "gpgconf-list", "@" ),
|
||||||
{ aGPGConfTest, "gpgconf-test", 256, "@" },
|
ARGPARSE_c (aGPGConfTest, "gpgconf-test", "@" ),
|
||||||
{ aListPackets, "list-packets",256, "@"},
|
ARGPARSE_c (aListPackets, "list-packets","@"),
|
||||||
{ aExportOwnerTrust, "export-ownertrust", 256, "@"},
|
ARGPARSE_c (aExportOwnerTrust, "export-ownertrust", "@"),
|
||||||
{ aImportOwnerTrust, "import-ownertrust", 256, "@"},
|
ARGPARSE_c (aImportOwnerTrust, "import-ownertrust", "@"),
|
||||||
{ aUpdateTrustDB,
|
ARGPARSE_c (aUpdateTrustDB,"update-trustdb",
|
||||||
"update-trustdb",0 , N_("update the trust database")},
|
N_("update the trust database")),
|
||||||
{ aCheckTrustDB, "check-trustdb", 0, "@"},
|
ARGPARSE_c (aCheckTrustDB, "check-trustdb", "@"),
|
||||||
{ aFixTrustDB, "fix-trustdb", 0, "@"},
|
ARGPARSE_c (aFixTrustDB, "fix-trustdb", "@"),
|
||||||
{ aDeArmor, "dearmor", 256, "@"},
|
ARGPARSE_c (aDeArmor, "dearmor", "@"),
|
||||||
{ aDeArmor, "dearmour", 256, "@"},
|
ARGPARSE_c (aDeArmor, "dearmour", "@"),
|
||||||
{ aEnArmor, "enarmor", 256, "@"},
|
ARGPARSE_c (aEnArmor, "enarmor", "@"),
|
||||||
{ aEnArmor, "enarmour", 256, "@"},
|
ARGPARSE_c (aEnArmor, "enarmour", "@"),
|
||||||
{ aPrintMD, "print-md" , 256, N_("|algo [files]|print message digests")},
|
ARGPARSE_c (aPrintMD, "print-md", N_("|algo [files]|print message digests")),
|
||||||
{ aPrimegen, "gen-prime" , 256, "@" },
|
ARGPARSE_c (aPrimegen, "gen-prime", "@" ),
|
||||||
{ aGenRandom, "gen-random", 256, "@" },
|
ARGPARSE_c (aGenRandom,"gen-random", "@" ),
|
||||||
{ aServer, "server", 256, N_("run in server mode")},
|
ARGPARSE_c (aServer, "server", N_("run in server mode")),
|
||||||
|
|
||||||
{ 301, NULL, 0, N_("@\nOptions:\n ") },
|
ARGPARSE_group (301, N_("@\nOptions:\n ")),
|
||||||
|
|
||||||
{ oArmor, "armor", 0, N_("create ascii armored output")},
|
ARGPARSE_s_n (oArmor, "armor", N_("create ascii armored output")),
|
||||||
{ oArmor, "armour", 0, "@" },
|
ARGPARSE_s_n (oArmor, "armour", "@"),
|
||||||
{ oRecipient, "recipient", 2, N_("|NAME|encrypt for NAME")},
|
|
||||||
{ oHiddenRecipient, "hidden-recipient", 2, "@" },
|
|
||||||
{ oRecipient, "remote-user", 2, "@"}, /* old option name */
|
|
||||||
{ oDefRecipient, "default-recipient", 2, "@"},
|
|
||||||
{ oDefRecipientSelf, "default-recipient-self", 0, "@"},
|
|
||||||
{ oNoDefRecipient, "no-default-recipient", 0, "@" },
|
|
||||||
{ oTempDir, "temp-directory", 2, "@" },
|
|
||||||
{ oExecPath, "exec-path", 2, "@" },
|
|
||||||
{ oEncryptTo, "encrypt-to", 2, "@" },
|
|
||||||
{ oHiddenEncryptTo, "hidden-encrypt-to", 2, "@" },
|
|
||||||
{ oNoEncryptTo, "no-encrypt-to", 0, "@" },
|
|
||||||
{ oLocalUser, "local-user",2, N_("use this user-id to sign or decrypt")},
|
|
||||||
{ oCompress, NULL, 1, N_("|N|set compress level N (0 disables)") },
|
|
||||||
{ oCompressLevel, "compress-level", 1, "@" },
|
|
||||||
{ oBZ2CompressLevel, "bzip2-compress-level", 1, "@" },
|
|
||||||
{ oBZ2DecompressLowmem, "bzip2-decompress-lowmem", 0, "@" },
|
|
||||||
{ oTextmodeShort, NULL, 0, "@"},
|
|
||||||
{ oTextmode, "textmode", 0, N_("use canonical text mode")},
|
|
||||||
{ oNoTextmode, "no-textmode", 0, "@"},
|
|
||||||
{ oExpert, "expert", 0, "@"},
|
|
||||||
{ oNoExpert, "no-expert", 0, "@"},
|
|
||||||
{ oDefSigExpire, "default-sig-expire", 2, "@"},
|
|
||||||
{ oAskSigExpire, "ask-sig-expire", 0, "@"},
|
|
||||||
{ oNoAskSigExpire, "no-ask-sig-expire", 0, "@"},
|
|
||||||
{ oDefCertExpire, "default-cert-expire", 2, "@"},
|
|
||||||
{ oAskCertExpire, "ask-cert-expire", 0, "@"},
|
|
||||||
{ oNoAskCertExpire, "no-ask-cert-expire", 0, "@"},
|
|
||||||
{ oDefCertLevel, "default-cert-level", 1, "@"},
|
|
||||||
{ oMinCertLevel, "min-cert-level", 1, "@"},
|
|
||||||
{ oAskCertLevel, "ask-cert-level", 0, "@"},
|
|
||||||
{ oNoAskCertLevel, "no-ask-cert-level", 0, "@"},
|
|
||||||
{ oOutput, "output", 2, N_("|FILE|write output to FILE")},
|
|
||||||
{ oMaxOutput, "max-output", 16|4, "@" },
|
|
||||||
{ oVerbose, "verbose", 0, N_("verbose") },
|
|
||||||
{ oQuiet, "quiet", 0, "@"},
|
|
||||||
{ oNoTTY, "no-tty", 0, "@"},
|
|
||||||
{ oForceV3Sigs, "force-v3-sigs", 0, "@"},
|
|
||||||
{ oNoForceV3Sigs, "no-force-v3-sigs", 0, "@"},
|
|
||||||
{ oForceV4Certs, "force-v4-certs", 0, "@"},
|
|
||||||
{ oNoForceV4Certs, "no-force-v4-certs", 0, "@"},
|
|
||||||
{ oForceMDC, "force-mdc", 0, "@"},
|
|
||||||
{ oNoForceMDC, "no-force-mdc", 0, "@" },
|
|
||||||
{ oDisableMDC, "disable-mdc", 0, "@"},
|
|
||||||
{ oNoDisableMDC, "no-disable-mdc", 0, "@" },
|
|
||||||
{ oDryRun, "dry-run", 0, N_("do not make any changes") },
|
|
||||||
{ oInteractive, "interactive", 0, N_("prompt before overwriting") },
|
|
||||||
{ oUseAgent, "use-agent",0, "@"},
|
|
||||||
{ oNoUseAgent, "no-use-agent",0, "@"},
|
|
||||||
{ oGpgAgentInfo, "gpg-agent-info",2, "@"},
|
|
||||||
{ oBatch, "batch", 0, "@"},
|
|
||||||
{ oAnswerYes, "yes", 0, "@"},
|
|
||||||
{ oAnswerNo, "no", 0, "@"},
|
|
||||||
{ oKeyring, "keyring", 2, "@"},
|
|
||||||
{ oPrimaryKeyring, "primary-keyring",2, "@" },
|
|
||||||
{ oSecretKeyring, "secret-keyring", 2, "@"},
|
|
||||||
{ oShowKeyring, "show-keyring", 0, "@"},
|
|
||||||
{ oDefaultKey, "default-key", 2, "@"},
|
|
||||||
{ oKeyServer, "keyserver", 2, "@"},
|
|
||||||
{ oKeyServerOptions, "keyserver-options",2,"@"},
|
|
||||||
{ oImportOptions, "import-options",2,"@"},
|
|
||||||
{ oExportOptions, "export-options",2,"@"},
|
|
||||||
{ oListOptions, "list-options",2,"@"},
|
|
||||||
{ oVerifyOptions, "verify-options",2,"@"},
|
|
||||||
{ oDisplayCharset, "display-charset", 2, "@"},
|
|
||||||
{ oDisplayCharset, "charset", 2, "@"},
|
|
||||||
{ oOptions, "options", 2, "@"},
|
|
||||||
{ oDebug, "debug" ,4|16, "@"},
|
|
||||||
{ oDebugLevel, "debug-level" ,2, "@"},
|
|
||||||
{ oDebugAll, "debug-all" ,0, "@"},
|
|
||||||
{ oStatusFD, "status-fd" ,1, "@"},
|
|
||||||
{ oStatusFile, "status-file" ,2, "@"},
|
|
||||||
{ oAttributeFD, "attribute-fd" ,1, "@" },
|
|
||||||
{ oAttributeFile, "attribute-file" ,2, "@" },
|
|
||||||
{ oNoop, "sk-comments", 0, "@"},
|
|
||||||
{ oNoop, "no-sk-comments", 0, "@"},
|
|
||||||
{ oCompletesNeeded, "completes-needed", 1, "@"},
|
|
||||||
{ oMarginalsNeeded, "marginals-needed", 1, "@"},
|
|
||||||
{ oMaxCertDepth, "max-cert-depth", 1, "@" },
|
|
||||||
{ oTrustedKey, "trusted-key", 2, "@"},
|
|
||||||
{ oLoadExtension, "load-extension", 2, "@"},
|
|
||||||
{ oGnuPG, "gnupg", 0, "@"},
|
|
||||||
{ oGnuPG, "no-pgp2", 0, "@"},
|
|
||||||
{ oGnuPG, "no-pgp6", 0, "@"},
|
|
||||||
{ oGnuPG, "no-pgp7", 0, "@"},
|
|
||||||
{ oGnuPG, "no-pgp8", 0, "@"},
|
|
||||||
{ oRFC1991, "rfc1991", 0, "@"},
|
|
||||||
{ oRFC2440, "rfc2440", 0, "@" },
|
|
||||||
{ oRFC4880, "rfc4880", 0, "@" },
|
|
||||||
{ oOpenPGP, "openpgp", 0, N_("use strict OpenPGP behavior")},
|
|
||||||
{ oPGP2, "pgp2", 0, N_("generate PGP 2.x compatible messages")},
|
|
||||||
{ oPGP6, "pgp6", 0, "@"},
|
|
||||||
{ oPGP7, "pgp7", 0, "@"},
|
|
||||||
{ oPGP8, "pgp8", 0, "@"},
|
|
||||||
{ oRFC2440Text, "rfc2440-text", 0, "@"},
|
|
||||||
{ oNoRFC2440Text, "no-rfc2440-text", 0, "@"},
|
|
||||||
{ oS2KMode, "s2k-mode", 1, "@"},
|
|
||||||
{ oS2KDigest, "s2k-digest-algo", 2, "@"},
|
|
||||||
{ oS2KCipher, "s2k-cipher-algo", 2, "@"},
|
|
||||||
{ oS2KCount, "s2k-count", 1, "@"},
|
|
||||||
{ oSimpleSKChecksum, "simple-sk-checksum", 0, "@"},
|
|
||||||
{ oCipherAlgo, "cipher-algo", 2, "@"},
|
|
||||||
{ oDigestAlgo, "digest-algo", 2, "@"},
|
|
||||||
{ oCertDigestAlgo, "cert-digest-algo", 2 , "@" },
|
|
||||||
{ oCompressAlgo,"compress-algo", 2, "@"},
|
|
||||||
{ oCompressAlgo, "compression-algo", 2, "@"}, /* Alias */
|
|
||||||
{ oThrowKeyids, "throw-keyid", 0, "@"},
|
|
||||||
{ oThrowKeyids, "throw-keyids", 0, "@"},
|
|
||||||
{ oNoThrowKeyids, "no-throw-keyid", 0, "@" },
|
|
||||||
{ oNoThrowKeyids, "no-throw-keyids", 0, "@" },
|
|
||||||
{ oShowPhotos, "show-photos", 0, "@" },
|
|
||||||
{ oNoShowPhotos, "no-show-photos", 0, "@" },
|
|
||||||
{ oPhotoViewer, "photo-viewer", 2, "@" },
|
|
||||||
{ oSetNotation, "set-notation", 2, "@" },
|
|
||||||
{ oSetNotation, "notation-data", 2, "@" }, /* Alias */
|
|
||||||
{ oSigNotation, "sig-notation", 2, "@" },
|
|
||||||
{ oCertNotation, "cert-notation", 2, "@" },
|
|
||||||
|
|
||||||
{ 302, NULL, 0, N_(
|
ARGPARSE_s_s (oRecipient, "recipient", N_("|NAME|encrypt for NAME")),
|
||||||
|
ARGPARSE_s_s (oHiddenRecipient, "hidden-recipient", "@"),
|
||||||
|
ARGPARSE_s_s (oRecipient, "remote-user", "@"), /* (old option name) */
|
||||||
|
ARGPARSE_s_s (oDefRecipient, "default-recipient", "@"),
|
||||||
|
ARGPARSE_s_n (oDefRecipientSelf, "default-recipient-self", "@"),
|
||||||
|
ARGPARSE_s_n (oNoDefRecipient, "no-default-recipient", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_s (oTempDir, "temp-directory", "@"),
|
||||||
|
ARGPARSE_s_s (oExecPath, "exec-path", "@"),
|
||||||
|
ARGPARSE_s_s (oEncryptTo, "encrypt-to", "@"),
|
||||||
|
ARGPARSE_s_n (oNoEncryptTo, "no-encrypt-to", "@"),
|
||||||
|
ARGPARSE_s_s (oHiddenEncryptTo, "hidden-encrypt-to", "@"),
|
||||||
|
ARGPARSE_s_s (oLocalUser, "local-user",
|
||||||
|
N_("use this user-id to sign or decrypt")),
|
||||||
|
|
||||||
|
ARGPARSE_s_i (oCompress, NULL, N_("|N|set compress level N (0 disables)")),
|
||||||
|
ARGPARSE_s_i (oCompressLevel, "compress-level", "@"),
|
||||||
|
ARGPARSE_s_i (oBZ2CompressLevel, "bzip2-compress-level", "@"),
|
||||||
|
ARGPARSE_s_n (oBZ2DecompressLowmem, "bzip2-decompress-lowmem", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_n (oTextmodeShort, NULL, "@"),
|
||||||
|
ARGPARSE_s_n (oTextmode, "textmode", N_("use canonical text mode")),
|
||||||
|
ARGPARSE_s_n (oNoTextmode, "no-textmode", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_n (oExpert, "expert", "@"),
|
||||||
|
ARGPARSE_s_n (oNoExpert, "no-expert", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_s (oDefSigExpire, "default-sig-expire", "@"),
|
||||||
|
ARGPARSE_s_n (oAskSigExpire, "ask-sig-expire", "@"),
|
||||||
|
ARGPARSE_s_n (oNoAskSigExpire, "no-ask-sig-expire", "@"),
|
||||||
|
ARGPARSE_s_s (oDefCertExpire, "default-cert-expire", "@"),
|
||||||
|
ARGPARSE_s_n (oAskCertExpire, "ask-cert-expire", "@"),
|
||||||
|
ARGPARSE_s_n (oNoAskCertExpire, "no-ask-cert-expire", "@"),
|
||||||
|
ARGPARSE_s_i (oDefCertLevel, "default-cert-level", "@"),
|
||||||
|
ARGPARSE_s_i (oMinCertLevel, "min-cert-level", "@"),
|
||||||
|
ARGPARSE_s_n (oAskCertLevel, "ask-cert-level", "@"),
|
||||||
|
ARGPARSE_s_n (oNoAskCertLevel, "no-ask-cert-level", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_s (oOutput, "output", N_("|FILE|write output to FILE")),
|
||||||
|
ARGPARSE_p_u (oMaxOutput, "max-output", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_n (oVerbose, "verbose", N_("verbose")),
|
||||||
|
ARGPARSE_s_n (oQuiet, "quiet", "@"),
|
||||||
|
ARGPARSE_s_n (oNoTTY, "no-tty", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_n (oForceV3Sigs, "force-v3-sigs", "@"),
|
||||||
|
ARGPARSE_s_n (oNoForceV3Sigs, "no-force-v3-sigs", "@"),
|
||||||
|
ARGPARSE_s_n (oForceV4Certs, "force-v4-certs", "@"),
|
||||||
|
ARGPARSE_s_n (oNoForceV4Certs, "no-force-v4-certs", "@"),
|
||||||
|
ARGPARSE_s_n (oForceMDC, "force-mdc", "@"),
|
||||||
|
ARGPARSE_s_n (oNoForceMDC, "no-force-mdc", "@"),
|
||||||
|
ARGPARSE_s_n (oDisableMDC, "disable-mdc", "@"),
|
||||||
|
ARGPARSE_s_n (oNoDisableMDC, "no-disable-mdc", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_n (oDryRun, "dry-run", N_("do not make any changes")),
|
||||||
|
ARGPARSE_s_n (oInteractive, "interactive", N_("prompt before overwriting")),
|
||||||
|
|
||||||
|
ARGPARSE_s_n (oUseAgent, "use-agent", "@"),
|
||||||
|
ARGPARSE_s_n (oNoUseAgent, "no-use-agent", "@"),
|
||||||
|
ARGPARSE_s_s (oGpgAgentInfo, "gpg-agent-info", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_n (oBatch, "batch", "@"),
|
||||||
|
ARGPARSE_s_n (oAnswerYes, "yes", "@"),
|
||||||
|
ARGPARSE_s_n (oAnswerNo, "no", "@"),
|
||||||
|
ARGPARSE_s_s (oKeyring, "keyring", "@"),
|
||||||
|
ARGPARSE_s_s (oPrimaryKeyring, "primary-keyring", "@"),
|
||||||
|
ARGPARSE_s_s (oSecretKeyring, "secret-keyring", "@"),
|
||||||
|
ARGPARSE_s_n (oShowKeyring, "show-keyring", "@"),
|
||||||
|
ARGPARSE_s_s (oDefaultKey, "default-key", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_s (oKeyServer, "keyserver", "@"),
|
||||||
|
ARGPARSE_s_s (oKeyServerOptions, "keyserver-options", "@"),
|
||||||
|
ARGPARSE_s_s (oImportOptions, "import-options", "@"),
|
||||||
|
ARGPARSE_s_s (oExportOptions, "export-options", "@"),
|
||||||
|
ARGPARSE_s_s (oListOptions, "list-options", "@"),
|
||||||
|
ARGPARSE_s_s (oVerifyOptions, "verify-options", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_s (oDisplayCharset, "display-charset", "@"),
|
||||||
|
ARGPARSE_s_s (oDisplayCharset, "charset", "@"),
|
||||||
|
ARGPARSE_s_s (oOptions, "options", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_p_u (oDebug, "debug", "@"),
|
||||||
|
ARGPARSE_s_s (oDebugLevel, "debug-level", "@"),
|
||||||
|
ARGPARSE_s_n (oDebugAll, "debug-all", "@"),
|
||||||
|
ARGPARSE_s_i (oStatusFD, "status-fd", "@"),
|
||||||
|
ARGPARSE_s_s (oStatusFile, "status-file", "@"),
|
||||||
|
ARGPARSE_s_i (oAttributeFD, "attribute-fd", "@"),
|
||||||
|
ARGPARSE_s_s (oAttributeFile, "attribute-file", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_n (oNoop, "sk-comments", "@"),
|
||||||
|
ARGPARSE_s_n (oNoop, "no-sk-comments", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_i (oCompletesNeeded, "completes-needed", "@"),
|
||||||
|
ARGPARSE_s_i (oMarginalsNeeded, "marginals-needed", "@"),
|
||||||
|
ARGPARSE_s_i (oMaxCertDepth, "max-cert-depth", "@" ),
|
||||||
|
ARGPARSE_s_s (oTrustedKey, "trusted-key", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_s (oLoadExtension, "load-extension", "@"), /* Dummy. */
|
||||||
|
|
||||||
|
ARGPARSE_s_n (oGnuPG, "gnupg", "@"),
|
||||||
|
ARGPARSE_s_n (oGnuPG, "no-pgp2", "@"),
|
||||||
|
ARGPARSE_s_n (oGnuPG, "no-pgp6", "@"),
|
||||||
|
ARGPARSE_s_n (oGnuPG, "no-pgp7", "@"),
|
||||||
|
ARGPARSE_s_n (oGnuPG, "no-pgp8", "@"),
|
||||||
|
ARGPARSE_s_n (oRFC1991, "rfc1991", "@"),
|
||||||
|
ARGPARSE_s_n (oRFC2440, "rfc2440", "@"),
|
||||||
|
ARGPARSE_s_n (oRFC4880, "rfc4880", "@"),
|
||||||
|
ARGPARSE_s_n (oOpenPGP, "openpgp", N_("use strict OpenPGP behavior")),
|
||||||
|
ARGPARSE_s_n (oPGP2, "pgp2", N_("generate PGP 2.x compatible messages")),
|
||||||
|
ARGPARSE_s_n (oPGP6, "pgp6", "@"),
|
||||||
|
ARGPARSE_s_n (oPGP7, "pgp7", "@"),
|
||||||
|
ARGPARSE_s_n (oPGP8, "pgp8", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_n (oRFC2440Text, "rfc2440-text", "@"),
|
||||||
|
ARGPARSE_s_n (oNoRFC2440Text, "no-rfc2440-text", "@"),
|
||||||
|
ARGPARSE_s_i (oS2KMode, "s2k-mode", "@"),
|
||||||
|
ARGPARSE_s_s (oS2KDigest, "s2k-digest-algo", "@"),
|
||||||
|
ARGPARSE_s_s (oS2KCipher, "s2k-cipher-algo", "@"),
|
||||||
|
ARGPARSE_s_i (oS2KCount, "s2k-count", "@"),
|
||||||
|
ARGPARSE_s_n (oSimpleSKChecksum, "simple-sk-checksum", "@"),
|
||||||
|
ARGPARSE_s_s (oCipherAlgo, "cipher-algo", "@"),
|
||||||
|
ARGPARSE_s_s (oDigestAlgo, "digest-algo", "@"),
|
||||||
|
ARGPARSE_s_s (oCertDigestAlgo, "cert-digest-algo", "@"),
|
||||||
|
ARGPARSE_s_s (oCompressAlgo,"compress-algo", "@"),
|
||||||
|
ARGPARSE_s_s (oCompressAlgo, "compression-algo", "@"), /* Alias */
|
||||||
|
ARGPARSE_s_n (oThrowKeyids, "throw-keyid", "@"),
|
||||||
|
ARGPARSE_s_n (oThrowKeyids, "throw-keyids", "@"),
|
||||||
|
ARGPARSE_s_n (oNoThrowKeyids, "no-throw-keyid", "@"),
|
||||||
|
ARGPARSE_s_n (oNoThrowKeyids, "no-throw-keyids", "@"),
|
||||||
|
ARGPARSE_s_n (oShowPhotos, "show-photos", "@"),
|
||||||
|
ARGPARSE_s_n (oNoShowPhotos, "no-show-photos", "@"),
|
||||||
|
ARGPARSE_s_s (oPhotoViewer, "photo-viewer", "@"),
|
||||||
|
ARGPARSE_s_s (oSetNotation, "set-notation", "@"),
|
||||||
|
ARGPARSE_s_s (oSetNotation, "notation-data", "@"), /* Alias */
|
||||||
|
ARGPARSE_s_s (oSigNotation, "sig-notation", "@"),
|
||||||
|
ARGPARSE_s_s (oCertNotation, "cert-notation", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_group (302, N_(
|
||||||
"@\n(See the man page for a complete listing of all commands and options)\n"
|
"@\n(See the man page for a complete listing of all commands and options)\n"
|
||||||
)},
|
)),
|
||||||
|
|
||||||
{ 303, NULL, 0, N_("@\nExamples:\n\n"
|
ARGPARSE_group (303, N_("@\nExamples:\n\n"
|
||||||
" -se -r Bob [file] sign and encrypt for user Bob\n"
|
" -se -r Bob [file] sign and encrypt for user Bob\n"
|
||||||
" --clearsign [file] make a clear text signature\n"
|
" --clearsign [file] make a clear text signature\n"
|
||||||
" --detach-sign [file] make a detached signature\n"
|
" --detach-sign [file] make a detached signature\n"
|
||||||
" --list-keys [names] show keys\n"
|
" --list-keys [names] show keys\n"
|
||||||
" --fingerprint [names] show fingerprints\n" ) },
|
" --fingerprint [names] show fingerprints\n")),
|
||||||
|
|
||||||
/* hidden options */
|
/* More hidden commands and options. */
|
||||||
{ aPrintMDs, "print-mds" , 256, "@"}, /* old */
|
ARGPARSE_c (aPrintMDs, "print-mds", "@"), /* old */
|
||||||
{ aListTrustDB, "list-trustdb",0 , "@"},
|
ARGPARSE_c (aListTrustDB, "list-trustdb", "@"),
|
||||||
/* Not yet used */
|
/* Not yet used:
|
||||||
/* { aListTrustPath, "list-trust-path",0, "@"}, */
|
ARGPARSE_c (aListTrustPath, "list-trust-path", "@"), */
|
||||||
{ oPasswd, "passphrase",2, "@" },
|
ARGPARSE_c (aDeleteSecretAndPublicKeys,
|
||||||
{ oPasswdFD, "passphrase-fd",1, "@" },
|
"delete-secret-and-public-keys", "@"),
|
||||||
{ oPasswdFile, "passphrase-file",2, "@" },
|
ARGPARSE_c (aRebuildKeydbCaches, "rebuild-keydb-caches", "@"),
|
||||||
{ oPasswdRepeat, "passphrase-repeat", 1, "@"},
|
|
||||||
{ oCommandFD, "command-fd",1, "@" },
|
|
||||||
{ oCommandFile, "command-file",2, "@" },
|
|
||||||
{ oQuickRandom, "debug-quick-random", 0, "@"},
|
|
||||||
{ oNoVerbose, "no-verbose", 0, "@"},
|
|
||||||
{ oTrustDBName, "trustdb-name", 2, "@" },
|
|
||||||
{ oNoSecmemWarn, "no-secmem-warning", 0, "@" },
|
|
||||||
{ oRequireSecmem,"require-secmem", 0, "@" },
|
|
||||||
{ oNoRequireSecmem,"no-require-secmem", 0, "@" },
|
|
||||||
{ oNoPermissionWarn, "no-permission-warning", 0, "@" },
|
|
||||||
{ oNoMDCWarn, "no-mdc-warning", 0, "@" },
|
|
||||||
{ oNoArmor, "no-armor", 0, "@"},
|
|
||||||
{ oNoArmor, "no-armour", 0, "@"},
|
|
||||||
{ oNoDefKeyring, "no-default-keyring", 0, "@" },
|
|
||||||
{ oNoGreeting, "no-greeting", 0, "@" },
|
|
||||||
{ oNoOptions, "no-options", 0, "@" }, /* shortcut for --options /dev/null */
|
|
||||||
{ oHomedir, "homedir", 2, "@" }, /* defaults to "~/.gnupg" */
|
|
||||||
{ oNoBatch, "no-batch", 0, "@" },
|
|
||||||
{ oWithColons, "with-colons", 0, "@"},
|
|
||||||
{ oWithKeyData,"with-key-data", 0, "@"},
|
|
||||||
{ oWithSigList,"with-sig-list", 0, "@"},
|
|
||||||
{ oWithSigCheck,"with-sig-check", 0, "@"},
|
|
||||||
{ aListKeys, "list-key", 0, "@" }, /* alias */
|
|
||||||
{ aListSigs, "list-sig", 0, "@" }, /* alias */
|
|
||||||
{ aCheckKeys, "check-sig",0, "@" }, /* alias */
|
|
||||||
{ oSkipVerify, "skip-verify",0, "@" },
|
|
||||||
{ oCompressKeys, "compress-keys",0, "@"},
|
|
||||||
{ oCompressSigs, "compress-sigs",0, "@"},
|
|
||||||
{ oDefCertLevel, "default-cert-check-level", 1, "@"}, /* Old option */
|
|
||||||
{ oAlwaysTrust, "always-trust", 0, "@"},
|
|
||||||
{ oTrustModel, "trust-model", 2, "@"},
|
|
||||||
{ oForceOwnertrust, "force-ownertrust", 2, "@"},
|
|
||||||
{ oSetFilename, "set-filename", 2, "@" },
|
|
||||||
{ oForYourEyesOnly, "for-your-eyes-only", 0, "@" },
|
|
||||||
{ oNoForYourEyesOnly, "no-for-your-eyes-only", 0, "@" },
|
|
||||||
{ oSetPolicyURL, "set-policy-url", 2, "@" },
|
|
||||||
{ oSigPolicyURL, "sig-policy-url", 2, "@" },
|
|
||||||
{ oCertPolicyURL, "cert-policy-url", 2, "@" },
|
|
||||||
{ oShowPolicyURL, "show-policy-url", 0, "@" },
|
|
||||||
{ oNoShowPolicyURL, "no-show-policy-url", 0, "@" },
|
|
||||||
{ oSigKeyserverURL, "sig-keyserver-url", 2, "@" },
|
|
||||||
{ oShowNotation, "show-notation", 0, "@" },
|
|
||||||
{ oNoShowNotation, "no-show-notation", 0, "@" },
|
|
||||||
{ oComment, "comment", 2, "@" },
|
|
||||||
{ oDefaultComment, "default-comment", 0, "@" },
|
|
||||||
{ oNoComments, "no-comments", 0, "@" },
|
|
||||||
{ oEmitVersion, "emit-version", 0, "@"},
|
|
||||||
{ oNoEmitVersion, "no-emit-version", 0, "@"},
|
|
||||||
{ oNoEmitVersion, "no-version", 0, "@"}, /* alias */
|
|
||||||
{ oNotDashEscaped, "not-dash-escaped", 0, "@" },
|
|
||||||
{ oEscapeFrom, "escape-from-lines", 0, "@" },
|
|
||||||
{ oNoEscapeFrom, "no-escape-from-lines", 0, "@" },
|
|
||||||
{ oLockOnce, "lock-once", 0, "@" },
|
|
||||||
{ oLockMultiple, "lock-multiple", 0, "@" },
|
|
||||||
{ oLockNever, "lock-never", 0, "@" },
|
|
||||||
{ oLoggerFD, "logger-fd",1, "@" },
|
|
||||||
{ oLoggerFile, "log-file",2, "@" },
|
|
||||||
{ oLoggerFile, "logger-file",2, "@" }, /* For 1.4 compatibility. */
|
|
||||||
{ oUseEmbeddedFilename, "use-embedded-filename", 0, "@" },
|
|
||||||
{ oNoUseEmbeddedFilename, "no-use-embedded-filename", 0, "@" },
|
|
||||||
{ oUtf8Strings, "utf8-strings", 0, "@" },
|
|
||||||
{ oNoUtf8Strings, "no-utf8-strings", 0, "@" },
|
|
||||||
{ oWithFingerprint, "with-fingerprint", 0, "@" },
|
|
||||||
{ oDisableCipherAlgo, "disable-cipher-algo", 2, "@" },
|
|
||||||
{ oDisablePubkeyAlgo, "disable-pubkey-algo", 2, "@" },
|
|
||||||
{ oAllowNonSelfsignedUID, "allow-non-selfsigned-uid", 0, "@" },
|
|
||||||
{ oNoAllowNonSelfsignedUID, "no-allow-non-selfsigned-uid", 0, "@" },
|
|
||||||
{ oAllowFreeformUID, "allow-freeform-uid", 0, "@" },
|
|
||||||
{ oNoAllowFreeformUID, "no-allow-freeform-uid", 0, "@" },
|
|
||||||
{ oNoLiteral, "no-literal", 0, "@" },
|
|
||||||
{ oSetFilesize, "set-filesize", 20, "@" },
|
|
||||||
{ oHonorHttpProxy,"honor-http-proxy", 0, "@" },
|
|
||||||
{ oFastListMode,"fast-list-mode", 0, "@" },
|
|
||||||
{ oFixedListMode,"fixed-list-mode", 0, "@" },
|
|
||||||
{ oListOnly, "list-only", 0, "@"},
|
|
||||||
{ oIgnoreTimeConflict, "ignore-time-conflict", 0, "@" },
|
|
||||||
{ oIgnoreValidFrom, "ignore-valid-from", 0, "@" },
|
|
||||||
{ oIgnoreCrcError, "ignore-crc-error", 0,"@" },
|
|
||||||
{ oIgnoreMDCError, "ignore-mdc-error", 0,"@" },
|
|
||||||
{ oShowSessionKey, "show-session-key", 0, "@" },
|
|
||||||
{ oOverrideSessionKey, "override-session-key", 2, "@" },
|
|
||||||
{ oNoRandomSeedFile, "no-random-seed-file", 0, "@" },
|
|
||||||
{ oAutoKeyRetrieve, "auto-key-retrieve", 0, "@" },
|
|
||||||
{ oNoAutoKeyRetrieve, "no-auto-key-retrieve", 0, "@" },
|
|
||||||
{ oNoSigCache, "no-sig-cache", 0, "@" },
|
|
||||||
{ oNoSigCreateCheck, "no-sig-create-check", 0, "@" },
|
|
||||||
{ oAutoCheckTrustDB, "auto-check-trustdb", 0, "@"},
|
|
||||||
{ oNoAutoCheckTrustDB, "no-auto-check-trustdb", 0, "@"},
|
|
||||||
{ oMergeOnly, "merge-only", 0, "@" },
|
|
||||||
{ oAllowSecretKeyImport, "allow-secret-key-import", 0, "@" },
|
|
||||||
{ oTryAllSecrets, "try-all-secrets", 0, "@" },
|
|
||||||
{ oEnableSpecialFilenames, "enable-special-filenames", 0, "@" },
|
|
||||||
{ oNoExpensiveTrustChecks, "no-expensive-trust-checks", 0, "@" },
|
|
||||||
{ aDeleteSecretAndPublicKeys, "delete-secret-and-public-keys",256, "@" },
|
|
||||||
{ aRebuildKeydbCaches, "rebuild-keydb-caches", 256, "@"},
|
|
||||||
{ oPreservePermissions, "preserve-permissions", 0, "@"},
|
|
||||||
{ oDefaultPreferenceList, "default-preference-list", 2, "@"},
|
|
||||||
{ oDefaultKeyserverURL, "default-keyserver-url", 2, "@"},
|
|
||||||
{ oPersonalCipherPreferences, "personal-cipher-preferences", 2, "@"},
|
|
||||||
{ oPersonalDigestPreferences, "personal-digest-preferences", 2, "@"},
|
|
||||||
{ oPersonalCompressPreferences, "personal-compress-preferences", 2, "@"},
|
|
||||||
/* Aliases. I constantly mistype these, and assume other people
|
|
||||||
do as well. */
|
|
||||||
{ oPersonalCipherPreferences, "personal-cipher-prefs", 2, "@"},
|
|
||||||
{ oPersonalDigestPreferences, "personal-digest-prefs", 2, "@"},
|
|
||||||
{ oPersonalCompressPreferences, "personal-compress-prefs", 2, "@"},
|
|
||||||
{ oAgentProgram, "agent-program", 2 , "@" },
|
|
||||||
{ oDisplay, "display", 2, "@" },
|
|
||||||
{ oTTYname, "ttyname", 2, "@" },
|
|
||||||
{ oTTYtype, "ttytype", 2, "@" },
|
|
||||||
{ oLCctype, "lc-ctype", 2, "@" },
|
|
||||||
{ oLCmessages, "lc-messages", 2, "@" },
|
|
||||||
{ oXauthority, "xauthority", 2, "@" },
|
|
||||||
{ oGroup, "group", 2, "@" },
|
|
||||||
{ oUnGroup, "ungroup", 2, "@" },
|
|
||||||
{ oNoGroups, "no-groups", 0, "@" },
|
|
||||||
{ oStrict, "strict", 0, "@" },
|
|
||||||
{ oNoStrict, "no-strict", 0, "@" },
|
|
||||||
{ oMangleDosFilenames, "mangle-dos-filenames", 0, "@" },
|
|
||||||
{ oNoMangleDosFilenames, "no-mangle-dos-filenames", 0, "@" },
|
|
||||||
{ oEnableProgressFilter, "enable-progress-filter", 0, "@" },
|
|
||||||
{ oMultifile, "multifile", 0, "@" },
|
|
||||||
{ oKeyidFormat, "keyid-format", 2, "@" },
|
|
||||||
{ oExitOnStatusWriteError, "exit-on-status-write-error", 0, "@" },
|
|
||||||
{ oLimitCardInsertTries, "limit-card-insert-tries", 1, "@"},
|
|
||||||
|
|
||||||
{ oAllowMultisigVerification, "allow-multisig-verification", 0, "@"},
|
ARGPARSE_s_s (oPasswd, "passphrase", "@"),
|
||||||
{ oEnableDSA2, "enable-dsa2", 0, "@"},
|
ARGPARSE_s_i (oPasswdFD, "passphrase-fd", "@"),
|
||||||
{ oDisableDSA2, "disable-dsa2", 0, "@"},
|
ARGPARSE_s_s (oPasswdFile, "passphrase-file", "@"),
|
||||||
{ oAllowMultipleMessages, "allow-multiple-messages", 0, "@"},
|
ARGPARSE_s_i (oPasswdRepeat, "passphrase-repeat", "@"),
|
||||||
{ oNoAllowMultipleMessages, "no-allow-multiple-messages", 0, "@"},
|
ARGPARSE_s_i (oCommandFD, "command-fd", "@"),
|
||||||
|
ARGPARSE_s_s (oCommandFile, "command-file", "@"),
|
||||||
|
ARGPARSE_s_n (oQuickRandom, "debug-quick-random", "@"),
|
||||||
|
ARGPARSE_s_n (oNoVerbose, "no-verbose", "@"),
|
||||||
|
ARGPARSE_s_s (oTrustDBName, "trustdb-name", "@"),
|
||||||
|
ARGPARSE_s_n (oNoSecmemWarn, "no-secmem-warning", "@"),
|
||||||
|
ARGPARSE_s_n (oRequireSecmem, "require-secmem", "@"),
|
||||||
|
ARGPARSE_s_n (oNoRequireSecmem, "no-require-secmem", "@"),
|
||||||
|
ARGPARSE_s_n (oNoPermissionWarn, "no-permission-warning", "@"),
|
||||||
|
ARGPARSE_s_n (oNoMDCWarn, "no-mdc-warning", "@"),
|
||||||
|
ARGPARSE_s_n (oNoArmor, "no-armor", "@"),
|
||||||
|
ARGPARSE_s_n (oNoArmor, "no-armour", "@"),
|
||||||
|
ARGPARSE_s_n (oNoDefKeyring, "no-default-keyring", "@"),
|
||||||
|
ARGPARSE_s_n (oNoGreeting, "no-greeting", "@"),
|
||||||
|
ARGPARSE_s_n (oNoOptions, "no-options", "@"),
|
||||||
|
ARGPARSE_s_s (oHomedir, "homedir", "@"),
|
||||||
|
ARGPARSE_s_n (oNoBatch, "no-batch", "@"),
|
||||||
|
ARGPARSE_s_n (oWithColons, "with-colons", "@"),
|
||||||
|
ARGPARSE_s_n (oWithKeyData,"with-key-data", "@"),
|
||||||
|
ARGPARSE_s_n (oWithSigList,"with-sig-list", "@"),
|
||||||
|
ARGPARSE_s_n (oWithSigCheck,"with-sig-check", "@"),
|
||||||
|
ARGPARSE_s_n (aListKeys, "list-key", "@"), /* alias */
|
||||||
|
ARGPARSE_s_n (aListSigs, "list-sig", "@"), /* alias */
|
||||||
|
ARGPARSE_s_n (aCheckKeys, "check-sig", "@"), /* alias */
|
||||||
|
ARGPARSE_s_n (oSkipVerify, "skip-verify", "@"),
|
||||||
|
ARGPARSE_s_n (oCompressKeys, "compress-keys", "@"),
|
||||||
|
ARGPARSE_s_n (oCompressSigs, "compress-sigs", "@"),
|
||||||
|
ARGPARSE_s_i (oDefCertLevel, "default-cert-check-level", "@"), /* old */
|
||||||
|
ARGPARSE_s_n (oAlwaysTrust, "always-trust", "@"),
|
||||||
|
ARGPARSE_s_s (oTrustModel, "trust-model", "@"),
|
||||||
|
ARGPARSE_s_s (oForceOwnertrust, "force-ownertrust", "@"),
|
||||||
|
ARGPARSE_s_s (oSetFilename, "set-filename", "@"),
|
||||||
|
ARGPARSE_s_n (oForYourEyesOnly, "for-your-eyes-only", "@"),
|
||||||
|
ARGPARSE_s_n (oNoForYourEyesOnly, "no-for-your-eyes-only", "@"),
|
||||||
|
ARGPARSE_s_s (oSetPolicyURL, "set-policy-url", "@"),
|
||||||
|
ARGPARSE_s_s (oSigPolicyURL, "sig-policy-url", "@"),
|
||||||
|
ARGPARSE_s_s (oCertPolicyURL, "cert-policy-url", "@"),
|
||||||
|
ARGPARSE_s_n (oShowPolicyURL, "show-policy-url", "@"),
|
||||||
|
ARGPARSE_s_n (oNoShowPolicyURL, "no-show-policy-url", "@"),
|
||||||
|
ARGPARSE_s_s (oSigKeyserverURL, "sig-keyserver-url", "@"),
|
||||||
|
ARGPARSE_s_n (oShowNotation, "show-notation", "@"),
|
||||||
|
ARGPARSE_s_n (oNoShowNotation, "no-show-notation", "@"),
|
||||||
|
ARGPARSE_s_s (oComment, "comment", "@"),
|
||||||
|
ARGPARSE_s_n (oDefaultComment, "default-comment", "@"),
|
||||||
|
ARGPARSE_s_n (oNoComments, "no-comments", "@"),
|
||||||
|
ARGPARSE_s_n (oEmitVersion, "emit-version", "@"),
|
||||||
|
ARGPARSE_s_n (oNoEmitVersion, "no-emit-version", "@"),
|
||||||
|
ARGPARSE_s_n (oNoEmitVersion, "no-version", "@"), /* alias */
|
||||||
|
ARGPARSE_s_n (oNotDashEscaped, "not-dash-escaped", "@"),
|
||||||
|
ARGPARSE_s_n (oEscapeFrom, "escape-from-lines", "@"),
|
||||||
|
ARGPARSE_s_n (oNoEscapeFrom, "no-escape-from-lines", "@"),
|
||||||
|
ARGPARSE_s_n (oLockOnce, "lock-once", "@"),
|
||||||
|
ARGPARSE_s_n (oLockMultiple, "lock-multiple", "@"),
|
||||||
|
ARGPARSE_s_n (oLockNever, "lock-never", "@"),
|
||||||
|
ARGPARSE_s_i (oLoggerFD, "logger-fd", "@"),
|
||||||
|
ARGPARSE_s_s (oLoggerFile, "log-file", "@"),
|
||||||
|
ARGPARSE_s_s (oLoggerFile, "logger-file", "@"), /* 1.4 compatibility. */
|
||||||
|
ARGPARSE_s_n (oUseEmbeddedFilename, "use-embedded-filename", "@"),
|
||||||
|
ARGPARSE_s_n (oNoUseEmbeddedFilename, "no-use-embedded-filename", "@"),
|
||||||
|
ARGPARSE_s_n (oUtf8Strings, "utf8-strings", "@"),
|
||||||
|
ARGPARSE_s_n (oNoUtf8Strings, "no-utf8-strings", "@"),
|
||||||
|
ARGPARSE_s_n (oWithFingerprint, "with-fingerprint", "@"),
|
||||||
|
ARGPARSE_s_s (oDisableCipherAlgo, "disable-cipher-algo", "@"),
|
||||||
|
ARGPARSE_s_s (oDisablePubkeyAlgo, "disable-pubkey-algo", "@"),
|
||||||
|
ARGPARSE_s_n (oAllowNonSelfsignedUID, "allow-non-selfsigned-uid", "@"),
|
||||||
|
ARGPARSE_s_n (oNoAllowNonSelfsignedUID, "no-allow-non-selfsigned-uid", "@"),
|
||||||
|
ARGPARSE_s_n (oAllowFreeformUID, "allow-freeform-uid", "@"),
|
||||||
|
ARGPARSE_s_n (oNoAllowFreeformUID, "no-allow-freeform-uid", "@"),
|
||||||
|
ARGPARSE_s_n (oNoLiteral, "no-literal", "@"),
|
||||||
|
ARGPARSE_p_u (oSetFilesize, "set-filesize", "@"),
|
||||||
|
ARGPARSE_s_n (oHonorHttpProxy, "honor-http-proxy", "@"),
|
||||||
|
ARGPARSE_s_n (oFastListMode, "fast-list-mode", "@"),
|
||||||
|
ARGPARSE_s_n (oFixedListMode, "fixed-list-mode", "@"),
|
||||||
|
ARGPARSE_s_n (oListOnly, "list-only", "@"),
|
||||||
|
ARGPARSE_s_n (oIgnoreTimeConflict, "ignore-time-conflict", "@"),
|
||||||
|
ARGPARSE_s_n (oIgnoreValidFrom, "ignore-valid-from", "@"),
|
||||||
|
ARGPARSE_s_n (oIgnoreCrcError, "ignore-crc-error", "@"),
|
||||||
|
ARGPARSE_s_n (oIgnoreMDCError, "ignore-mdc-error", "@"),
|
||||||
|
ARGPARSE_s_n (oShowSessionKey, "show-session-key", "@"),
|
||||||
|
ARGPARSE_s_s (oOverrideSessionKey, "override-session-key", "@"),
|
||||||
|
ARGPARSE_s_n (oNoRandomSeedFile, "no-random-seed-file", "@"),
|
||||||
|
ARGPARSE_s_n (oAutoKeyRetrieve, "auto-key-retrieve", "@"),
|
||||||
|
ARGPARSE_s_n (oNoAutoKeyRetrieve, "no-auto-key-retrieve", "@"),
|
||||||
|
ARGPARSE_s_n (oNoSigCache, "no-sig-cache", "@"),
|
||||||
|
ARGPARSE_s_n (oNoSigCreateCheck, "no-sig-create-check", "@"),
|
||||||
|
ARGPARSE_s_n (oAutoCheckTrustDB, "auto-check-trustdb", "@"),
|
||||||
|
ARGPARSE_s_n (oNoAutoCheckTrustDB, "no-auto-check-trustdb", "@"),
|
||||||
|
ARGPARSE_s_n (oMergeOnly, "merge-only", "@" ),
|
||||||
|
ARGPARSE_s_n (oAllowSecretKeyImport, "allow-secret-key-import", "@"),
|
||||||
|
ARGPARSE_s_n (oTryAllSecrets, "try-all-secrets", "@"),
|
||||||
|
ARGPARSE_s_n (oEnableSpecialFilenames, "enable-special-filenames", "@"),
|
||||||
|
ARGPARSE_s_n (oNoExpensiveTrustChecks, "no-expensive-trust-checks", "@"),
|
||||||
|
ARGPARSE_s_n (oPreservePermissions, "preserve-permissions", "@"),
|
||||||
|
ARGPARSE_s_s (oDefaultPreferenceList, "default-preference-list", "@"),
|
||||||
|
ARGPARSE_s_s (oDefaultKeyserverURL, "default-keyserver-url", "@"),
|
||||||
|
ARGPARSE_s_s (oPersonalCipherPreferences, "personal-cipher-preferences","@"),
|
||||||
|
ARGPARSE_s_s (oPersonalDigestPreferences, "personal-digest-preferences","@"),
|
||||||
|
ARGPARSE_s_s (oPersonalCompressPreferences,
|
||||||
|
"personal-compress-preferences", "@"),
|
||||||
|
|
||||||
|
/* Aliases. I constantly mistype these, and assume other people do
|
||||||
|
as well. */
|
||||||
|
ARGPARSE_s_s (oPersonalCipherPreferences, "personal-cipher-prefs", "@"),
|
||||||
|
ARGPARSE_s_s (oPersonalDigestPreferences, "personal-digest-prefs", "@"),
|
||||||
|
ARGPARSE_s_s (oPersonalCompressPreferences, "personal-compress-prefs", "@"),
|
||||||
|
ARGPARSE_s_s (oAgentProgram, "agent-program", "@"),
|
||||||
|
ARGPARSE_s_s (oDisplay, "display", "@"),
|
||||||
|
ARGPARSE_s_s (oTTYname, "ttyname", "@"),
|
||||||
|
ARGPARSE_s_s (oTTYtype, "ttytype", "@"),
|
||||||
|
ARGPARSE_s_s (oLCctype, "lc-ctype", "@"),
|
||||||
|
ARGPARSE_s_s (oLCmessages, "lc-messages","@"),
|
||||||
|
ARGPARSE_s_s (oXauthority, "xauthority", "@"),
|
||||||
|
ARGPARSE_s_s (oGroup, "group", "@"),
|
||||||
|
ARGPARSE_s_s (oUnGroup, "ungroup", "@"),
|
||||||
|
ARGPARSE_s_n (oNoGroups, "no-groups", "@"),
|
||||||
|
ARGPARSE_s_n (oStrict, "strict", "@"),
|
||||||
|
ARGPARSE_s_n (oNoStrict, "no-strict", "@"),
|
||||||
|
ARGPARSE_s_n (oMangleDosFilenames, "mangle-dos-filenames", "@"),
|
||||||
|
ARGPARSE_s_n (oNoMangleDosFilenames, "no-mangle-dos-filenames", "@"),
|
||||||
|
ARGPARSE_s_n (oEnableProgressFilter, "enable-progress-filter", "@"),
|
||||||
|
ARGPARSE_s_n (oMultifile, "multifile", "@"),
|
||||||
|
ARGPARSE_s_s (oKeyidFormat, "keyid-format", "@"),
|
||||||
|
ARGPARSE_s_n (oExitOnStatusWriteError, "exit-on-status-write-error", "@"),
|
||||||
|
ARGPARSE_s_i (oLimitCardInsertTries, "limit-card-insert-tries", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_s_n (oAllowMultisigVerification,
|
||||||
|
"allow-multisig-verification", "@"),
|
||||||
|
ARGPARSE_s_n (oEnableDSA2, "enable-dsa2", "@"),
|
||||||
|
ARGPARSE_s_n (oDisableDSA2, "disable-dsa2", "@"),
|
||||||
|
ARGPARSE_s_n (oAllowMultipleMessages, "allow-multiple-messages", "@"),
|
||||||
|
ARGPARSE_s_n (oNoAllowMultipleMessages, "no-allow-multiple-messages", "@"),
|
||||||
|
|
||||||
/* These two are aliases to help users of the PGP command line
|
/* These two are aliases to help users of the PGP command line
|
||||||
product use gpg with minimal pain. Many commands are common
|
product use gpg with minimal pain. Many commands are common
|
||||||
already as they seem to have borrowed commands from us. Now
|
already as they seem to have borrowed commands from us. Now I'm
|
||||||
I'm returning the favor. */
|
returning the favor. */
|
||||||
{ oLocalUser, "sign-with", 2, "@" },
|
ARGPARSE_s_s (oLocalUser, "sign-with", "@"),
|
||||||
{ oRecipient, "user", 2, "@" },
|
ARGPARSE_s_s (oRecipient, "user", "@"),
|
||||||
|
|
||||||
{ oRequireCrossCert, "require-backsigs", 0, "@"},
|
ARGPARSE_s_n (oRequireCrossCert, "require-backsigs", "@"),
|
||||||
{ oRequireCrossCert, "require-cross-certification", 0, "@"},
|
ARGPARSE_s_n (oRequireCrossCert, "require-cross-certification", "@"),
|
||||||
{ oNoRequireCrossCert, "no-require-backsigs", 0, "@"},
|
ARGPARSE_s_n (oNoRequireCrossCert, "no-require-backsigs", "@"),
|
||||||
{ oNoRequireCrossCert, "no-require-cross-certification", 0, "@"},
|
ARGPARSE_s_n (oNoRequireCrossCert, "no-require-cross-certification", "@"),
|
||||||
{ oAutoKeyLocate, "auto-key-locate", 2, "@"},
|
|
||||||
{ oNoAutoKeyLocate, "no-auto-key-locate", 0, "@"},
|
|
||||||
|
|
||||||
{0,NULL,0,NULL}
|
/* New options. Fixme: Should go more to the top. */
|
||||||
|
ARGPARSE_s_s (oAutoKeyLocate, "auto-key-locate", "@"),
|
||||||
|
ARGPARSE_s_n (oNoAutoKeyLocate, "no-auto-key-locate", "@"),
|
||||||
|
|
||||||
|
ARGPARSE_end ()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -2880,7 +2909,9 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
case oNoop: break;
|
case oNoop: break;
|
||||||
|
|
||||||
default : pargs.err = configfp? 1:2; break;
|
default:
|
||||||
|
pargs.err = configfp? ARGPARSE_PRINT_WARNING:ARGPARSE_PRINT_ERROR;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2008-11-11 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* argparse.h: Add a bunch of macros and constants.
|
||||||
|
* argparse.c: Use the new macros. Re-indent the code. Change
|
||||||
|
license back to LGPL 2.1.
|
||||||
|
|
||||||
2008-11-04 Werner Koch <wk@g10code.com>
|
2008-11-04 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* w32-gettext.c: Merged with code from libgpg-error and rewrote
|
* w32-gettext.c: Merged with code from libgpg-error and rewrote
|
||||||
|
397
jnlib/argparse.c
397
jnlib/argparse.c
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* JNLIB is free software; you can redistribute it and/or modify it
|
* JNLIB is free software; you can redistribute it and/or modify it
|
||||||
* under the terms of the GNU Lesser General Public License as
|
* under the terms of the GNU Lesser General Public License as
|
||||||
* published by the Free Software Foundation; either version 3 of
|
* published by the Free Software Foundation; either version 2.1 of
|
||||||
* the License, or (at your option) any later version.
|
* the License, or (at your option) any later version.
|
||||||
*
|
*
|
||||||
* JNLIB is distributed in the hope that it will be useful, but
|
* JNLIB is distributed in the hope that it will be useful, but
|
||||||
@ -18,7 +18,10 @@
|
|||||||
* License along with this program; if not, see <http://www.gnu.org/licenses/>.
|
* License along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@ -296,7 +299,7 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
|
|||||||
idx = i;
|
idx = i;
|
||||||
arg->r_opt = opts[idx].short_opt;
|
arg->r_opt = opts[idx].short_opt;
|
||||||
if (!opts[idx].short_opt )
|
if (!opts[idx].short_opt )
|
||||||
arg->r_opt = ((opts[idx].flags & 256)
|
arg->r_opt = ((opts[idx].flags & ARGPARSE_OPT_COMMAND)
|
||||||
? ARGPARSE_INVALID_COMMAND
|
? ARGPARSE_INVALID_COMMAND
|
||||||
: ARGPARSE_INVALID_OPTION);
|
: ARGPARSE_INVALID_OPTION);
|
||||||
else if (!(opts[idx].flags & 7))
|
else if (!(opts[idx].flags & 7))
|
||||||
@ -421,7 +424,7 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
arg->r_opt = ((opts[idx].flags & 256)
|
arg->r_opt = ((opts[idx].flags & ARGPARSE_OPT_COMMAND)
|
||||||
? ARGPARSE_INVALID_COMMAND
|
? ARGPARSE_INVALID_COMMAND
|
||||||
: ARGPARSE_INVALID_OPTION);
|
: ARGPARSE_INVALID_OPTION);
|
||||||
state = -1; /* Skip rest of line and leave. */
|
state = -1; /* Skip rest of line and leave. */
|
||||||
@ -565,186 +568,234 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
|
|||||||
argv = *arg->argv;
|
argv = *arg->argv;
|
||||||
idx = arg->internal.idx;
|
idx = arg->internal.idx;
|
||||||
|
|
||||||
if( !idx && argc && !(arg->flags & (1<<4)) ) { /* skip the first entry */
|
if (!idx && argc && !(arg->flags & ARGPARSE_FLAG_ARG0))
|
||||||
|
{
|
||||||
|
/* Skip the first argument. */
|
||||||
argc--; argv++; idx++;
|
argc--; argv++; idx++;
|
||||||
}
|
}
|
||||||
|
|
||||||
next_one:
|
next_one:
|
||||||
if( !argc ) { /* no more args */
|
if (!argc)
|
||||||
|
{
|
||||||
|
/* No more args. */
|
||||||
arg->r_opt = 0;
|
arg->r_opt = 0;
|
||||||
goto leave; /* ready */
|
goto leave; /* Ready. */
|
||||||
}
|
}
|
||||||
|
|
||||||
s = *argv;
|
s = *argv;
|
||||||
arg->internal.last = s;
|
arg->internal.last = s;
|
||||||
|
|
||||||
if( arg->internal.stopped && (arg->flags & (1<<1)) ) {
|
if (arg->internal.stopped && (arg->flags & ARGPARSE_FLAG_KEEP))
|
||||||
|
{
|
||||||
arg->r_opt = ARGPARSE_IS_ARG; /* Not an option but an argument. */
|
arg->r_opt = ARGPARSE_IS_ARG; /* Not an option but an argument. */
|
||||||
arg->r_type = 2;
|
arg->r_type = 2;
|
||||||
arg->r.ret_str = s;
|
arg->r.ret_str = s;
|
||||||
argc--; argv++; idx++; /* set to next one */
|
argc--; argv++; idx++; /* set to next one */
|
||||||
}
|
}
|
||||||
else if( arg->internal.stopped ) { /* ready */
|
else if( arg->internal.stopped )
|
||||||
|
{
|
||||||
arg->r_opt = 0;
|
arg->r_opt = 0;
|
||||||
goto leave;
|
goto leave; /* Ready. */
|
||||||
}
|
}
|
||||||
else if( *s == '-' && s[1] == '-' ) { /* long option */
|
else if ( *s == '-' && s[1] == '-' )
|
||||||
|
{
|
||||||
|
/* Long option. */
|
||||||
char *argpos;
|
char *argpos;
|
||||||
|
|
||||||
arg->internal.inarg = 0;
|
arg->internal.inarg = 0;
|
||||||
if( !s[2] && !(arg->flags & (1<<3)) ) { /* stop option processing */
|
if (!s[2] && !(arg->flags & ARGPARSE_FLAG_MIXED))
|
||||||
|
{
|
||||||
|
/* Stop option processing. */
|
||||||
arg->internal.stopped = 1;
|
arg->internal.stopped = 1;
|
||||||
argc--; argv++; idx++;
|
argc--; argv++; idx++;
|
||||||
goto next_one;
|
goto next_one;
|
||||||
}
|
}
|
||||||
|
|
||||||
argpos = strchr( s+2, '=' );
|
argpos = strchr( s+2, '=' );
|
||||||
if( argpos )
|
if ( argpos )
|
||||||
*argpos = 0;
|
*argpos = 0;
|
||||||
i = find_long_option( arg, opts, s+2 );
|
i = find_long_option ( arg, opts, s+2 );
|
||||||
if( argpos )
|
if ( argpos )
|
||||||
*argpos = '=';
|
*argpos = '=';
|
||||||
|
|
||||||
if( i < 0 && !strcmp( "help", s+2) )
|
if ( i < 0 && !strcmp ( "help", s+2) )
|
||||||
show_help(opts, arg->flags);
|
show_help (opts, arg->flags);
|
||||||
else if( i < 0 && !strcmp( "version", s+2) ) {
|
else if ( i < 0 && !strcmp ( "version", s+2) )
|
||||||
if( !(arg->flags & (1<<6)) ) {
|
{
|
||||||
show_version();
|
if (!(arg->flags & ARGPARSE_FLAG_NOVERSION))
|
||||||
|
{
|
||||||
|
show_version ();
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( i < 0 && !strcmp( "warranty", s+2) ) {
|
else if ( i < 0 && !strcmp( "warranty", s+2))
|
||||||
puts( strusage(16) );
|
{
|
||||||
exit(0);
|
puts ( strusage (16) );
|
||||||
|
exit (0);
|
||||||
}
|
}
|
||||||
else if( i < 0 && !strcmp( "dump-options", s+2) ) {
|
else if ( i < 0 && !strcmp( "dump-options", s+2) )
|
||||||
for(i=0; opts[i].short_opt; i++ ) {
|
{
|
||||||
if( opts[i].long_opt )
|
for (i=0; opts[i].short_opt; i++ )
|
||||||
printf( "--%s\n", opts[i].long_opt );
|
{
|
||||||
|
if ( opts[i].long_opt )
|
||||||
|
printf ("--%s\n", opts[i].long_opt);
|
||||||
}
|
}
|
||||||
fputs("--dump-options\n--help\n--version\n--warranty\n", stdout );
|
fputs ("--dump-options\n--help\n--version\n--warranty\n", stdout);
|
||||||
exit(0);
|
exit (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( i == -2 )
|
if ( i == -2 )
|
||||||
arg->r_opt = ARGPARSE_AMBIGUOUS_OPTION;
|
arg->r_opt = ARGPARSE_AMBIGUOUS_OPTION;
|
||||||
else if( i == -1 ) {
|
else if ( i == -1 )
|
||||||
|
{
|
||||||
arg->r_opt = ARGPARSE_INVALID_OPTION;
|
arg->r_opt = ARGPARSE_INVALID_OPTION;
|
||||||
arg->r.ret_str = s+2;
|
arg->r.ret_str = s+2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
arg->r_opt = opts[i].short_opt;
|
arg->r_opt = opts[i].short_opt;
|
||||||
if( i < 0 )
|
if ( i < 0 )
|
||||||
;
|
;
|
||||||
else if( (opts[i].flags & 7) ) {
|
else if ( (opts[i].flags & 0x07) )
|
||||||
if( argpos ) {
|
{
|
||||||
|
if ( argpos )
|
||||||
|
{
|
||||||
s2 = argpos+1;
|
s2 = argpos+1;
|
||||||
if( !*s2 )
|
if ( !*s2 )
|
||||||
s2 = NULL;
|
s2 = NULL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
s2 = argv[1];
|
s2 = argv[1];
|
||||||
if( !s2 && (opts[i].flags & 8) ) { /* no argument but it is okay*/
|
if ( !s2 && (opts[i].flags & ARGPARSE_OPT_OPTIONAL) )
|
||||||
arg->r_type = 0; /* because it is optional */
|
{
|
||||||
|
arg->r_type = ARGPARSE_TYPE_NONE; /* Argument is optional. */
|
||||||
}
|
}
|
||||||
else if( !s2 ) {
|
else if ( !s2 )
|
||||||
|
{
|
||||||
arg->r_opt = ARGPARSE_MISSING_ARG;
|
arg->r_opt = ARGPARSE_MISSING_ARG;
|
||||||
}
|
}
|
||||||
else if( !argpos && *s2 == '-' && (opts[i].flags & 8) ) {
|
else if ( !argpos && *s2 == '-'
|
||||||
/* the argument is optional and the next seems to be
|
&& (opts[i].flags & ARGPARSE_OPT_OPTIONAL) )
|
||||||
* an option. We do not check this possible option
|
{
|
||||||
* but assume no argument */
|
/* The argument is optional and the next seems to be an
|
||||||
arg->r_type = 0;
|
option. We do not check this possible option but
|
||||||
|
assume no argument */
|
||||||
|
arg->r_type = ARGPARSE_TYPE_NONE;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
set_opt_arg(arg, opts[i].flags, s2);
|
{
|
||||||
if( !argpos ) {
|
set_opt_arg (arg, opts[i].flags, s2);
|
||||||
argc--; argv++; idx++; /* skip one */
|
if ( !argpos )
|
||||||
|
{
|
||||||
|
argc--; argv++; idx++; /* Skip one. */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { /* does not take an argument */
|
else
|
||||||
if( argpos )
|
{
|
||||||
arg->r_type = -6; /* argument not expected */
|
/* Does not take an argument. */
|
||||||
|
if ( argpos )
|
||||||
|
arg->r_type = ARGPARSE_UNEXPECTED_ARG;
|
||||||
else
|
else
|
||||||
arg->r_type = 0;
|
arg->r_type = 0;
|
||||||
}
|
}
|
||||||
argc--; argv++; idx++; /* set to next one */
|
argc--; argv++; idx++; /* Set to next one. */
|
||||||
}
|
}
|
||||||
else if( (*s == '-' && s[1]) || arg->internal.inarg ) { /* short option */
|
else if ( (*s == '-' && s[1]) || arg->internal.inarg )
|
||||||
|
{
|
||||||
|
/* Short option. */
|
||||||
int dash_kludge = 0;
|
int dash_kludge = 0;
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
if( !arg->internal.inarg ) {
|
if ( !arg->internal.inarg )
|
||||||
|
{
|
||||||
arg->internal.inarg++;
|
arg->internal.inarg++;
|
||||||
if( arg->flags & (1<<5) ) {
|
if ( (arg->flags & ARGPARSE_FLAG_ONEDASH) )
|
||||||
for(i=0; opts[i].short_opt; i++ )
|
{
|
||||||
if( opts[i].long_opt && !strcmp( opts[i].long_opt, s+1)) {
|
for (i=0; opts[i].short_opt; i++ )
|
||||||
dash_kludge=1;
|
if ( opts[i].long_opt && !strcmp (opts[i].long_opt, s+1))
|
||||||
|
{
|
||||||
|
dash_kludge = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s += arg->internal.inarg;
|
s += arg->internal.inarg;
|
||||||
|
|
||||||
if( !dash_kludge ) {
|
if (!dash_kludge )
|
||||||
for(i=0; opts[i].short_opt; i++ )
|
{
|
||||||
if( opts[i].short_opt == *s )
|
for (i=0; opts[i].short_opt; i++ )
|
||||||
|
if ( opts[i].short_opt == *s )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !opts[i].short_opt && ( *s == 'h' || *s == '?' ) )
|
if ( !opts[i].short_opt && ( *s == 'h' || *s == '?' ) )
|
||||||
show_help(opts, arg->flags);
|
show_help (opts, arg->flags);
|
||||||
|
|
||||||
arg->r_opt = opts[i].short_opt;
|
arg->r_opt = opts[i].short_opt;
|
||||||
if( !opts[i].short_opt ) {
|
if (!opts[i].short_opt )
|
||||||
arg->r_opt = (opts[i].flags & 256)?
|
{
|
||||||
|
arg->r_opt = (opts[i].flags & ARGPARSE_OPT_COMMAND)?
|
||||||
ARGPARSE_INVALID_COMMAND:ARGPARSE_INVALID_OPTION;
|
ARGPARSE_INVALID_COMMAND:ARGPARSE_INVALID_OPTION;
|
||||||
arg->internal.inarg++; /* point to the next arg */
|
arg->internal.inarg++; /* Point to the next arg. */
|
||||||
arg->r.ret_str = s;
|
arg->r.ret_str = s;
|
||||||
}
|
}
|
||||||
else if( (opts[i].flags & 7) ) {
|
else if ( (opts[i].flags & 7) )
|
||||||
if( s[1] && !dash_kludge ) {
|
{
|
||||||
|
if ( s[1] && !dash_kludge )
|
||||||
|
{
|
||||||
s2 = s+1;
|
s2 = s+1;
|
||||||
set_opt_arg(arg, opts[i].flags, s2);
|
set_opt_arg (arg, opts[i].flags, s2);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
s2 = argv[1];
|
s2 = argv[1];
|
||||||
if( !s2 && (opts[i].flags & 8) ) { /* no argument but it is okay*/
|
if ( !s2 && (opts[i].flags & ARGPARSE_OPT_OPTIONAL) )
|
||||||
arg->r_type = 0; /* because it is optional */
|
{
|
||||||
|
arg->r_type = ARGPARSE_TYPE_NONE;
|
||||||
}
|
}
|
||||||
else if( !s2 ) {
|
else if ( !s2 )
|
||||||
|
{
|
||||||
arg->r_opt = ARGPARSE_MISSING_ARG;
|
arg->r_opt = ARGPARSE_MISSING_ARG;
|
||||||
}
|
}
|
||||||
else if( *s2 == '-' && s2[1] && (opts[i].flags & 8) ) {
|
else if ( *s2 == '-' && s2[1]
|
||||||
/* the argument is optional and the next seems to be
|
&& (opts[i].flags & ARGPARSE_OPT_OPTIONAL) )
|
||||||
* an option. We do not check this possible option
|
{
|
||||||
* but assume no argument */
|
/* The argument is optional and the next seems to
|
||||||
arg->r_type = 0;
|
be an option. We do not check this possible
|
||||||
|
option but assume no argument. */
|
||||||
|
arg->r_type = ARGPARSE_TYPE_NONE;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
set_opt_arg(arg, opts[i].flags, s2);
|
{
|
||||||
argc--; argv++; idx++; /* skip one */
|
set_opt_arg (arg, opts[i].flags, s2);
|
||||||
|
argc--; argv++; idx++; /* Skip one. */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s = "x"; /* so that !s[1] yields false */
|
s = "x"; /* This is so that !s[1] yields false. */
|
||||||
}
|
}
|
||||||
else { /* does not take an argument */
|
else
|
||||||
arg->r_type = 0;
|
{
|
||||||
arg->internal.inarg++; /* point to the next arg */
|
/* Does not take an argument. */
|
||||||
|
arg->r_type = ARGPARSE_TYPE_NONE;
|
||||||
|
arg->internal.inarg++; /* Point to the next arg. */
|
||||||
}
|
}
|
||||||
if( !s[1] || dash_kludge ) { /* no more concatenated short options */
|
if ( !s[1] || dash_kludge )
|
||||||
|
{
|
||||||
|
/* No more concatenated short options. */
|
||||||
arg->internal.inarg = 0;
|
arg->internal.inarg = 0;
|
||||||
argc--; argv++; idx++;
|
argc--; argv++; idx++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( arg->flags & (1<<2) ) {
|
else if ( arg->flags & ARGPARSE_FLAG_ALL )
|
||||||
|
{
|
||||||
arg->r_opt = ARGPARSE_IS_ARG;
|
arg->r_opt = ARGPARSE_IS_ARG;
|
||||||
arg->r_type = 2;
|
arg->r_type = 2;
|
||||||
arg->r.ret_str = s;
|
arg->r.ret_str = s;
|
||||||
argc--; argv++; idx++; /* set to next one */
|
argc--; argv++; idx++; /* Set to next one. */
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
arg->internal.stopped = 1; /* stop option processing */
|
{
|
||||||
|
arg->internal.stopped = 1; /* Stop option processing. */
|
||||||
goto next_one;
|
goto next_one;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -762,17 +813,18 @@ set_opt_arg(ARGPARSE_ARGS *arg, unsigned flags, char *s)
|
|||||||
{
|
{
|
||||||
int base = (flags & 16)? 0 : 10;
|
int base = (flags & 16)? 0 : 10;
|
||||||
|
|
||||||
switch( arg->r_type = (flags & 7) ) {
|
switch ( (arg->r_type = (flags & 7)) )
|
||||||
case 1: /* takes int argument */
|
{
|
||||||
|
case ARGPARSE_TYPE_INT:
|
||||||
arg->r.ret_int = (int)strtol(s,NULL,base);
|
arg->r.ret_int = (int)strtol(s,NULL,base);
|
||||||
return 0;
|
return 0;
|
||||||
case 3: /* takes long argument */
|
case ARGPARSE_TYPE_LONG:
|
||||||
arg->r.ret_long= strtol(s,NULL,base);
|
arg->r.ret_long= strtol(s,NULL,base);
|
||||||
return 0;
|
return 0;
|
||||||
case 4: /* takes ulong argument */
|
case ARGPARSE_TYPE_ULONG:
|
||||||
arg->r.ret_ulong= strtoul(s,NULL,base);
|
arg->r.ret_ulong= strtoul(s,NULL,base);
|
||||||
return 0;
|
return 0;
|
||||||
case 2: /* takes string argument */
|
case ARGPARSE_TYPE_STRING:
|
||||||
default:
|
default:
|
||||||
arg->r.ret_str = s;
|
arg->r.ret_str = s;
|
||||||
return 1;
|
return 1;
|
||||||
@ -807,6 +859,7 @@ long_opt_strlen( ARGPARSE_OPTS *o )
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
* Print formatted help. The description string has some special
|
* Print formatted help. The description string has some special
|
||||||
* meanings:
|
* meanings:
|
||||||
@ -819,34 +872,43 @@ long_opt_strlen( ARGPARSE_OPTS *o )
|
|||||||
* bar and the next one as arguments of the long option.
|
* bar and the next one as arguments of the long option.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
show_help( ARGPARSE_OPTS *opts, unsigned flags )
|
show_help (ARGPARSE_OPTS *opts, unsigned int flags)
|
||||||
{
|
{
|
||||||
const char *s;
|
const char *s;
|
||||||
|
|
||||||
show_version();
|
show_version ();
|
||||||
putchar('\n');
|
putchar ('\n');
|
||||||
s = strusage(41);
|
s = strusage(41);
|
||||||
puts(s);
|
puts (s);
|
||||||
if( opts[0].description ) { /* auto format the option description */
|
if ( opts[0].description )
|
||||||
|
{
|
||||||
|
/* Auto format the option description. */
|
||||||
int i,j, indent;
|
int i,j, indent;
|
||||||
/* get max. length of long options */
|
|
||||||
for(i=indent=0; opts[i].short_opt; i++ ) {
|
/* Get max. length of long options. */
|
||||||
if( opts[i].long_opt )
|
for (i=indent=0; opts[i].short_opt; i++ )
|
||||||
if( !opts[i].description || *opts[i].description != '@' )
|
{
|
||||||
if( (j=long_opt_strlen(opts+i)) > indent && j < 35 )
|
if ( opts[i].long_opt )
|
||||||
|
if ( !opts[i].description || *opts[i].description != '@' )
|
||||||
|
if ( (j=long_opt_strlen(opts+i)) > indent && j < 35 )
|
||||||
indent = j;
|
indent = j;
|
||||||
}
|
}
|
||||||
/* example: " -v, --verbose Viele Sachen ausgeben" */
|
|
||||||
|
/* Example: " -v, --verbose Viele Sachen ausgeben" */
|
||||||
indent += 10;
|
indent += 10;
|
||||||
if( *opts[0].description != '@' )
|
if ( *opts[0].description != '@' )
|
||||||
puts("Options:");
|
puts ("Options:");
|
||||||
for(i=0; opts[i].short_opt; i++ ) {
|
for (i=0; opts[i].short_opt; i++ )
|
||||||
|
{
|
||||||
s = _( opts[i].description );
|
s = _( opts[i].description );
|
||||||
if( s && *s== '@' && !s[1] ) /* hide this line */
|
if ( s && *s== '@' && !s[1] ) /* Hide this line. */
|
||||||
continue;
|
continue;
|
||||||
if( s && *s == '@' ) { /* unindented comment only line */
|
if ( s && *s == '@' ) /* Unindented comment only line. */
|
||||||
for(s++; *s; s++ ) {
|
{
|
||||||
if( *s == '\n' ) {
|
for (s++; *s; s++ )
|
||||||
|
{
|
||||||
|
if ( *s == '\n' )
|
||||||
|
{
|
||||||
if( s[1] )
|
if( s[1] )
|
||||||
putchar('\n');
|
putchar('\n');
|
||||||
}
|
}
|
||||||
@ -858,62 +920,75 @@ show_help( ARGPARSE_OPTS *opts, unsigned flags )
|
|||||||
}
|
}
|
||||||
|
|
||||||
j = 3;
|
j = 3;
|
||||||
if( opts[i].short_opt < 256 ) {
|
if ( opts[i].short_opt < 256 )
|
||||||
printf(" -%c", opts[i].short_opt );
|
{
|
||||||
if( !opts[i].long_opt ) {
|
printf (" -%c", opts[i].short_opt);
|
||||||
if(s && *s == '|' ) {
|
if ( !opts[i].long_opt )
|
||||||
putchar(' '); j++;
|
{
|
||||||
for(s++ ; *s && *s != '|'; s++, j++ )
|
if (s && *s == '|' )
|
||||||
putchar(*s);
|
{
|
||||||
if( *s )
|
putchar (' '); j++;
|
||||||
|
for (s++ ; *s && *s != '|'; s++, j++ )
|
||||||
|
putchar (*s);
|
||||||
|
if ( *s )
|
||||||
s++;
|
s++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fputs(" ", stdout);
|
fputs(" ", stdout);
|
||||||
if( opts[i].long_opt ) {
|
if ( opts[i].long_opt )
|
||||||
j += printf("%c --%s", opts[i].short_opt < 256?',':' ',
|
{
|
||||||
|
j += printf ("%c --%s", opts[i].short_opt < 256?',':' ',
|
||||||
opts[i].long_opt );
|
opts[i].long_opt );
|
||||||
if(s && *s == '|' ) {
|
if (s && *s == '|' )
|
||||||
if( *++s != '=' ) {
|
{
|
||||||
|
if ( *++s != '=' )
|
||||||
|
{
|
||||||
putchar(' ');
|
putchar(' ');
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
for( ; *s && *s != '|'; s++, j++ )
|
for ( ; *s && *s != '|'; s++, j++ )
|
||||||
putchar(*s);
|
putchar(*s);
|
||||||
if( *s )
|
if ( *s )
|
||||||
s++;
|
s++;
|
||||||
}
|
}
|
||||||
fputs(" ", stdout);
|
fputs (" ", stdout);
|
||||||
j += 3;
|
j += 3;
|
||||||
}
|
}
|
||||||
for(;j < indent; j++ )
|
for (;j < indent; j++ )
|
||||||
putchar(' ');
|
putchar(' ');
|
||||||
if( s ) {
|
if ( s )
|
||||||
if( *s && j > indent ) {
|
{
|
||||||
|
if ( *s && j > indent )
|
||||||
|
{
|
||||||
putchar('\n');
|
putchar('\n');
|
||||||
for(j=0;j < indent; j++ )
|
for (j=0;j < indent; j++ )
|
||||||
putchar(' ');
|
putchar (' ');
|
||||||
}
|
}
|
||||||
for(; *s; s++ ) {
|
for (; *s; s++ )
|
||||||
if( *s == '\n' ) {
|
{
|
||||||
if( s[1] ) {
|
if ( *s == '\n' )
|
||||||
putchar('\n');
|
{
|
||||||
for(j=0;j < indent; j++ )
|
if ( s[1] )
|
||||||
putchar(' ');
|
{
|
||||||
|
putchar ('\n');
|
||||||
|
for (j=0; j < indent; j++ )
|
||||||
|
putchar (' ');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
putchar(*s);
|
putchar (*s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
putchar('\n');
|
putchar ('\n');
|
||||||
}
|
}
|
||||||
if( flags & 32 )
|
if ( (flags & ARGPARSE_FLAG_ONEDASH) )
|
||||||
puts("\n(A single dash may be used instead of the double ones)");
|
puts ("\n(A single dash may be used instead of the double ones)");
|
||||||
}
|
}
|
||||||
if( (s=strusage(19)) ) { /* bug reports to ... */
|
if ( (s=strusage(19)) )
|
||||||
|
{
|
||||||
|
/* bug reports to ... */
|
||||||
char *s2;
|
char *s2;
|
||||||
|
|
||||||
putchar('\n');
|
putchar('\n');
|
||||||
@ -922,7 +997,11 @@ show_help( ARGPARSE_OPTS *opts, unsigned flags )
|
|||||||
{
|
{
|
||||||
if (s2-s)
|
if (s2-s)
|
||||||
fwrite (s, s2-s, 1, stdout);
|
fwrite (s, s2-s, 1, stdout);
|
||||||
|
#ifdef PACKAGE_BUGREPORT
|
||||||
fputs (PACKAGE_BUGREPORT, stdout);
|
fputs (PACKAGE_BUGREPORT, stdout);
|
||||||
|
#else
|
||||||
|
fputs ("bug@example.org", stdout);
|
||||||
|
#endif
|
||||||
s2 += 7;
|
s2 += 7;
|
||||||
if (*s2)
|
if (*s2)
|
||||||
fputs (s2, stdout);
|
fputs (s2, stdout);
|
||||||
@ -935,7 +1014,7 @@ show_help( ARGPARSE_OPTS *opts, unsigned flags )
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
show_version()
|
show_version ()
|
||||||
{
|
{
|
||||||
const char *s;
|
const char *s;
|
||||||
int i;
|
int i;
|
||||||
@ -965,7 +1044,7 @@ show_version()
|
|||||||
for (i=30; i < 40; i++ )
|
for (i=30; i < 40; i++ )
|
||||||
if ( (s=strusage (i)) )
|
if ( (s=strusage (i)) )
|
||||||
fputs (s, stdout);
|
fputs (s, stdout);
|
||||||
fflush(stdout);
|
fflush (stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1018,10 +1097,11 @@ strusage( int level )
|
|||||||
{
|
{
|
||||||
const char *p = strusage_handler? strusage_handler(level) : NULL;
|
const char *p = strusage_handler? strusage_handler(level) : NULL;
|
||||||
|
|
||||||
if( p )
|
if ( p )
|
||||||
return p;
|
return p;
|
||||||
|
|
||||||
switch( level ) {
|
switch ( level )
|
||||||
|
{
|
||||||
case 10: p = ("License GPLv3+: GNU GPL version 3 or later "
|
case 10: p = ("License GPLv3+: GNU GPL version 3 or later "
|
||||||
"<http://gnu.org/licenses/gpl.html>");
|
"<http://gnu.org/licenses/gpl.html>");
|
||||||
break;
|
break;
|
||||||
@ -1052,7 +1132,7 @@ strusage( int level )
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
set_strusage( const char *(*f)( int ) )
|
set_strusage ( const char *(*f)( int ) )
|
||||||
{
|
{
|
||||||
strusage_handler = f;
|
strusage_handler = f;
|
||||||
}
|
}
|
||||||
@ -1073,17 +1153,18 @@ int
|
|||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
ARGPARSE_OPTS opts[] = {
|
ARGPARSE_OPTS opts[] = {
|
||||||
{ 'v', "verbose", 0 , "Laut sein"},
|
ARGPARSE_x('v', "verbose", NONE, 0, "Laut sein"),
|
||||||
{ 'e', "echo" , 0 , ("Zeile ausgeben, damit wir sehen, was wir ein"
|
ARGPARSE_s_n('e', "echo" , ("Zeile ausgeben, damit wir sehen, "
|
||||||
" gegeben haben")},
|
"was wir ein gegeben haben")),
|
||||||
{ 'd', "debug", 0 , "Debug\nfalls mal etwas\nschief geht"},
|
ARGPARSE_s_n('d', "debug", "Debug\nfalls mal etwas\nschief geht"),
|
||||||
{ 'o', "output", 2 },
|
ARGPARSE_s_s('o', "output", 0 ),
|
||||||
{ 'c', "cross-ref", 2|8, "cross-reference erzeugen\n" },
|
ARGPARSE_o_s('c', "cross-ref", "cross-reference erzeugen\n" ),
|
||||||
/* Note that on a non-utf8 terminal the ß might garble the output. */
|
/* Note that on a non-utf8 terminal the ß might garble the output. */
|
||||||
{ 's', "street", 0, "|Straße|set the name of the street to Straße" },
|
ARGPARSE_s_n('s', "street","|Straße|set the name of the street to Straße"),
|
||||||
{ 'm', "my-option", 1|8 },
|
ARGPARSE_o_i('m', "my-option", 0),
|
||||||
{ 500, "a-long-option", 0 },
|
ARGPARSE_s_n(500, "a-long-option", 0 ),
|
||||||
{0} };
|
ARGPARSE_end
|
||||||
|
};
|
||||||
ARGPARSE_ARGS pargs = { &argc, &argv, 2|4|32 };
|
ARGPARSE_ARGS pargs = { &argc, &argv, 2|4|32 };
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -1097,7 +1178,7 @@ main(int argc, char **argv)
|
|||||||
case 'c': opt.crf = pargs.r_type? pargs.r.ret_str:"a.crf"; break;
|
case 'c': opt.crf = pargs.r_type? pargs.r.ret_str:"a.crf"; break;
|
||||||
case 'm': opt.myopt = pargs.r_type? pargs.r.ret_int : 1; break;
|
case 'm': opt.myopt = pargs.r_type? pargs.r.ret_int : 1; break;
|
||||||
case 500: opt.a_long_one++; break;
|
case 500: opt.a_long_one++; break;
|
||||||
default : pargs.err = 1; break; /* force warning output */
|
default : pargs.err = ARGPARSE_PRINT_WARNING; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(i=0; i < argc; i++ )
|
for(i=0; i < argc; i++ )
|
||||||
|
132
jnlib/argparse.h
132
jnlib/argparse.h
@ -1,11 +1,11 @@
|
|||||||
/* argparse.h
|
/* argparse.h - Argument parser for option handling.
|
||||||
* Copyright (C) 1998,1999,2000,2001,2006 Free Software Foundation, Inc.
|
* Copyright (C) 1998,1999,2000,2001,2006 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* This file is part of JNLIB.
|
* This file is part of JNLIB.
|
||||||
*
|
*
|
||||||
* JNLIB is free software; you can redistribute it and/or modify it
|
* JNLIB is free software; you can redistribute it and/or modify it
|
||||||
* under the terms of the GNU Lesser General Public License as
|
* under the terms of the GNU Lesser General Public License as
|
||||||
* published by the Free Software Foundation; either version 3 of
|
* published by the Free Software Foundation; either version 2.1 of
|
||||||
* the License, or (at your option) any later version.
|
* the License, or (at your option) any later version.
|
||||||
*
|
*
|
||||||
* JNLIB is distributed in the hope that it will be useful, but
|
* JNLIB is distributed in the hope that it will be useful, but
|
||||||
@ -23,20 +23,25 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct
|
||||||
int *argc; /* pointer to argc (value subject to change) */
|
{
|
||||||
char ***argv; /* pointer to argv (value subject to change) */
|
int *argc; /* Pointer to ARGC (value subject to change). */
|
||||||
unsigned flags; /* Global flags (DO NOT CHANGE) */
|
char ***argv; /* Pointer to ARGV (value subject to change). */
|
||||||
int err; /* print error about last option */
|
unsigned int flags; /* Global flags. May be set prior to calling the
|
||||||
/* 1 = warning, 2 = abort */
|
parser. The parser may change the value. */
|
||||||
int r_opt; /* return option */
|
int err; /* Print error description for last option.
|
||||||
int r_type; /* type of return value (0 = no argument found)*/
|
Either 0, ARGPARSE_PRINT_WARNING or
|
||||||
|
ARGPARSE_PRINT_ERROR. */
|
||||||
|
|
||||||
|
int r_opt; /* Returns option code. */
|
||||||
|
int r_type; /* Returns type of option value. */
|
||||||
union {
|
union {
|
||||||
int ret_int;
|
int ret_int;
|
||||||
long ret_long;
|
long ret_long;
|
||||||
unsigned long ret_ulong;
|
unsigned long ret_ulong;
|
||||||
char *ret_str;
|
char *ret_str;
|
||||||
} r; /* Return values */
|
} r; /* Return values */
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
int idx;
|
int idx;
|
||||||
int inarg;
|
int inarg;
|
||||||
@ -44,17 +49,116 @@ typedef struct {
|
|||||||
const char *last;
|
const char *last;
|
||||||
void *aliases;
|
void *aliases;
|
||||||
const void *cur_alias;
|
const void *cur_alias;
|
||||||
} internal; /* DO NOT CHANGE */
|
} internal; /* Private - do not change. */
|
||||||
} ARGPARSE_ARGS;
|
} ARGPARSE_ARGS;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct
|
||||||
|
{
|
||||||
int short_opt;
|
int short_opt;
|
||||||
const char *long_opt;
|
const char *long_opt;
|
||||||
unsigned flags;
|
unsigned int flags;
|
||||||
const char *description; /* optional option description */
|
const char *description; /* Optional option description. */
|
||||||
} ARGPARSE_OPTS;
|
} ARGPARSE_OPTS;
|
||||||
|
|
||||||
|
|
||||||
|
/* Global flags (ARGPARSE_ARGS). */
|
||||||
|
#define ARGPARSE_FLAG_KEEP 1 /* Do not remove options form argv. */
|
||||||
|
#define ARGPARSE_FLAG_ALL 2 /* Do not stop at last option but return
|
||||||
|
remaining args with R_OPT set to -1. */
|
||||||
|
#define ARGPARSE_FLAG_MIXED 4 /* Assume options and args are mixed. */
|
||||||
|
#define ARGPARSE_FLAG_NOSTOP 8 /* Do not stop processing at "--". */
|
||||||
|
#define ARGPARSE_FLAG_ARG0 16 /* Do not skip the first arg. */
|
||||||
|
#define ARGPARSE_FLAG_ONEDASH 32 /* Allow long options with one dash. */
|
||||||
|
#define ARGPARSE_FLAG_NOVERSION 64 /* No output for "--version". */
|
||||||
|
|
||||||
|
/* Flags for each option (ARGPARSE_OPTS). The type code may be
|
||||||
|
ORed with the OPT flags. */
|
||||||
|
#define ARGPARSE_TYPE_NONE 0 /* Does not take an argument. */
|
||||||
|
#define ARGPARSE_TYPE_INT 1 /* Takes an int argument. */
|
||||||
|
#define ARGPARSE_TYPE_STRING 2 /* Takes a string argument. */
|
||||||
|
#define ARGPARSE_TYPE_LONG 3 /* Takes a long argument. */
|
||||||
|
#define ARGPARSE_TYPE_ULONG 4 /* Takes an unsigned long argument. */
|
||||||
|
#define ARGPARSE_OPT_OPTIONAL (1<<3) /* Argument is optional. */
|
||||||
|
#define ARGPARSE_OPT_PREFIX (1<<4) /* Allow 0x etc. prefixed values. */
|
||||||
|
#define ARGPARSE_OPT_COMMAND (1<<8) /* The argument is a command. */
|
||||||
|
|
||||||
|
/* A set of macros to make option definitions easier to read. */
|
||||||
|
#define ARGPARSE_x(s,l,t,f,d) \
|
||||||
|
{ (s), (l), ARGPARSE_TYPE_ ## t | (f), (d) }
|
||||||
|
|
||||||
|
#define ARGPARSE_s(s,l,t,d) \
|
||||||
|
{ (s), (l), ARGPARSE_TYPE_ ## t, (d) }
|
||||||
|
#define ARGPARSE_s_n(s,l,d) \
|
||||||
|
{ (s), (l), ARGPARSE_TYPE_NONE, (d) }
|
||||||
|
#define ARGPARSE_s_i(s,l,d) \
|
||||||
|
{ (s), (l), ARGPARSE_TYPE_INT, (d) }
|
||||||
|
#define ARGPARSE_s_s(s,l,d) \
|
||||||
|
{ (s), (l), ARGPARSE_TYPE_STRING, (d) }
|
||||||
|
#define ARGPARSE_s_l(s,l,d) \
|
||||||
|
{ (s), (l), ARGPARSE_TYPE_LONG, (d) }
|
||||||
|
#define ARGPARSE_s_u(s,l,d) \
|
||||||
|
{ (s), (l), ARGPARSE_TYPE_ULONG, (d) }
|
||||||
|
|
||||||
|
#define ARGPARSE_o(s,l,t,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_ ## t | ARGPARSE_OPT_OPTIONAL), (d) }
|
||||||
|
#define ARGPARSE_o_n(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_NONE | ARGPARSE_OPT_OPTIONAL), (d) }
|
||||||
|
#define ARGPARSE_o_i(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_INT | ARGPARSE_OPT_OPTIONAL), (d) }
|
||||||
|
#define ARGPARSE_o_s(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_STRING | ARGPARSE_OPT_OPTIONAL), (d) }
|
||||||
|
#define ARGPARSE_o_l(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_LONG | ARGPARSE_OPT_OPTIONAL), (d) }
|
||||||
|
#define ARGPARSE_o_u(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_ULONG | ARGPARSE_OPT_OPTIONAL), (d) }
|
||||||
|
|
||||||
|
#define ARGPARSE_p(s,l,t,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_ ## t | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
#define ARGPARSE_p_n(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_NONE | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
#define ARGPARSE_p_i(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_INT | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
#define ARGPARSE_p_s(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_STRING | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
#define ARGPARSE_p_l(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_LONG | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
#define ARGPARSE_p_u(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_ULONG | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
|
||||||
|
#define ARGPARSE_op(s,l,t,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_ ## t \
|
||||||
|
| ARGPARSE_OPT_OPTIONAL | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
#define ARGPARSE_op_n(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_NONE \
|
||||||
|
| ARGPARSE_OPT_OPTIONAL | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
#define ARGPARSE_op_i(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_INT \
|
||||||
|
| ARGPARSE_OPT_OPTIONAL | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
#define ARGPARSE_op_s(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_STRING \
|
||||||
|
| ARGPARSE_OPT_OPTIONAL | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
#define ARGPARSE_op_l(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_LONG \
|
||||||
|
| ARGPARSE_OPT_OPTIONAL | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
#define ARGPARSE_op_u(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_ULONG \
|
||||||
|
| ARGPARSE_OPT_OPTIONAL | ARGPARSE_OPT_PREFIX), (d) }
|
||||||
|
|
||||||
|
#define ARGPARSE_c(s,l,d) \
|
||||||
|
{ (s), (l), (ARGPARSE_TYPE_NONE | ARGPARSE_OPT_COMMAND), (d) }
|
||||||
|
|
||||||
|
|
||||||
|
#define ARGPARSE_group(s,d) \
|
||||||
|
{ (s), NULL, 0, (d) }
|
||||||
|
|
||||||
|
#define ARGPARSE_end() { 0, NULL, 0, NULL }
|
||||||
|
|
||||||
|
|
||||||
|
/* Other constants. */
|
||||||
|
#define ARGPARSE_PRINT_WARNING 1
|
||||||
|
#define ARGPARSE_PRINT_ERROR 2
|
||||||
|
|
||||||
|
|
||||||
/* Error values. */
|
/* Error values. */
|
||||||
#define ARGPARSE_IS_ARG (-1)
|
#define ARGPARSE_IS_ARG (-1)
|
||||||
#define ARGPARSE_INVALID_OPTION (-2)
|
#define ARGPARSE_INVALID_OPTION (-2)
|
||||||
|
2
po/be.po
2
po/be.po
@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.2.2\n"
|
"Project-Id-Version: gnupg 1.2.2\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2003-10-30 16:35+0200\n"
|
"PO-Revision-Date: 2003-10-30 16:35+0200\n"
|
||||||
"Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
|
"Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
|
||||||
"Language-Team: Belarusian <i18n@mova.org>\n"
|
"Language-Team: Belarusian <i18n@mova.org>\n"
|
||||||
|
2
po/ca.po
2
po/ca.po
@ -27,7 +27,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.4.0\n"
|
"Project-Id-Version: gnupg 1.4.0\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2005-02-04 02:04+0100\n"
|
"PO-Revision-Date: 2005-02-04 02:04+0100\n"
|
||||||
"Last-Translator: Jordi Mallach <jordi@gnu.org>\n"
|
"Last-Translator: Jordi Mallach <jordi@gnu.org>\n"
|
||||||
"Language-Team: Catalan <ca@dodds.net>\n"
|
"Language-Team: Catalan <ca@dodds.net>\n"
|
||||||
|
2
po/cs.po
2
po/cs.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg-1.3.92\n"
|
"Project-Id-Version: gnupg-1.3.92\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2004-11-26 09:12+0200\n"
|
"PO-Revision-Date: 2004-11-26 09:12+0200\n"
|
||||||
"Last-Translator: Roman Pavlik <rp@tns.cz>\n"
|
"Last-Translator: Roman Pavlik <rp@tns.cz>\n"
|
||||||
"Language-Team: Czech <translations.cs@gnupg.cz>\n"
|
"Language-Team: Czech <translations.cs@gnupg.cz>\n"
|
||||||
|
2
po/da.po
2
po/da.po
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.0.0h\n"
|
"Project-Id-Version: gnupg 1.0.0h\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2003-12-03 16:11+0100\n"
|
"PO-Revision-Date: 2003-12-03 16:11+0100\n"
|
||||||
"Last-Translator: Birger Langkjer <birger.langkjer@image.dk>\n"
|
"Last-Translator: Birger Langkjer <birger.langkjer@image.dk>\n"
|
||||||
"Language-Team: Danish <dansk@klid.dk>\n"
|
"Language-Team: Danish <dansk@klid.dk>\n"
|
||||||
|
12
po/de.po
12
po/de.po
@ -9,7 +9,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg-2.0.6\n"
|
"Project-Id-Version: gnupg-2.0.6\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2008-11-04 18:44+0100\n"
|
"PO-Revision-Date: 2008-11-04 18:44+0100\n"
|
||||||
"Last-Translator: Walter Koch <koch@u32.de>\n"
|
"Last-Translator: Walter Koch <koch@u32.de>\n"
|
||||||
"Language-Team: German <de@li.org>\n"
|
"Language-Team: German <de@li.org>\n"
|
||||||
@ -233,12 +233,8 @@ msgid ""
|
|||||||
msgid_plural ""
|
msgid_plural ""
|
||||||
"Warning: You have entered an insecure passphrase.%%0AA passphrase should be "
|
"Warning: You have entered an insecure passphrase.%%0AA passphrase should be "
|
||||||
"at least %u characters long."
|
"at least %u characters long."
|
||||||
msgstr[0] ""
|
msgstr[0] "WARNUNG: Sie haben eine offensichtlich unsichere%%0APassphrase eingegeben. Eine Passphrase sollte%%0Amindestens %u Zeichen lang sein."
|
||||||
"WARNUNG: Sie haben eine offensichtlich unsichere%%0APassphrase eingegeben. "
|
msgstr[1] "WARNUNG: Sie haben eine offensichtlich unsichere%%0APassphrase eingegeben. Eine Passphrase sollte%%0Amindestens %u Zeichen lang sein."
|
||||||
"Eine Passphrase sollte%%0A mindestens %u Zeichen lang sein."
|
|
||||||
msgstr[1] ""
|
|
||||||
"WARNUNG: Sie haben eine offensichtlich unsichere%%0APassphrase eingegeben. "
|
|
||||||
"Eine Passphrase sollte%%0A mindestens %u Zeichen lang sein."
|
|
||||||
|
|
||||||
#: agent/genkey.c:214
|
#: agent/genkey.c:214
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -254,7 +250,7 @@ msgstr[0] ""
|
|||||||
"enthalten."
|
"enthalten."
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
"WARNUNG: Sie haben eine offensichtlich unsichere%%0APassphrase eingegeben. "
|
"WARNUNG: Sie haben eine offensichtlich unsichere%%0APassphrase eingegeben. "
|
||||||
"Eine Passphrase sollte%%0A mindestens %u Sonderzeichen oder Ziffern "
|
"Eine Passphrase sollte%%0Amindestens %u Sonderzeichen oder Ziffern "
|
||||||
"enthalten."
|
"enthalten."
|
||||||
|
|
||||||
#: agent/genkey.c:237
|
#: agent/genkey.c:237
|
||||||
|
2
po/el.po
2
po/el.po
@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg-1.1.92\n"
|
"Project-Id-Version: gnupg-1.1.92\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2003-06-27 12:00+0200\n"
|
"PO-Revision-Date: 2003-06-27 12:00+0200\n"
|
||||||
"Last-Translator: Dokianakis Theofanis <madf@hellug.gr>\n"
|
"Last-Translator: Dokianakis Theofanis <madf@hellug.gr>\n"
|
||||||
"Language-Team: Greek <nls@tux.hellug.gr>\n"
|
"Language-Team: Greek <nls@tux.hellug.gr>\n"
|
||||||
|
2
po/eo.po
2
po/eo.po
@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.0.6d\n"
|
"Project-Id-Version: gnupg 1.0.6d\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2002-04-14 14:33+0100\n"
|
"PO-Revision-Date: 2002-04-14 14:33+0100\n"
|
||||||
"Last-Translator: Edmund GRIMLEY EVANS <edmundo@rano.org>\n"
|
"Last-Translator: Edmund GRIMLEY EVANS <edmundo@rano.org>\n"
|
||||||
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
|
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
|
||||||
|
2
po/es.po
2
po/es.po
@ -10,7 +10,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 2.0.9\n"
|
"Project-Id-Version: gnupg 2.0.9\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2008-05-27 22:38+0100\n"
|
"PO-Revision-Date: 2008-05-27 22:38+0100\n"
|
||||||
"Last-Translator: Jaime Suárez <jaime@mundocripto.com>\n"
|
"Last-Translator: Jaime Suárez <jaime@mundocripto.com>\n"
|
||||||
"Language-Team: Spanish <es@li.org>\n"
|
"Language-Team: Spanish <es@li.org>\n"
|
||||||
|
2
po/et.po
2
po/et.po
@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.2.2\n"
|
"Project-Id-Version: gnupg 1.2.2\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2004-06-17 11:04+0300\n"
|
"PO-Revision-Date: 2004-06-17 11:04+0300\n"
|
||||||
"Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
|
"Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
|
||||||
"Language-Team: Estonian <et@li.org>\n"
|
"Language-Team: Estonian <et@li.org>\n"
|
||||||
|
2
po/fi.po
2
po/fi.po
@ -22,7 +22,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.2.2\n"
|
"Project-Id-Version: gnupg 1.2.2\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2004-06-16 22:40+0300\n"
|
"PO-Revision-Date: 2004-06-16 22:40+0300\n"
|
||||||
"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
|
"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
|
||||||
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
|
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
|
||||||
|
2
po/fr.po
2
po/fr.po
@ -11,7 +11,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.4.2rc2\n"
|
"Project-Id-Version: gnupg 1.4.2rc2\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2008-09-30 19:38+0200\n"
|
"PO-Revision-Date: 2008-09-30 19:38+0200\n"
|
||||||
"Last-Translator: Gaël Quéri <gael@lautre.net>\n"
|
"Last-Translator: Gaël Quéri <gael@lautre.net>\n"
|
||||||
"Language-Team: French <traduc@traduc.org>\n"
|
"Language-Team: French <traduc@traduc.org>\n"
|
||||||
|
2
po/gl.po
2
po/gl.po
@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.2.4\n"
|
"Project-Id-Version: gnupg 1.2.4\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2003-12-04 11:39+0100\n"
|
"PO-Revision-Date: 2003-12-04 11:39+0100\n"
|
||||||
"Last-Translator: Jacobo Tarrio <jtarrio@trasno.net>\n"
|
"Last-Translator: Jacobo Tarrio <jtarrio@trasno.net>\n"
|
||||||
"Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
|
"Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
|
||||||
|
2
po/hu.po
2
po/hu.po
@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.2.5\n"
|
"Project-Id-Version: gnupg 1.2.5\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2004-06-19 21:53+0200\n"
|
"PO-Revision-Date: 2004-06-19 21:53+0200\n"
|
||||||
"Last-Translator: Nagy Ferenc László <nfl@nfllab.com>\n"
|
"Last-Translator: Nagy Ferenc László <nfl@nfllab.com>\n"
|
||||||
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
|
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
|
||||||
|
2
po/id.po
2
po/id.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg-id\n"
|
"Project-Id-Version: gnupg-id\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2004-06-17 16:32+0700\n"
|
"PO-Revision-Date: 2004-06-17 16:32+0700\n"
|
||||||
"Last-Translator: Tedi Heriyanto <tedi_h@gmx.net>\n"
|
"Last-Translator: Tedi Heriyanto <tedi_h@gmx.net>\n"
|
||||||
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
|
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
|
||||||
|
2
po/it.po
2
po/it.po
@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.1.92\n"
|
"Project-Id-Version: gnupg 1.1.92\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2008-05-26 12:02+0200\n"
|
"PO-Revision-Date: 2008-05-26 12:02+0200\n"
|
||||||
"Last-Translator: Marco d'Itri <md@linux.it>\n"
|
"Last-Translator: Marco d'Itri <md@linux.it>\n"
|
||||||
"Language-Team: Italian <tp@lists.linux.it>\n"
|
"Language-Team: Italian <tp@lists.linux.it>\n"
|
||||||
|
2
po/ja.po
2
po/ja.po
@ -9,7 +9,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.3.92\n"
|
"Project-Id-Version: gnupg 1.3.92\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2004-11-23 11:14+0900\n"
|
"PO-Revision-Date: 2004-11-23 11:14+0900\n"
|
||||||
"Last-Translator: IIDA Yosiaki <iida@gnu.org>\n"
|
"Last-Translator: IIDA Yosiaki <iida@gnu.org>\n"
|
||||||
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
|
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
|
||||||
|
2
po/nb.po
2
po/nb.po
@ -10,7 +10,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.4.3\n"
|
"Project-Id-Version: gnupg 1.4.3\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2006-06-13 20:31+0200\n"
|
"PO-Revision-Date: 2006-06-13 20:31+0200\n"
|
||||||
"Last-Translator: Trond Endrestøl <Trond.Endrestol@fagskolen.gjovik.no>\n"
|
"Last-Translator: Trond Endrestøl <Trond.Endrestol@fagskolen.gjovik.no>\n"
|
||||||
"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
|
"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
|
||||||
|
2
po/pl.po
2
po/pl.po
@ -9,7 +9,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg-2.0.7\n"
|
"Project-Id-Version: gnupg-2.0.7\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2007-11-26 19:01+0100\n"
|
"PO-Revision-Date: 2007-11-26 19:01+0100\n"
|
||||||
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
|
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
|
||||||
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
|
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
|
||||||
|
2
po/pt.po
2
po/pt.po
@ -9,7 +9,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg\n"
|
"Project-Id-Version: gnupg\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2002-09-13 18:26+0100\n"
|
"PO-Revision-Date: 2002-09-13 18:26+0100\n"
|
||||||
"Last-Translator: Pedro Morais <morais@kde.org>\n"
|
"Last-Translator: Pedro Morais <morais@kde.org>\n"
|
||||||
"Language-Team: pt <morais@kde.org>\n"
|
"Language-Team: pt <morais@kde.org>\n"
|
||||||
|
@ -13,7 +13,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.0\n"
|
"Project-Id-Version: gnupg 1.0\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2007-08-16 11:35+0200\n"
|
"PO-Revision-Date: 2007-08-16 11:35+0200\n"
|
||||||
"Last-Translator:\n"
|
"Last-Translator:\n"
|
||||||
"Language-Team: ?\n"
|
"Language-Team: ?\n"
|
||||||
|
2
po/ro.po
2
po/ro.po
@ -9,7 +9,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.4.2rc1\n"
|
"Project-Id-Version: gnupg 1.4.2rc1\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2005-05-31 22:00-0500\n"
|
"PO-Revision-Date: 2005-05-31 22:00-0500\n"
|
||||||
"Last-Translator: Laurentiu Buzdugan <lbuz@rolix.org>\n"
|
"Last-Translator: Laurentiu Buzdugan <lbuz@rolix.org>\n"
|
||||||
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
|
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
|
||||||
|
2
po/ru.po
2
po/ru.po
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GnuPG 2.0.0\n"
|
"Project-Id-Version: GnuPG 2.0.0\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2006-11-07 19:31+0300\n"
|
"PO-Revision-Date: 2006-11-07 19:31+0300\n"
|
||||||
"Last-Translator: Maxim Britov <maxim.britov@gmail.com>\n"
|
"Last-Translator: Maxim Britov <maxim.britov@gmail.com>\n"
|
||||||
"Language-Team: Russian <gnupg-ru@gnupg.org>\n"
|
"Language-Team: Russian <gnupg-ru@gnupg.org>\n"
|
||||||
|
2
po/sk.po
2
po/sk.po
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.2.5\n"
|
"Project-Id-Version: gnupg 1.2.5\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2004-07-20 15:52+0200\n"
|
"PO-Revision-Date: 2004-07-20 15:52+0200\n"
|
||||||
"Last-Translator: Michal Majer <mmajer@econ.umb.sk>\n"
|
"Last-Translator: Michal Majer <mmajer@econ.umb.sk>\n"
|
||||||
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
|
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
|
||||||
|
2
po/sv.po
2
po/sv.po
@ -24,7 +24,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg trunk\n"
|
"Project-Id-Version: gnupg trunk\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2008-07-21 09:04+0200\n"
|
"PO-Revision-Date: 2008-07-21 09:04+0200\n"
|
||||||
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
|
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
|
||||||
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
||||||
|
2
po/tr.po
2
po/tr.po
@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.9.94\n"
|
"Project-Id-Version: gnupg 1.9.94\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2006-11-04 03:45+0200\n"
|
"PO-Revision-Date: 2006-11-04 03:45+0200\n"
|
||||||
"Last-Translator: Nilgün Belma Bugüner <nilgun@belgeler.gen.tr>\n"
|
"Last-Translator: Nilgün Belma Bugüner <nilgun@belgeler.gen.tr>\n"
|
||||||
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
|
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 1.4.4\n"
|
"Project-Id-Version: gnupg 1.4.4\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2006-07-02 10:58+0800\n"
|
"PO-Revision-Date: 2006-07-02 10:58+0800\n"
|
||||||
"Last-Translator: Meng Jie <zuxyhere@eastday.com>\n"
|
"Last-Translator: Meng Jie <zuxyhere@eastday.com>\n"
|
||||||
"Language-Team: Chinese (simplified) <i18n-translation@lists.linux.net.cn>\n"
|
"Language-Team: Chinese (simplified) <i18n-translation@lists.linux.net.cn>\n"
|
||||||
|
@ -9,7 +9,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 2.0.9\n"
|
"Project-Id-Version: gnupg 2.0.9\n"
|
||||||
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
"Report-Msgid-Bugs-To: translations@gnupg.org\n"
|
||||||
"POT-Creation-Date: 2008-11-11 08:40+0100\n"
|
"POT-Creation-Date: 2008-11-11 12:05+0100\n"
|
||||||
"PO-Revision-Date: 2008-03-26 22:35+0800\n"
|
"PO-Revision-Date: 2008-03-26 22:35+0800\n"
|
||||||
"Last-Translator: Jedi Lin <Jedi@Jedi.org>\n"
|
"Last-Translator: Jedi Lin <Jedi@Jedi.org>\n"
|
||||||
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
|
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user