From ca1f41bad2c5506ab42a82990fb396d0b6bb42cb Mon Sep 17 00:00:00 2001 From: "raveit65 (via Travis CI)" Date: Mon, 26 Feb 2024 10:59:04 +0000 Subject: Deploy mate-desktop/mate-polkit to github.com/mate-desktop/mate-polkit.git:gh-pages --- .../0.html | 1189 ++++++++++++++++++++ .../index.html | 197 ++++ .../stats.html | 167 +++ .../style.css | 177 +++ 4 files changed, 1730 insertions(+) create mode 100644 2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/0.html create mode 100644 2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/index.html create mode 100644 2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/stats.html create mode 100644 2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/style.css (limited to '2023-02-10-194918-4414-cppcheck@65a6c367e28e_master') diff --git a/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/0.html b/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/0.html new file mode 100644 index 0000000..2b46300 --- /dev/null +++ b/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/0.html @@ -0,0 +1,1189 @@ + + + + + + Cppcheck - HTML report - mate-polkit + + + + + +
+ + + +
+
  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
/*
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ * Author: David Zeuthen <davidz@redhat.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gio/gio.h>
+#include <glib/gi18n.h>
+#include <polkitagent/polkitagent.h>
+
+#if defined(HAVE_AYATANA_APPINDICATOR)
+# include <libayatana-appindicator/app-indicator.h>
+#elif defined(HAVE_UBUNTU_APPINDICATOR)
+# include <libappindicator/app-indicator.h>
+#endif
+
+#include "polkitmatelistener.h"
+
+/* session management support for auto-restart */
+#define SM_DBUS_NAME      "org.gnome.SessionManager"
+#define SM_DBUS_PATH      "/org/gnome/SessionManager"
+#define SM_DBUS_INTERFACE "org.gnome.SessionManager"
+#define SM_CLIENT_DBUS_INTERFACE "org.gnome.SessionManager.ClientPrivate"
+
+/* the Authority */
+static PolkitAuthority *authority = NULL;<--- Shadowed declaration
+
+/* the session we are servicing */
+static PolkitSubject *session = NULL;
+
+/* the current set of temporary authorizations */
+static GList *current_temporary_authorizations = NULL;
+
+#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+static AppIndicator *app_indicator = NULL;
+#else
+static GtkStatusIcon *status_icon = NULL;
+#endif
+
+static GDBusProxy      *sm_proxy;
+static GDBusProxy      *client_proxy = NULL;
+
+static  GMainLoop *loop;
+
+static void
+revoke_tmp_authz_cb (GObject      *source_object,
+                     GAsyncResult *res,
+                     gpointer      user_data)
+{
+  GError *error;
+
+  error = NULL;
+  polkit_authority_revoke_temporary_authorizations_finish (POLKIT_AUTHORITY (source_object),
+                                                           res,
+                                                           &error);
+  if (error != NULL)
+    {
+      g_warning ("Error revoking temporary authorizations: %s", error->message);
+      g_error_free (error);
+    }
+}
+
+static void
+revoke_tmp_authz (void)
+{
+  polkit_authority_revoke_temporary_authorizations (authority,
+                                                    session,
+                                                    NULL,
+                                                    revoke_tmp_authz_cb,
+                                                    NULL);
+}
+
+#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+static void
+on_menu_item_activate (GtkMenuItem *menu_item,
+                       gpointer     user_data)
+{
+  revoke_tmp_authz ();
+}
+#else
+static void
+on_status_icon_activate (GtkStatusIcon *status_icon,
+                         gpointer       user_data)
+{
+  revoke_tmp_authz ();
+}
+
+static void
+on_status_icon_popup_menu (GtkStatusIcon *status_icon,
+                           guint          button,
+                           guint          activate_time,
+                           gpointer       user_data)
+{
+  revoke_tmp_authz ();
+}
+#endif
+
+static void
+update_temporary_authorization_icon_real (void)
+{
+
+#if 0
+  GList *l;
+  g_debug ("have %d tmp authorizations", g_list_length (current_temporary_authorizations));
+  for (l = current_temporary_authorizations; l != NULL; l = l->next)
+    {
+      PolkitTemporaryAuthorization *authz = POLKIT_TEMPORARY_AUTHORIZATION (l->data);
+
+      g_debug ("have tmp authz for action %s (subject %s) with id %s (obtained %d, expires %d)",
+               polkit_temporary_authorization_get_action_id (authz),
+               polkit_subject_to_string (polkit_temporary_authorization_get_subject (authz)),
+               polkit_temporary_authorization_get_id (authz),
+               (gint) polkit_temporary_authorization_get_time_obtained (authz),
+               (gint) polkit_temporary_authorization_get_time_expires (authz));
+    }
+#endif
+
+  /* TODO:
+   *
+   * - we could do something fancy like displaying a window with the tmp authz
+   *   when the icon is clicked...
+   *
+   * - we could do some work using polkit_subject_exists() to ignore tmp authz
+   *   for subjects that no longer exists.. this is because temporary authorizations
+   *   are only valid for the subject that trigger the authentication dialog.
+   *
+   *   Maybe the authority could do this, would probably involve some polling, but
+   *   it seems cleaner to do this server side.
+   */
+
+  if (current_temporary_authorizations != NULL)
+    {
+      /* show icon */
+#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+      if (app_indicator == NULL)
+        {
+          GtkWidget *item, *menu;
+
+          app_indicator = app_indicator_new ("mate-polkit",
+                                             "dialog-password",
+                                             APP_INDICATOR_CATEGORY_SYSTEM_SERVICES);
+
+          item = gtk_menu_item_new_with_label (_("Drop all elevated privileges"));
+          g_signal_connect (item,
+                            "activate",
+                            G_CALLBACK (on_menu_item_activate),
+                            NULL);
+          menu = gtk_menu_new ();
+          gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+          gtk_widget_show_all (menu);
+
+          app_indicator_set_menu (app_indicator,
+                                  GTK_MENU (menu));
+          app_indicator_set_status (app_indicator,
+                                    APP_INDICATOR_STATUS_ACTIVE);
+        }
+      else
+        /*Reshow icon from existing appindicator */
+        app_indicator_set_status (app_indicator,
+				    APP_INDICATOR_STATUS_ACTIVE);
+
+#else
+      if (status_icon == NULL)
+        {
+          status_icon = gtk_status_icon_new_from_icon_name ("dialog-password");
+          gtk_status_icon_set_tooltip_text (status_icon,
+                                            _("Click the icon to drop all elevated privileges"));
+          g_signal_connect (status_icon,
+                            "activate",
+                            G_CALLBACK (on_status_icon_activate),
+                            NULL);
+          g_signal_connect (status_icon,
+                            "popup-menu",
+                            G_CALLBACK (on_status_icon_popup_menu),
+                            NULL);
+        }
+#endif
+    }
+  else
+    {
+      /* hide icon */
+#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+      if (app_indicator != NULL)
+        {
+          /* keep the app_indicator, hide the icon or it won't come back*/
+          app_indicator_set_status (app_indicator,
+				    APP_INDICATOR_STATUS_PASSIVE);
+        }
+#else
+      if (status_icon != NULL)
+        {
+          gtk_status_icon_set_visible (status_icon, FALSE);
+          g_object_unref (status_icon);
+          status_icon = NULL;
+        }
+#endif
+    }
+}
+
+static void
+enumerate_temporary_authorizations_cb (GObject      *source_object,
+                                       GAsyncResult *res,
+                                       gpointer      user_data)
+{
+  PolkitAuthority *authority = POLKIT_AUTHORITY (source_object);<--- Shadow variable
+  GList *temporary_authorizations;
+  GError *error;
+
+  temporary_authorizations = NULL;
+
+  error = NULL;
+  temporary_authorizations = polkit_authority_enumerate_temporary_authorizations_finish (authority,
+                                                                                         res,
+                                                                                         &error);
+  if (error != NULL)
+    {
+      g_warning ("Error enumerating temporary authorizations: %s", error->message);
+      g_error_free (error);
+      goto out;
+    }
+
+  g_list_foreach (current_temporary_authorizations, (GFunc) g_object_unref, NULL);
+  g_list_free (current_temporary_authorizations);
+
+  current_temporary_authorizations = temporary_authorizations;
+
+  update_temporary_authorization_icon_real ();
+
+ out:
+  ;
+}
+
+static void
+update_temporary_authorization_icon (PolkitAuthority *authority)
+{
+  polkit_authority_enumerate_temporary_authorizations (authority,
+                                                       session,
+                                                       NULL,
+                                                       enumerate_temporary_authorizations_cb,
+                                                       NULL);
+}
+
+static void
+on_authority_changed (PolkitAuthority *authority,
+                      gpointer         user_data)
+{
+  update_temporary_authorization_icon (authority);
+}
+
+static void
+stop_cb (void)
+{
+        g_main_loop_quit (loop);
+}
+
+static gboolean
+end_session_response (gboolean is_okay, const gchar *reason)
+{
+        GVariant *res;
+        GError *error = NULL;
+
+        res = g_dbus_proxy_call_sync (client_proxy,
+                                      "EndSessionResponse",
+                                      g_variant_new ("(bs)",
+                                                     is_okay,
+                                                     reason),
+                                      G_DBUS_CALL_FLAGS_NONE,
+                                      -1, /* timeout */
+                                      NULL, /* GCancellable */
+                                      &error);
+        if (! res) {
+                g_warning ("Failed to call EndSessionResponse: %s", error->message);
+                g_error_free (error);
+                return FALSE;
+        }
+
+        g_variant_unref (res);
+        return TRUE;
+}
+
+static void
+query_end_session_cb (void)
+{
+        end_session_response (TRUE, "");
+}
+
+static void
+end_session_cb (void)
+{
+        end_session_response (TRUE, "");
+        g_main_loop_quit (loop);
+}
+
+static void
+signal_cb (GDBusProxy *proxy, gchar *sender_name, gchar *signal_name,
+           GVariant *parameters, gpointer user_data)
+{
+        if (strcmp (signal_name, "Stop") == 0) {
+                stop_cb ();
+        } else if (strcmp (signal_name, "QueryEndSession") == 0) {
+                query_end_session_cb ();
+        } else if (strcmp (signal_name, "EndSession") == 0) {
+                end_session_cb ();
+        }
+}
+
+static gboolean
+register_client_to_gnome_session (void)
+{
+        GError     *error = NULL;
+        GVariant   *res;
+        const char *startup_id;
+        const char *app_id;
+        char       *client_id;
+
+        startup_id = g_getenv ("DESKTOP_AUTOSTART_ID");
+        app_id = "polkit-mate-authentication-agent-1.desktop";
+
+        sm_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
+                                                  G_DBUS_PROXY_FLAGS_NONE,
+                                                  NULL, /* GDBusInterfaceInfo */
+                                                  SM_DBUS_NAME,
+                                                  SM_DBUS_PATH,
+                                                  SM_DBUS_INTERFACE,
+                                                  NULL, /* GCancellable */
+                                                  &error);
+        if (sm_proxy == NULL) {
+                g_message("Failed to get session manager: %s", error->message);
+                g_error_free (error);
+                return FALSE;
+        }
+
+        res = g_dbus_proxy_call_sync (sm_proxy,
+                                      "RegisterClient",
+                                      g_variant_new ("(ss)",
+                                                     app_id,
+                                                     startup_id),
+                                      G_DBUS_CALL_FLAGS_NONE,
+                                      -1, /* timeout */
+                                      NULL, /* GCancellable */
+                                      &error);
+        if (! res) {
+                g_warning ("Failed to register client: %s", error->message);
+                g_error_free (error);
+                return FALSE;
+        }
+
+        if (! g_variant_is_of_type (res, G_VARIANT_TYPE ("(o)"))) {
+                g_warning ("RegisterClient returned unexpected type %s",
+                           g_variant_get_type_string (res));
+                return FALSE;
+        }
+
+        g_variant_get (res, "(&o)", &client_id);
+
+        client_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
+                                                      G_DBUS_PROXY_FLAGS_NONE,
+                                                      NULL, /* GDBusInterfaceInfo */
+                                                      SM_DBUS_NAME,
+                                                      client_id,
+                                                      SM_CLIENT_DBUS_INTERFACE,
+                                                      NULL, /* GCancellable */
+                                                      &error);
+        g_variant_unref (res);
+        if (client_proxy == NULL) {
+                g_message("Failed to get client proxy: %s", error->message);
+                g_error_free (error);
+                return FALSE;
+        }
+
+        g_signal_connect (client_proxy, "g-signal", G_CALLBACK (signal_cb), NULL);
+
+        return TRUE;
+}
+
+int
+main (int argc, char **argv)
+{
+  gint ret;
+  PolkitAgentListener *listener;
+  GError *error;
+
+  gtk_init (&argc, &argv);
+
+  loop = NULL;
+  authority = NULL;
+  listener = NULL;
+  session = NULL;
+  ret = 1;
+
+  bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR);
+#if HAVE_BIND_TEXTDOMAIN_CODESET
+  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+#endif
+  textdomain (GETTEXT_PACKAGE);
+
+  loop = g_main_loop_new (NULL, FALSE);
+
+  error = NULL;
+  authority = polkit_authority_get_sync (NULL /* GCancellable* */, &error);
+  if (authority == NULL)
+    {
+      g_warning ("Error getting authority: %s", error->message);
+      g_error_free (error);
+      goto out;
+    }
+  g_signal_connect (authority,
+                    "changed",
+                    G_CALLBACK (on_authority_changed),
+                    NULL);
+
+  listener = polkit_mate_listener_new ();
+
+  error = NULL;
+  session = polkit_unix_session_new_for_process_sync (getpid (), NULL, &error);
+  if (error != NULL)
+    {
+      g_warning ("Unable to determine the session we are in: %s", error->message);
+      g_error_free (error);
+      goto out;
+    }
+
+  error = NULL;
+  if (!polkit_agent_listener_register (listener,
+				       POLKIT_AGENT_REGISTER_FLAGS_NONE,
+                                       session,
+                                       "/org/mate/PolicyKit1/AuthenticationAgent",
+				       NULL,
+                                       &error))
+    {
+      g_printerr ("Cannot register authentication agent: %s\n", error->message);
+      g_error_free (error);
+      goto out;
+    }
+
+  update_temporary_authorization_icon (authority);
+
+  register_client_to_gnome_session();
+
+  g_main_loop_run (loop);
+
+  ret = 0;
+
+ out:
+  if (authority != NULL)
+    g_object_unref (authority);
+  if (session != NULL)
+    g_object_unref (session);
+  if (listener != NULL)
+    g_object_unref (listener);
+  if (loop != NULL)
+    g_main_loop_unref (loop);
+
+  return ret;
+}
+
+ +
+ +
+ + diff --git a/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/index.html b/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/index.html new file mode 100644 index 0000000..e6e1402 --- /dev/null +++ b/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/index.html @@ -0,0 +1,197 @@ + + + + + + Cppcheck - HTML report - mate-polkit + + + + + +
+ + + +
+ + + + + + + + + + +
LineIdCWESeverityMessage
missingIncludeinformationCppcheck cannot find all the include files (use --check-config for details)
src/main.c
226shadowVariable398styleLocal variable 'authority' shadows outer variable
+
+ +
+ + diff --git a/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/stats.html b/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/stats.html new file mode 100644 index 0000000..8f9eaf7 --- /dev/null +++ b/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/stats.html @@ -0,0 +1,167 @@ + + + + + + Cppcheck - HTML report - mate-polkit + + + + + +
+ + + +
+

Top 10 files for style severity, total findings: 1
+   1  src/main.c
+

+ +
+ +
+ + diff --git a/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/style.css b/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/style.css new file mode 100644 index 0000000..3897bfa --- /dev/null +++ b/2023-02-10-194918-4414-cppcheck@65a6c367e28e_master/style.css @@ -0,0 +1,177 @@ + +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; + font-size: 13px; + line-height: 1.5; + height: 100%; + margin: 0; +} + +#wrapper { + position: fixed; + height: 100vh; + width: 100vw; + display: grid; + grid-template-rows: fit-content(8rem) auto fit-content(8rem); + grid-template-columns: fit-content(25%) 1fr; + grid-template-areas: + "header header" + "menu content" + "footer footer"; +} + +h1 { + margin: 0 0 8px -2px; + font-size: 175%; +} + +.header { + padding: 0 0 5px 15px; + grid-area: header; + border-bottom: thin solid #aaa; +} + +.footer { + grid-area: footer; + border-top: thin solid #aaa; + font-size: 85%; + +} + +.footer > p { + margin: 4px; +} + +#menu, +#menu_index { + grid-area: menu; + text-align: left; + overflow: auto; + padding: 0 23px 15px 15px; + border-right: thin solid #aaa; + min-width: 200px; +} + +#menu > a { + display: block; + margin-left: 10px; + font-size: 12px; +} + +#content, +#content_index { + grid-area: content; + padding: 0px 5px 15px 15px; + overflow: auto; +} + +label { + white-space: nowrap; +} + +label.checkBtn.disabled { + color: #606060; + background: #e0e0e0; + font-style: italic; +} + +label.checkBtn, input[type="text"] { + border: 1px solid grey; + border-radius: 4px; + box-shadow: 1px 1px inset; + padding: 1px 5px; +} + +label.checkBtn { + white-space: nowrap; + background: #ccddff; +} + +label.unchecked { + background: #eff8ff; + box-shadow: 1px 1px 1px; +} + +label.checkBtn:hover, label.unchecked:hover{ + box-shadow: 0 0 2px; +} + +label.disabled:hover { + box-shadow: 1px 1px inset; +} + +label.checkBtn > input { + display:none; +} + +.summaryTable { + width: 100%; +} + +table.summaryTable td { padding: 0 5px 0 5px; } + +.statHeader, .severityHeader { + font-weight: bold; +} + +.warning { + background-color: #ffffa7; +} + +.error { + background-color: #ffb7b7; +} + +.error2 { + background-color: #faa; + display: inline-block; + margin-left: 4px; +} + +.inconclusive { + background-color: #b6b6b4; +} + +.inconclusive2 { + background-color: #b6b6b4; + display: inline-block; + margin-left: 4px; +} + +.verbose { + display: inline-block; + vertical-align: top; + cursor: help; +} + +.verbose .content { + display: none; + position: absolute; + padding: 10px; + margin: 4px; + max-width: 40%; + white-space: pre-wrap; + border: 1px solid #000; + background-color: #ffffcc; + cursor: auto; +} + +.highlight .hll { + padding: 1px; +} + +.highlighttable { + background-color: #fff; + position: relative; + margin: -10px; +} + +.linenos { + border-right: thin solid #aaa; + color: #d3d3d3; + padding-right: 6px; +} + +.id-filtered, .severity-filtered, .file-filtered, .tool-filtered, .text-filtered { + visibility: collapse; +} -- cgit v1.2.1