2007-11-08 Marcus Brinkmann <marcus@g10code.de>
authorMarcus Brinkmann <mb@g10code.com>
Thu, 8 Nov 2007 18:18:43 +0000 (18:18 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Thu, 8 Nov 2007 18:18:43 +0000 (18:18 +0000)
* po/de.po: Update.

* doc/gpgex-de.html, doc/gpgex-en.html: New files.
* doc/Makefile.am (dist_doc_DATA): New variable.

* doc/gpgex.texi: Complete protocol change from INPUT FILE to
FILE.  Also from IMPORT to IMPORT_FILES.

src/
2007-11-08  Marcus Brinkmann  <marcus@g10code.de>

* gpgex.cc: Include registry.h.
(start_help): Launch gpgex help from install directory.
* client.cc (client_t::call_assuan): Fix bug in last change.

ChangeLog
doc/Makefile.am
doc/gpgex-de.html [new file with mode: 0644]
doc/gpgex-en.html [new file with mode: 0644]
doc/gpgex.texi
po/de.po
src/ChangeLog
src/client.cc
src/gpgex.cc

index f3606fd..09d5055 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2007-11-08  Marcus Brinkmann  <marcus@g10code.de>
+
+       * po/de.po: Update.
+
+       * doc/gpgex-de.html, doc/gpgex-en.html: New files.
+       * doc/Makefile.am (dist_doc_DATA): New variable.
+
+       * doc/gpgex.texi: Complete protocol change from INPUT FILE to
+       FILE.  Also from IMPORT to IMPORT_FILES.
+
 2007-11-02  Werner Koch  <wk@g10code.com>
 
        * autogen.sh: Add --force option.
index b291c8f..020a342 100644 (file)
@@ -16,4 +16,4 @@ DISTCLEANFILES = gpgex.cps
 info_TEXINFOS = gpgex.texi
 gpgex_TEXINFOS = gpl.texi 
 
-
+dist_doc_DATA = gpgex-en.html gpgex-de.html
diff --git a/doc/gpgex-de.html b/doc/gpgex-de.html
new file mode 100644 (file)
index 0000000..ab6d7c4
--- /dev/null
@@ -0,0 +1,60 @@
+<!doctype html public "-//WC3//DTD HTML 4.0 Transitional//EN">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>Hilfe für die GnuPG Shell Extension (GpgEX)</title>
+  </head>
+  <body>
+    <h1>GnuPG Shell Extension</h1>
+    <p>
+      (Verfügbare Sprachen: <a href="gpgex-en.html">English</a>, Deutsch)
+    </p>
+    <p>
+      Die GNU Privacy Guard Erweiterungen für die Windows Explorer
+      Umgebung erlaubt es ihnen, kryptographische Funktionen in
+      Kleopatra über die Kontext-Menüs von Dateien aufzurufen.
+    </p>
+    <h2>Befehle</h2>
+    <h3>Entschlüsseln und verifizieren, Entschlüsseln, Verifizieren</h3>
+    <p>
+      Entschlüsselt und/oder verifiziert die ausgewählten Dateien.
+    </p>
+    <h3>Verschlüsseln und signieren, Verschlüsseln, Signieren</h3>
+    <p>
+      Verschlüsselt und/oder signiert die ausgewählten Dateien.
+    </p>
+    <h3>Zertifikate importieren</h3>
+    <p>
+      Import die Zertifikate in den ausgewählten Dateien.
+    <p>
+    <h3>Prüfsummen erstellen</h3>
+    <p>
+      Erstellt Prüfsummen für die ausgewählten Dateien.
+    </p>
+    <h3>Prüfsummen verifizieren</h3>
+    <p>
+      Verifiziert die Prüfsummen für die ausgewählten Dateien.
+    </p>
+    <h3>Hilfe zu GpgEX</h3>
+    <p>
+      Stellt diese Hilfe dar.
+    </p>
+    <h2>Debugging</h2>
+    <p>
+      Falls nicht auf Kleopatra zugegriffen werden kann, wird ein
+      Nachrichtenfenster mit einer Fehlermeldung angezeigt.  Um mehr
+      Informationen zu erhalten, kann der Fehlerbericht von Kleopatra
+      eingesehen werden, oder es kann eine Debug Datei im Registry Eintrag
+      <code>GpgEX Debug File</code> zum Schlüssel
+      <code>HKLM\Software\GNU\GnuPG</code> angegeben werden.
+      Informationen zum Protokoll werden dann ggf. nach einem Neustart
+      an diese Datei angehangen.
+    </p>
+    <h2>Verweise</h2>
+    <p>
+      Mehr Informationen und aktuelle Versionen sind auf der 
+      <a href="http://www.gpg4win.org/">Gpg4win Webpräsenz</a>
+      verfügbar.
+    </p>
+  </body>
+</html>
diff --git a/doc/gpgex-en.html b/doc/gpgex-en.html
new file mode 100644 (file)
index 0000000..a98febd
--- /dev/null
@@ -0,0 +1,57 @@
+<!doctype html public "-//WC3//DTD HTML 4.0 Transitional//EN">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>Help for GnuPG Shell Extension (GpgEX)</title>
+  </head>
+  <body>
+    <h1>GnuPG Shell Extension</h1>
+    <p>
+      (Available languages: English, <a href="gpgex-de.html">Deutsch</a>)
+    </p>
+    <p>
+      The GNU Privacy Guard extensions for the Windows Explorer shell
+      allow you to access cryptographic functions in Kleopatra using
+      the context menu to files.
+    </p>
+    <h2>Commands</h2>
+    <h3>Decrypt and verify, Decrypt, Verify</h3>
+    <p>
+      Decrypt and/or verify the selected files.
+    </p>
+    <h3>Encrypt and sign, Encrypt, Sign</h3>
+    <p>
+      Encrypt and/or sign the selected files.
+    </p>
+    <h3>Import keys</h3>
+    <p>
+      Import certificates in the selected files.
+    <p>
+    <h3>Create checksums</h3>
+    <p>
+      Create checksums for the selected files.
+    </p>
+    <h3>Verify checksums</h3>
+    <p>
+      Verify the checksums for the selected files.
+    </p>
+    <h3>Help on GpgEX</h3>
+    <p>
+      Display this help.
+    </p>
+    <h2>Debugging</h2>
+    <p>
+      If Kleopatra can not be accessed, a message box with an error
+      message will be displayed.  To get more information, you can
+      either check the error log of Kleopatra, or specify a debug file
+      with the registry value <code>GpgEX Debug File</code> in the key
+      <code>HKLM\Software\GNU\GnuPG</code>.  To this file logging
+      information is appended, after a restart if necessary.
+    </p>
+    <h2>References</h2>
+    <p>
+      Please find more information and new versions at
+      the <a href="http://www.gpg4win.org/">Gpg4win web-site</a>.
+    </p>
+  </body>
+</html>
index d7c1d11..a4352a4 100644 (file)
@@ -133,9 +133,9 @@ Assuan manual for details.
 @section Specifying the input files to operate on.
 
 All commands operate on a number of input files or directories,
-specified by one or more @code{INPUT} commands:
+specified by one or more @code{FILE} commands:
 
-@deffn Command FILE=@var{name} [--continued]
+@deffn Command FILE @var{name} [--continued]
 Add the file or directory @var{name} to the list of pathnames to be
 processed by the server.  The parameter @var{name} must be an absolute
 path name (including the drive letter) and is percent espaced (in
@@ -154,7 +154,7 @@ First, the input files need to be specified by one or more
 @deffn Command ENCRYPT_FILES --nohup
 @deffnx Command SIGN_FILES --nohup
 @deffnx Command ENCRYPT_SIGN_FILES --nohup
-Request that the files specified by @code{INPUT} are encrypted and/or
+Request that the files specified by @code{FILE} are encrypted and/or
 signed.  The command selects the default action.  The UI server may
 allow the user to change this default afterwards interactively, and
 even abort the operation or complete it only on some of the selected
@@ -184,12 +184,12 @@ promptly, and completes the operation asynchronously.
 @section Decrypting and verifying files.
 
 First, the input files need to be specified by one or more
-@code{INPUT} commands.  Afterwards, the actual operation is requested:
+@code{FILE} commands.  Afterwards, the actual operation is requested:
 
 @deffn Command DECRYPT_FILES --nohup
 @deffnx Command VERIFY_FILES --nohup
 @deffnx Command DECRYPT_VERIFY_FILES --nohup
-Request that the files specified by @code{INPUT} are decrypted and/or
+Request that the files specified by @code{FILE} are decrypted and/or
 verified.  The command selects the default action.  The UI server may
 allow the user to change this default afterwards interactively, and
 even abort the operation or complete it only on some of the selected
@@ -220,7 +220,7 @@ promptly, and completes the operation asynchronously.
 First, the input files need to be specified by one or more
 @code{FILE} commands.  Afterwards, the actual operation is requested:
 
-@deffn Command IMPORT --nohup
+@deffn Command IMPORT_FILES --nohup
 Request that the certificates contained in the files specified by
 @code{FILE} are imported into the local certificate databases.
 
@@ -260,7 +260,7 @@ promptly, and completes the operation asynchronously.
 
 @deffn Command CHECKSUM_VERIFY_FILES --nohup
 Request that checksums are created for the files specifed by
-@code{INPUT} and verified against previously created and stored
+@code{FILE} and verified against previously created and stored
 checksums.  The choice of checksum algorithm and the source storage
 and format for previously created checksums depend on the preferences
 of the user and the functionality provided by the UI server.  For
@@ -269,9 +269,9 @@ example ignore or process recursively).
 
 If the source storage of previously created checksums is available to
 the user through the Windows shell, this command may also accept such
-checksum files as INPUT arguments.  In this case, the UI server should
-instead verify the checksum of the referenced files as if they were
-given as INPUT files.
+checksum files as @code{FILE} arguments.  In this case, the UI server
+should instead verify the checksum of the referenced files as if they
+were given as INPUT files.
 
 The option @code{--nohup} is mandatory.  It is currently unspecified
 what should happen if @code{--nohup} is not present.  Because
index d9e5bbe..2c2a72c 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gpgex 0.0.0-svn10\n"
 "Report-Msgid-Bugs-To: bug-gpgex@g10code.com\n"
-"POT-Creation-Date: 2007-11-02 11:48+0100\n"
-"PO-Revision-Date: 2007-10-08 18:34+0200\n"
+"POT-Creation-Date: 2007-11-08 18:55+0100\n"
+"PO-Revision-Date: 2007-11-08 18:57+0100\n"
 "Last-Translator: Marcus Brinkmann <marcus@g10code.com>\n"
 "Language-Team: German\n"
 "MIME-Version: 1.0\n"
@@ -17,96 +17,96 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: src/client.cc:345
-msgid "Can not access Kleopatra, see log file for details"
-msgstr "Kann nicht auf Kleopatra zugreifen, siehe Protokolldatei für Details"
+#, c-format
+msgid ""
+"Can not access Kleopatra:\r\n"
+"%s"
+msgstr "Kann nicht auf Kleopatra zugreifen:\\r\\n%s"
 
-#: src/gpgex.cc:57
+#: src/gpgex.cc:58
 msgid "Help on GpgEX"
 msgstr "Hilfe zu GpgEX"
 
-#: src/gpgex.cc:58
+#: src/gpgex.cc:59
 msgid "Decrypt and verify"
 msgstr "Entschlüsseln und verifizieren"
 
-#: src/gpgex.cc:59
+#: src/gpgex.cc:60
 msgid "Decrypt"
 msgstr "Entschlüsseln"
 
-#: src/gpgex.cc:60
+#: src/gpgex.cc:61
 msgid "Verify"
 msgstr "Verifizieren"
 
-#: src/gpgex.cc:61
+#: src/gpgex.cc:62
 msgid "Encrypt and sign"
 msgstr "Verschlüsseln und signieren"
 
-#: src/gpgex.cc:62
+#: src/gpgex.cc:63
 msgid "Encrypt"
 msgstr "Verschlüsseln"
 
-#: src/gpgex.cc:63
+#: src/gpgex.cc:64
 msgid "Sign"
 msgstr "Signieren"
 
-#: src/gpgex.cc:64
+#: src/gpgex.cc:65
 msgid "Import keys"
 msgstr "Zertifikate importieren"
 
-#: src/gpgex.cc:65
+#: src/gpgex.cc:66
 msgid "Create checksums"
 msgstr "Prüfsummen erstellen"
 
-#: src/gpgex.cc:66
+#: src/gpgex.cc:67
 msgid "Verify checksums"
 msgstr "Prüfsummen verifizieren"
 
-#: src/gpgex.cc:306
+#: src/gpgex.cc:307
 msgid "More GpgEX options"
 msgstr "Mehr GpgEX Optionen"
 
-#: src/gpgex.cc:402
+#: src/gpgex.cc:403
 msgid "Invoke the GpgEX documentation."
 msgstr "Öffne die Dokumentation zu GpgEX"
 
-#: src/gpgex.cc:406
-#, fuzzy
+#: src/gpgex.cc:407
 msgid "Decrypt and verify the marked files."
 msgstr "Die markierten Dateien entschlüsseln und verifizieren."
 
-#: src/gpgex.cc:410
+#: src/gpgex.cc:411
 msgid "Decrypt the marked files."
 msgstr "Die markierten Dateien entschlüsseln."
 
-#: src/gpgex.cc:414
+#: src/gpgex.cc:415
 msgid "Verify the marked files."
 msgstr "Die markierten Dateien verifizieren."
 
-#: src/gpgex.cc:418
-#, fuzzy
+#: src/gpgex.cc:419
 msgid "Encrypt and sign the marked files."
-msgstr "Die markierten Dateien verschlüsseln und verifizieren."
+msgstr "Die markierten Dateien verschlüsseln und signieren."
 
-#: src/gpgex.cc:422
+#: src/gpgex.cc:423
 msgid "Encrypt the marked files."
 msgstr "Die markierten Dateien verschlüsseln."
 
-#: src/gpgex.cc:426
+#: src/gpgex.cc:427
 msgid "Sign the marked files."
 msgstr "Die markierten Dateien signieren."
 
-#: src/gpgex.cc:430
+#: src/gpgex.cc:431
 msgid "Import the marked files."
 msgstr "Die markierten Dateien importieren."
 
-#: src/gpgex.cc:434
+#: src/gpgex.cc:435
 msgid "Create checksums."
 msgstr "Für die markierten Dateien Prüfsummen erstellen."
 
-#: src/gpgex.cc:438
+#: src/gpgex.cc:439
 msgid "Verify checksums."
 msgstr "Die Prüfsummen der markierten Dateien verifizieren."
 
-#: src/gpgex.cc:442
-#, fuzzy
+#: src/gpgex.cc:443
 msgid "Show more GpgEX options."
-msgstr "Mehr GpgEX Optionen"
+msgstr "Mehr GpgEX Optionen."
index 9a8810e..798f093 100644 (file)
@@ -1,5 +1,9 @@
 2007-11-08  Marcus Brinkmann  <marcus@g10code.de>
 
+       * gpgex.cc: Include registry.h.
+       (start_help): Launch gpgex help from install directory.
+       * client.cc (client_t::call_assuan): Fix bug in last change.
+
        * client.cc (client_t::call_assuan): Fix FILE command and rename
        all commands to the protocol version.
        (client_t::call_assuan): Report the actual error and remove log
index 4b9c3e2..10892ef 100644 (file)
@@ -343,7 +343,7 @@ client_t::call_assuan (const char *cmd, vector<string> &filenames)
     {
       char buf[256];
       snprintf (buf, sizeof (buf), _("Can not access Kleopatra:\r\n%s"),
-               gpg_strerror (buf));
+               gpg_strerror (rc));
       MessageBox (this->window, buf, "GpgEX", MB_ICONINFORMATION);
     }
 
index c1fce18..4e13b54 100644 (file)
@@ -36,6 +36,7 @@ using std::string;
 
 #include "main.h"
 #include "client.h"
+#include "registry.h"
 
 #include "gpgex.h"
 
@@ -490,12 +491,28 @@ start_help (HWND hwnd)
   // width, height
   web->put_Visible (VARIANT_TRUE);
 
-  /* FIXME: Replace by real URL.  */
-  BSTR url = SysAllocString ((const OLECHAR *) L"http://www.gpg4win.org/");
+#define URLSIZE 512
+  wchar_t url[URLSIZE];
+  {
+    char *dir = NULL;
+
+    dir = read_w32_registry_string ("HKEY_LOCAL_MACHINE", REGKEY,
+                                   "Install Directory");
+    if (!dir)
+      _snwprintf (url, URLSIZE, L"%S", "http://www.gpg4win.org/");
+    else
+      /* FIXME: Select on language.  */
+      _snwprintf (url,
+                 URLSIZE, L"file:///%S\\share\\doc\\gpgex\\gpgex-en.html",
+                 dir);
+    url[URLSIZE - 1] = '\0';
+  }
+  
+  BSTR burl = SysAllocString ((const OLECHAR *) url);
   VARIANT vars[4];
   memset (vars, 0, sizeof (vars));
-  res = web->Navigate (url, vars, vars + 1, vars + 2, vars + 3);
-  SysFreeString (url);
+  res = web->Navigate (burl, vars, vars + 1, vars + 2, vars + 3);
+  SysFreeString (burl);
   if (!SUCCEEDED (res))
     {
       web->Release ();