Use Ctrl-t for showcert instead of Ctrl-x
[surf.git] / surf.c
diff --git a/surf.c b/surf.c
index 84ab8e3..007f7b9 100644 (file)
--- a/surf.c
+++ b/surf.c
@@ -236,7 +236,7 @@ static void clicknewwindow(Client *c, const Arg *a, WebKitHitTestResult *h);
 static void clickexternplayer(Client *c, const Arg *a, WebKitHitTestResult *h);
 
 static char winid[64];
-static char togglestats[11];
+static char togglestats[12];
 static char pagestats[2];
 static Atom atoms[AtomLast];
 static Window embed;
@@ -256,7 +256,7 @@ char *argv0;
 void
 usage(void)
 {
-       die("usage: %s [-bBdDfFgGiIkKmMnNpPsStTvx] [-a cookiepolicies ] "
+       die("usage: %s [-bBdDfFgGiIkKmMnNpPsStTvwxX] [-a cookiepolicies ] "
            "[-c cookiefile] [-C stylefile] [-e xid] [-r scriptfile] "
            "[-u useragent] [-z zoomlevel] [uri]\n", basename(argv0));
 }
@@ -590,8 +590,9 @@ gettogglestats(Client *c)
        togglestats[6] = curconfig[Plugins].val.b ?         'V' : 'v';
        togglestats[7] = curconfig[Style].val.b ?           'M' : 'm';
        togglestats[8] = curconfig[FrameFlattening].val.b ? 'F' : 'f';
-       togglestats[9] = curconfig[StrictTLS].val.b ?       'T' : 't';
-       togglestats[10] = '\0';
+       togglestats[9] = curconfig[Certificate].val.b ?     'X' : 'x';
+       togglestats[10] = curconfig[StrictTLS].val.b ?      'T' : 't';
+       togglestats[11] = '\0';
 }
 
 void
@@ -791,14 +792,16 @@ setcert(Client *c, const char *uri)
                return;
        }
 
-       uri = strstr(uri, "://") + sizeof("://") - 1;
-       host = strndup(uri, strstr(uri, "/") - uri);
+       if ((uri = strstr(uri, "https://"))) {
+               uri += sizeof("https://") - 1;
+               host = g_strndup(uri, strchr(uri, '/') - uri);
+               webkit_web_context_allow_tls_certificate_for_host(
+                   webkit_web_view_get_context(c->view), cert, host);
+               g_free(host);
+       }
 
-       webkit_web_context_allow_tls_certificate_for_host(
-           webkit_web_view_get_context(c->view), cert, host);
        g_object_unref(cert);
 
-       free(host);
 }
 
 const char *
@@ -881,7 +884,7 @@ newwindow(Client *c, const Arg *a, int noembed)
 {
        int i = 0;
        char tmp[64];
-       const char *cmd[28], *uri;
+       const char *cmd[29], *uri;
        const Arg arg = { .v = cmd };
 
        cmd[i++] = argv0;
@@ -921,6 +924,7 @@ newwindow(Client *c, const Arg *a, int noembed)
        }
        if (showxid)
                cmd[i++] = "-w";
+       cmd[i++] = curconfig[Certificate].val.b ? "-X" : "-x" ;
        /* do not keep zoom level */
        cmd[i++] = "--";
        if ((uri = a->v))
@@ -1003,7 +1007,7 @@ newview(Client *c, WebKitWebView *rv)
                   "enable-site-specific-quirks", curconfig[SiteQuirks].val.b,
                   "media-playback-requires-user-gesture", curconfig[MediaManualPlay].val.b,
                   NULL);
-/* For mor interesting settings, have a look at
+/* For more interesting settings, have a look at
  * http://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html */
 
                if (strcmp(fulluseragent, "")) {
@@ -1328,7 +1332,7 @@ loadfailedtls(WebKitWebView *v, gchar *uri, GTlsCertificate *cert,
        g_object_get(cert, "certificate-pem", &pem, NULL);
        html = g_strdup_printf("<p>Could not validate TLS for ā€œ%sā€<br>%s</p>"
                               "<p>You can inspect the following certificate "
-                              "with Ctrl+Shift+x (default keybinding).</p>"
+                              "with Ctrl-t (default keybinding).</p>"
                               "<p><pre>%s</pre></p>", uri, errmsg->str, pem);
        g_free(pem);
        g_string_free(errmsg, TRUE);
@@ -1902,6 +1906,12 @@ main(int argc, char *argv[])
        case 'w':
                showxid = 1;
                break;
+       case 'x':
+               defconfig CSETB(Certificate, 0);
+               break;
+       case 'X':
+               defconfig CSETB(Certificate, 1);
+               break;
        case 'z':
                defconfig CSETF(ZoomLevel, strtof(EARGF(usage()), NULL));
                break;