From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: 30.1; Proposed changes for oauth2 Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:00:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.175426559714096 (code B ref -1); Mon, 04 Aug 2025 00:00:01 +0000 Received: (at submit) by debbugs.gnu.org; 3 Aug 2025 23:59:57 +0000 Received: from localhost ([127.0.0.1]:46703 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiicK-0003eu-QK for submit@debbugs.gnu.org; Sun, 03 Aug 2025 19:59:57 -0400 Received: from lists.gnu.org ([2001:470:142::17]:51228) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uiicE-0003e7-Ee for submit@debbugs.gnu.org; Sun, 03 Aug 2025 19:59:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uiiba-0007N1-P1 for bug-gnu-emacs@gnu.org; Sun, 03 Aug 2025 19:59:13 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uiibU-0000AN-GR for bug-gnu-emacs@gnu.org; Sun, 03 Aug 2025 19:59:05 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-24031a3e05cso26608475ad.1 for ; Sun, 03 Aug 2025 16:58:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754265537; x=1754870337; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=wvZie0gcMZOZtUQUtVv8j/+q32pbf9IXPszbWQhJccM=; b=Udhr+XYZ3igdf1ipihjxDOnWdtjuneFzgyEHvRcEN6UAqiDO/9LHVe8/qGoPXqNLXh ky2EL7RzuG6MW7xy4SN9pz2wjoo2upR0FMpnxCozkJQ7ep1ZD/aGeQQ8F8qhClzgcwtz nJy4UMuXHFeVV3tWk6tMMcthVz2Iw0vTpYDi6SQTJwHRxl3wWRsK1u/vfchCGdMwg4O9 80ipwIYrNuHSbppIjHj78G1MbzZvNdVJakrU4FYodBpmzZdb4AOeAaAPpoolvEl22uLM Tezw9eRJJkD6hhAGT8PuxIQ+pR0K69T9pE2veAt8NzO9AfCtoM3xKkRd0u5l+NSr+uwP 3jNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754265537; x=1754870337; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=wvZie0gcMZOZtUQUtVv8j/+q32pbf9IXPszbWQhJccM=; b=GVSPdVCY/BloOS4edXj9hLXIR3LVoGc9zpGa5JVl1OQSOTflKplMy7DfU6Nkvcq3zi xZTCTzOlWtTEO8XoC0DjKCxoP/skSJVQVuLqKiFihutbfq6UBZuUEtU1kXFvq2cB5yE8 z3EOw+TJCdqgHVOAyUX7CZFTAAzGUNQzVyLea9ERGQsmVW3opvor9DrAmYNatpyzHTkN RHO4E2ge5bJgEwEcPURGRS6bLALJIMK6nntM3klTU6THPSY07NKgQkKHwhPonrzfx8hU cO7zHyIRqOcogAQl9lSBM8cHQJZTktGvrhrwh+vmfo44bY5JUow0BOoBGwW+y/3g5nYf s5bA== X-Gm-Message-State: AOJu0YyDJxrjDoXHKQcQKqCph2gnKF1KVOKgp5kYKKcvp+/aDIYzoBBs MMB+nZYoUk2dD8J9wSDnj7t5ES2TrWQMX2ieMrTD4Urb5W1ooH7dKhH05ibyaQ== X-Gm-Gg: ASbGncuI0zAcpF6YX9yKk9HPb51g76mRRvIS/bbZPfZzumACkOHOLt/yHvpf3uEUrX8 exYVG69rdajWzuRXEgWuFQlKXDfeGl7gUWKhbPoRWv6xmqHAmONZ4Ui0aQmvJOcqgMFHUYD2mjA 9LzPIdOwwBn5lu0SO4sjO6lfshagsVl3TXBD6/tAW+XmmYxZ52FhXVvFtmdoAVYqLMS4Tb4LM2y MDPmLISxon46YKUR760Ra8WdVOs9msf2L/2nMMDA31YybHHvWWz6mL+4/qzLnXEw8j3MYG10nBi pr03hF3ZOpYtjgYojNKzZzX+YUOJoagJUMpI3CwYCvmZwWwZ+eTzrSjQTXTk+XBsnquXDQ2KXJp qfz8xP96rSQRudpbCp+ZbP15eBdsD3wNiz1vtyxwbA66KFAhrXmC8rUPg X-Google-Smtp-Source: AGHT+IHKojmeVTGXPvucGVaeKHbzc9YYxfPqRHgJYk/PlANDlYyFmEV+BIjeUJCNNZP2mSAxYQaU+Q== X-Received: by 2002:a17:902:d2d2:b0:231:d0da:5e1f with SMTP id d9443c01a7336-24246bed85amr100667945ad.21.1754265535969; Sun, 03 Aug 2025 16:58:55 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1ef6713sm94211445ad.12.2025.08.03.16.58.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 16:58:55 -0700 (PDT) From: Xiyue Deng Date: Sun, 03 Aug 2025 16:58:52 -0700 Message-ID: <874iuo554z.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=manphiz@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi, I have worked on a series of patches for oauth2. This includes the following improvements: * Code cleanup and small fixes. * Support reusing cached tokens before expiration. * Close plstore file after use - To avoid being modified by other means while Emacs is accessing an outdated buffer. I plan to send the patches through git-send-email, so this email is to create the bug and the patches will be sent through a series of future emails. In GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.16.0) of 2025-04-04, modified by Debian built on sbuild System Description: Debian GNU/Linux 12 (bookworm) Configured using: 'configure --build x86_64-linux-gnu --prefix=3D/usr --sharedstatedir=3D/var/lib --libexecdir=3D/usr/libexec --localstatedir=3D/var/lib --infodir=3D/usr/share/info --mandir=3D/usr/share/man --with-libsystemd --with-pop=3Dyes --enable-locallisppath=3D/etc/emacs:/usr/local/share/emacs/30.1/site-lisp:= /usr/local/share/emacs/site-lisp:/usr/share/emacs/30.1/site-lisp:/usr/share= /emacs/site-lisp --with-sound=3Dalsa --without-gconf --with-mailutils --build x86_64-linux-gnu --prefix=3D/usr --sharedstatedir=3D/var/lib --libexecdir=3D/usr/libexec --localstatedir=3D/var/lib --infodir=3D/usr/share/info --mandir=3D/usr/share/man --with-libsystemd --with-pop=3Dyes --enable-locallisppath=3D/etc/emacs:/usr/local/share/emacs/30.1/site-lisp:= /usr/local/share/emacs/site-lisp:/usr/share/emacs/30.1/site-lisp:/usr/share= /emacs/site-lisp --with-sound=3Dalsa --without-gconf --with-mailutils --with-cairo --with-x=3Dyes --with-x-toolkit=3Dgtk3 --with-toolkit-scroll-bars 'CFLAGS=3D-g -O2 -ffile-prefix-map=3D/build/reproducible-path/emacs-30.1+1=3D. -fstack-prot= ector-strong -Wformat -Werror=3Dformat-security -Wall' 'CPPFLAGS=3D-Wdate-time -D_FORTIFY_SOURCE=3D2' LDFLAGS=3D-Wl,-z,relro' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: flyspell-mode: t rcirc-track-minor-mode: t server-mode: t subword-mode: t bug-reference-prog-mode: t whitespace-mode: t xclip-mode: t treemacs-project-follow-mode: t treemacs-follow-mode: t treemacs-git-mode: t treemacs-fringe-indicator-mode: t auth-source-xoauth2-plugin-mode: t activities-tabs-mode: t activities-mode: t fido-vertical-mode: t icomplete-vertical-mode: t icomplete-mode: t fido-mode: t override-global-mode: t global-display-line-numbers-mode: t display-line-numbers-mode: t global-auto-revert-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-dired hides /home/xiyue= den/.config/emacs/elpa/magit-section-4.3.6/magit-dired /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-autorevert hides /home/= xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-autorevert /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote hides /usr/share/em= acs/site-lisp/elpa/boxquote-2.2/boxquote /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-autoloads hides /us= r/share/emacs/site-lisp/elpa/boxquote-2.2/boxquote-autoloads /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-pkg hides /usr/shar= e/emacs/site-lisp/elpa/boxquote-2.2/boxquote-pkg /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode hides /usr/sh= are/emacs/site-lisp/elpa/cmake-mode-3.25.1/cmake-mode /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode-autoloads hid= es /usr/share/emacs/site-lisp/elpa/cmake-mode-3.25.1/cmake-mode-autoloads /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode-pkg hides /us= r/share/emacs/site-lisp/elpa/cmake-mode-3.25.1/cmake-mode-pkg /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-pkg hides /usr/shar= e/emacs/site-lisp/elpa/company-0.9.13/company-pkg /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-dabbrev hides /usr/= share/emacs/site-lisp/elpa/company-0.9.13/company-dabbrev /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-files hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-files /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-abbrev hides /usr/s= hare/emacs/site-lisp/elpa/company-0.9.13/company-abbrev /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-capf hides /usr/sha= re/emacs/site-lisp/elpa/company-0.9.13/company-capf /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-clang hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-clang /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-yasnippet hides /us= r/share/emacs/site-lisp/elpa/company-0.9.13/company-yasnippet /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-ispell hides /usr/s= hare/emacs/site-lisp/elpa/company-0.9.13/company-ispell /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-cmake hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-cmake /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-dabbrev-code hides = /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-dabbrev-code /home/xiyueden/.config/emacs/elpa/company-1.0.2/company hides /usr/share/em= acs/site-lisp/elpa/company-0.9.13/company /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-etags hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-etags /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-template hides /usr= /share/emacs/site-lisp/elpa/company-0.9.13/company-template /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-css hides /usr/shar= e/emacs/site-lisp/elpa/company-0.9.13/company-css /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-oddmuse hides /usr/= share/emacs/site-lisp/elpa/company-0.9.13/company-oddmuse /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-bbdb hides /usr/sha= re/emacs/site-lisp/elpa/company-0.9.13/company-bbdb /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-tempo hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-tempo /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-tng hides /usr/shar= e/emacs/site-lisp/elpa/company-0.9.13/company-tng /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-nxml hides /usr/sha= re/emacs/site-lisp/elpa/company-0.9.13/company-nxml /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-gtags hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-gtags /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-autoloads hides /us= r/share/emacs/site-lisp/elpa/company-0.9.13/company-autoloads /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-keywords hides /usr= /share/emacs/site-lisp/elpa/company-0.9.13/company-keywords /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-semantic hides /usr= /share/emacs/site-lisp/elpa/company-0.9.13/company-semantic /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode hides /usr/share/e= macs/site-lisp/elpa/csv-mode-1.22/csv-mode /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-autoloads hides /u= sr/share/emacs/site-lisp/elpa/csv-mode-1.22/csv-mode-autoloads /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-tests hides /usr/s= hare/emacs/site-lisp/elpa/csv-mode-1.22/csv-mode-tests /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-pkg hides /usr/sha= re/emacs/site-lisp/elpa/csv-mode-1.22/csv-mode-pkg /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash hides /usr/share/emacs/s= ite-lisp/elpa/dash-2.19.1/dash /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash-pkg hides /usr/share/ema= cs/site-lisp/elpa/dash-2.19.1/dash-pkg /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash-autoloads hides /usr/sha= re/emacs/site-lisp/elpa/dash-2.19.1/dash-autoloads /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode hides= /usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-mode /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode-autol= oads hides /usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-m= ode-autoloads /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode-pkg h= ides /usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-mode-pkg /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed hides /usr/share/emac= s/site-lisp/elpa/elfeed-3.4.1/elfeed /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/xml-query hides /usr/share/e= macs/site-lisp/elpa/elfeed-3.4.1/xml-query /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-search hides /usr/sha= re/emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-search /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-db hides /usr/share/e= macs/site-lisp/elpa/elfeed-3.4.1/elfeed-db /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-lib hides /usr/share/= emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-lib /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-log hides /usr/share/= emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-log /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-csv hides /usr/share/= emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-csv /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-pkg hides /usr/share/= emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-pkg /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-curl hides /usr/share= /emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-curl /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-show hides /usr/share= /emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-show /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-link hides /usr/share= /emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-link /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-autoloads hides /usr/= share/emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-autoloads /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-digraphs hides /usr/shar= e/emacs/site-lisp/elpa/evil-1.14.2/evil-digraphs /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-repeat hides /usr/share/= emacs/site-lisp/elpa/evil-1.14.2/evil-repeat /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-vars hides /usr/share/em= acs/site-lisp/elpa/evil-1.14.2/evil-vars /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil hides /usr/share/emacs/s= ite-lisp/elpa/evil-1.14.2/evil /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-states hides /usr/share/= emacs/site-lisp/elpa/evil-1.14.2/evil-states /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-keybindings hides /usr/s= hare/emacs/site-lisp/elpa/evil-1.14.2/evil-keybindings /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-pkg hides /usr/share/ema= cs/site-lisp/elpa/evil-1.14.2/evil-pkg /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-ex hides /usr/share/emac= s/site-lisp/elpa/evil-1.14.2/evil-ex /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-core hides /usr/share/em= acs/site-lisp/elpa/evil-1.14.2/evil-core /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-search hides /usr/share/= emacs/site-lisp/elpa/evil-1.14.2/evil-search /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-integration hides /usr/s= hare/emacs/site-lisp/elpa/evil-1.14.2/evil-integration /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-jumps hides /usr/share/e= macs/site-lisp/elpa/evil-1.14.2/evil-jumps /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-maps hides /usr/share/em= acs/site-lisp/elpa/evil-1.14.2/evil-maps /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-commands hides /usr/shar= e/emacs/site-lisp/elpa/evil-1.14.2/evil-commands /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-command-window hides /us= r/share/emacs/site-lisp/elpa/evil-1.14.2/evil-command-window /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-common hides /usr/share/= emacs/site-lisp/elpa/evil-1.14.2/evil-common /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-macros hides /usr/share/= emacs/site-lisp/elpa/evil-1.14.2/evil-macros /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-autoloads hides /usr/sha= re/emacs/site-lisp/elpa/evil-1.14.2/evil-autoloads /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-types hides /usr/share/e= macs/site-lisp/elpa/evil-1.14.2/evil-types /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell hides /usr/share/emacs/site-lisp/elpa/exec-path-from-shell-1.12/exec-p= ath-from-shell /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell-autoloads hides /usr/share/emacs/site-lisp/elpa/exec-path-from-shell-1= .12/exec-path-from-shell-autoloads /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell-pkg hides /usr/share/emacs/site-lisp/elpa/exec-path-from-shell-1.12/ex= ec-path-from-shell-pkg /home/xiyueden/.config/emacs/elpa/magit-4.3.6/git-commit hides /usr/share/e= macs/site-lisp/elpa/git-commit-3.3.0/git-commit /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes hides /usr/shar= e/emacs/site-lisp/elpa/git-modes-1.4.0/git-modes /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes-pkg hides /usr/= share/emacs/site-lisp/elpa/git-modes-1.4.0/git-modes-pkg /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes-autoloads hides= /usr/share/emacs/site-lisp/elpa/git-modes-1.4.0/git-modes-autoloads /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitattributes-mode hides = /usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.0/gitattributes-mode /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitconfig-mode hides /usr= /share/emacs/site-lisp/elpa/gitconfig-mode-1.4.0/gitconfig-mode /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitignore-mode hides /usr= /share/emacs/site-lisp/elpa/gitignore-mode-1.4.0/gitignore-mode /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-context hides /usr/s= hare/emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-context /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot hides /usr/share/ema= cs/site-lisp/elpa/gnuplot-0.8.0/gnuplot /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-gui hides /usr/share= /emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-gui /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-autoloads hides /usr= /share/emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr= /share/emacs/site-lisp/elpa/gnuplot-0.8.0/debian-autoloads /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-pkg hides /usr/share= /emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-pkg /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg hides /usr/share/= emacs/site-lisp/elpa/goto-chg-1.7.3/goto-chg /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg-pkg hides /usr/sh= are/emacs/site-lisp/elpa/goto-chg-1.7.3/goto-chg-pkg /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg-autoloads hides /= usr/share/emacs/site-lisp/elpa/goto-chg-1.7.3/goto-chg-autoloads /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode hides /usr/sha= re/emacs/site-lisp/elpa/lua-mode-20210802/lua-mode /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode-autoloads hide= s /usr/share/emacs/site-lisp/elpa/lua-mode-20210802/lua-mode-autoloads /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode-pkg hides /usr= /share/emacs/site-lisp/elpa/lua-mode-20210802/lua-mode-pkg /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-ediff hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-ediff /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-remote hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-remote /home/xiyueden/.config/emacs/elpa/magit-4.3.6/git-rebase hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/git-rebase /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-bisect hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-bisect /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-autorevert hides /usr/s= hare/emacs/site-lisp/elpa/magit-3.3.0/magit-autorevert /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-log hides /usr/share/em= acs/site-lisp/elpa/magit-3.3.0/magit-log /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-margin hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-margin /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-status hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-status /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-subtree hides /usr/shar= e/emacs/site-lisp/elpa/magit-3.3.0/magit-subtree /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-merge hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-merge /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section hides /= usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-section /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-patch hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-patch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-commit hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-commit /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-extras hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-extras /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-autoloads hides /usr/sh= are/emacs/site-lisp/elpa/magit-3.3.0/magit-autoloads /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-mode hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-mode /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-files hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-files /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-stash hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-stash /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-blame hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-blame /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-repos hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-repos /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-reflog hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-reflog /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-git hides /usr/share/em= acs/site-lisp/elpa/magit-3.3.0/magit-git /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-bookmark hides /usr/sha= re/emacs/site-lisp/elpa/magit-3.3.0/magit-bookmark /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-submodule hides /usr/sh= are/emacs/site-lisp/elpa/magit-3.3.0/magit-submodule /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-apply hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-apply /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-reset hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-reset /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-core hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-core /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-gitignore hides /usr/sh= are/emacs/site-lisp/elpa/magit-3.3.0/magit-gitignore /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-transient hides /usr/sh= are/emacs/site-lisp/elpa/magit-3.3.0/magit-transient /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-push hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-push /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-worktree hides /usr/sha= re/emacs/site-lisp/elpa/magit-3.3.0/magit-worktree /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit hides /usr/share/emacs/= site-lisp/elpa/magit-3.3.0/magit /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-branch hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-branch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-wip hides /usr/share/em= acs/site-lisp/elpa/magit-3.3.0/magit-wip /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-notes hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-notes /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-diff hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-diff /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-fetch hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-fetch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-tag hides /usr/share/em= acs/site-lisp/elpa/magit-3.3.0/magit-tag /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-process hides /usr/shar= e/emacs/site-lisp/elpa/magit-3.3.0/magit-process /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-clone hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-clone /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-refs hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-refs /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-pull hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-pull /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-pkg hides /usr/share/em= acs/site-lisp/elpa/magit-3.3.0/magit-pkg /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-sequence hides /usr/sha= re/emacs/site-lisp/elpa/magit-3.3.0/magit-sequence /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section-autoloa= ds hides /usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section-= autoloads /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section hides /= usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section-pkg hid= es /usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section-pkg /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode hides /usr/shar= e/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/utils hides /usr/share/ema= cs/site-lisp/elpa/meson-mode-0.2/utils /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-autoloads hides= /usr/share/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode-autoloads /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-pkg hides /usr/= share/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode-pkg /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode-autoloads hi= des /usr/share/emacs/site-lisp/elpa/nginx-mode-1.1.9/nginx-mode-autoloads /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode hides /usr/s= hare/emacs/site-lisp/elpa/nginx-mode-1.1.9/nginx-mode /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode-pkg hides /u= sr/share/emacs/site-lisp/elpa/nginx-mode-1.1.9/nginx-mode-pkg /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm hides /usr/share= /emacs/site-lisp/elpa/vterm-0.0.2/vterm /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm-pkg hides /usr/s= hare/emacs/site-lisp/elpa/vterm-0.0.2/vterm-pkg /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm-autoloads hides = /usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm-autoloads /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode-pkg hides /usr/= share/emacs/site-lisp/elpa/web-mode-17.0.2/web-mode-pkg /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode-autoloads hides= /usr/share/emacs/site-lisp/elpa/web-mode-17.0.2/web-mode-autoloads /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode hides /usr/shar= e/emacs/site-lisp/elpa/web-mode-17.0.2/web-mode /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor-pkg hides /= usr/share/emacs/site-lisp/elpa/with-editor-3.0.5/with-editor-pkg /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor hides /usr/= share/emacs/site-lisp/elpa/with-editor-3.0.5/with-editor /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor-autoloads h= ides /usr/share/emacs/site-lisp/elpa/with-editor-3.0.5/with-editor-autoloads /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc hides /usr/share/e= macs/site-lisp/elpa/xml-rpc-1.6.16/xml-rpc /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc-pkg hides /usr/sha= re/emacs/site-lisp/elpa/xml-rpc-1.6.16/xml-rpc-pkg /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc-autoloads hides /u= sr/share/emacs/site-lisp/elpa/xml-rpc-1.6.16/xml-rpc-autoloads /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet-autoloads hide= s /usr/share/emacs/site-lisp/elpa/yasnippet-0.14.0/yasnippet-autoloads /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet-pkg hides /usr= /share/emacs/site-lisp/elpa/yasnippet-0.14.0/yasnippet-pkg /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet hides /usr/sha= re/emacs/site-lisp/elpa/yasnippet-0.14.0/yasnippet /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets hides /usr/share/emacs/site-lisp/elpa/yasnippet-snippets-2022071= 3/yasnippet-snippets /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets-pkg hides /usr/share/emacs/site-lisp/elpa/yasnippet-snippets-202= 20713/yasnippet-snippets-pkg /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets-autoloads hides /usr/share/emacs/site-lisp/elpa/yasnippet-snippe= ts-20220713/yasnippet-snippets-autoloads /usr/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window-autoloads hide= s /usr/share/emacs/site-lisp/elpa-src/ace-window-0.10.0/ace-window-autoloads /usr/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window-pkg hides /usr= /share/emacs/site-lisp/elpa-src/ace-window-0.10.0/ace-window-pkg /usr/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window hides /usr/sha= re/emacs/site-lisp/elpa-src/ace-window-0.10.0/ace-window /usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode-autoloads hid= es /usr/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode-autolo= ads /usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode-pkg hides /us= r/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode-pkg /usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode hides /usr/sh= are/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode /usr/share/emacs/site-lisp/elpa/avy-0.5.0/avy hides /usr/share/emacs/site-l= isp/elpa-src/avy-0.5.0/avy /usr/share/emacs/site-lisp/elpa/avy-0.5.0/avy-autoloads hides /usr/share/em= acs/site-lisp/elpa-src/avy-0.5.0/avy-autoloads /usr/share/emacs/site-lisp/elpa/avy-0.5.0/avy-pkg hides /usr/share/emacs/si= te-lisp/elpa-src/avy-0.5.0/avy-pkg /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote hides /usr/share/em= acs/site-lisp/elpa-src/boxquote-2.2/boxquote /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-autoloads hides /us= r/share/emacs/site-lisp/elpa-src/boxquote-2.2/boxquote-autoloads /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-pkg hides /usr/shar= e/emacs/site-lisp/elpa-src/boxquote-2.2/boxquote-pkg /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode hides /usr/sh= are/emacs/site-lisp/elpa-src/cmake-mode-3.25.1/cmake-mode /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode-autoloads hid= es /usr/share/emacs/site-lisp/elpa-src/cmake-mode-3.25.1/cmake-mode-autoloa= ds /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode-pkg hides /us= r/share/emacs/site-lisp/elpa-src/cmake-mode-3.25.1/cmake-mode-pkg /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-dabbrev hides /usr/= share/emacs/site-lisp/elpa-src/company-0.9.13/company-dabbrev /usr/share/emacs/site-lisp/elpa/company-0.9.13/async-tests hides /usr/share= /emacs/site-lisp/elpa-src/company-0.9.13/async-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-capf hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-capf /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-yasnippet hides /us= r/share/emacs/site-lisp/elpa-src/company-0.9.13/company-yasnippet /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-ispell hides /usr/s= hare/emacs/site-lisp/elpa-src/company-0.9.13/company-ispell /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-etags hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-etags /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-template hides /usr= /share/emacs/site-lisp/elpa-src/company-0.9.13/company-template /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-abbrev hides /usr/s= hare/emacs/site-lisp/elpa-src/company-0.9.13/company-abbrev /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-files hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-files /usr/share/emacs/site-lisp/elpa/company-0.9.13/template-tests hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/template-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-xcode hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-xcode /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-css hides /usr/shar= e/emacs/site-lisp/elpa-src/company-0.9.13/company-css /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-tests hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/bbdb-tests hides /usr/share/= emacs/site-lisp/elpa-src/company-0.9.13/bbdb-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-dabbrev-code hides = /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-dabbrev-code /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-pkg hides /usr/shar= e/emacs/site-lisp/elpa-src/company-0.9.13/company-pkg /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-oddmuse hides /usr/= share/emacs/site-lisp/elpa-src/company-0.9.13/company-oddmuse /usr/share/emacs/site-lisp/elpa/company-0.9.13/clang-tests hides /usr/share= /emacs/site-lisp/elpa-src/company-0.9.13/clang-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-bbdb hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-bbdb /usr/share/emacs/site-lisp/elpa/company-0.9.13/transformers-tests hides /us= r/share/emacs/site-lisp/elpa-src/company-0.9.13/transformers-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/frontends-tests hides /usr/s= hare/emacs/site-lisp/elpa-src/company-0.9.13/frontends-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/core-tests hides /usr/share/= emacs/site-lisp/elpa-src/company-0.9.13/core-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company hides /usr/share/em= acs/site-lisp/elpa-src/company-0.9.13/company /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-clang hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-clang /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-nxml hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-nxml /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-gtags hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-gtags /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-tempo hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-tempo /usr/share/emacs/site-lisp/elpa/company-0.9.13/capf-tests hides /usr/share/= emacs/site-lisp/elpa-src/company-0.9.13/capf-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-autoloads hides /us= r/share/emacs/site-lisp/elpa-src/company-0.9.13/company-autoloads /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-cmake hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-cmake /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-tng hides /usr/shar= e/emacs/site-lisp/elpa-src/company-0.9.13/company-tng /usr/share/emacs/site-lisp/elpa/company-0.9.13/keywords-tests hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/keywords-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-elisp hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-elisp /usr/share/emacs/site-lisp/elpa/company-0.9.13/all hides /usr/share/emacs/s= ite-lisp/elpa-src/company-0.9.13/all /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-semantic hides /usr= /share/emacs/site-lisp/elpa-src/company-0.9.13/company-semantic /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-eclim hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-eclim /usr/share/emacs/site-lisp/elpa/company-0.9.13/files-tests hides /usr/share= /emacs/site-lisp/elpa-src/company-0.9.13/files-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/elisp-tests hides /usr/share= /emacs/site-lisp/elpa-src/company-0.9.13/elisp-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-keywords hides /usr= /share/emacs/site-lisp/elpa-src/company-0.9.13/company-keywords /usr/share/emacs/site-lisp/elpa/company-0.9.13/cmake-tests hides /usr/share= /emacs/site-lisp/elpa-src/company-0.9.13/cmake-tests /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-autoloads hides /u= sr/share/emacs/site-lisp/elpa-src/csv-mode-1.22/csv-mode-autoloads /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode hides /usr/share/e= macs/site-lisp/elpa-src/csv-mode-1.22/csv-mode /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-tests hides /usr/s= hare/emacs/site-lisp/elpa-src/csv-mode-1.22/csv-mode-tests /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-pkg hides /usr/sha= re/emacs/site-lisp/elpa-src/csv-mode-1.22/csv-mode-pkg /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash hides /usr/share/emacs/s= ite-lisp/elpa-src/dash-2.19.1/dash /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash-pkg hides /usr/share/ema= cs/site-lisp/elpa-src/dash-2.19.1/dash-pkg /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash-autoloads hides /usr/sha= re/emacs/site-lisp/elpa-src/dash-2.19.1/dash-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el-autoloads hides /= usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-el-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-sources hides /usr/shar= e/emacs/site-lisp/elpa-src/debian-el-37.19/apt-sources /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-bug hides /usr/share= /emacs/site-lisp/elpa-src/debian-el-37.19/debian-bug /usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-utils hides /usr/share/= emacs/site-lisp/elpa-src/debian-el-37.19/apt-utils /usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-deb822-sources hides /u= sr/share/emacs/site-lisp/elpa-src/debian-el-37.19/apt-deb822-sources /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el-pkg hides /usr/sh= are/emacs/site-lisp/elpa-src/debian-el-37.19/debian-el-pkg /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr= /share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/gnus-BTS hides /usr/share/e= macs/site-lisp/elpa-src/debian-el-37.19/gnus-BTS /usr/share/emacs/site-lisp/elpa/debian-el-37.19/deb-view hides /usr/share/e= macs/site-lisp/elpa-src/debian-el-37.19/deb-view /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el hides /usr/share/= emacs/site-lisp/elpa-src/debian-el-37.19/debian-el /usr/share/emacs/site-lisp/elpa/debian-el-37.19/preseed hides /usr/share/em= acs/site-lisp/elpa-src/debian-el-37.19/preseed /usr/share/emacs/site-lisp/elpa/debpaste-0.1.5/debpaste hides /usr/share/em= acs/site-lisp/elpa-src/debpaste-0.1.5/debpaste /usr/share/emacs/site-lisp/elpa/debpaste-0.1.5/debpaste-pkg hides /usr/shar= e/emacs/site-lisp/elpa-src/debpaste-0.1.5/debpaste-pkg /usr/share/emacs/site-lisp/elpa/debpaste-0.1.5/debpaste-autoloads hides /us= r/share/emacs/site-lisp/elpa-src/debpaste-0.1.5/debpaste-autoloads /usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts hides /usr/share/e= macs/site-lisp/elpa-src/devscripts-40/devscripts /usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts-autoloads hides /u= sr/share/emacs/site-lisp/elpa-src/devscripts-40/devscripts-autoloads /usr/share/emacs/site-lisp/elpa/devscripts-40/pbuilder-mode hides /usr/shar= e/emacs/site-lisp/elpa-src/devscripts-40/pbuilder-mode /usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts-pkg hides /usr/sha= re/emacs/site-lisp/elpa-src/devscripts-40/devscripts-pkg /usr/share/emacs/site-lisp/elpa/devscripts-40/pbuilder-log-view-mode hides = /usr/share/emacs/site-lisp/elpa-src/devscripts-40/pbuilder-log-view-mode /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode hides= /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfile-mode /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode-autol= oads hides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfi= le-mode-autoloads /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode-pkg h= ides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfile-mod= e-pkg /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-bts-control hides = /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-bts-control /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-changelog-mode hid= es /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-changelog-m= ode /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-autopkgtest-contro= l-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-a= utopkgtest-control-mode /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-el-autoloads hid= es /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-el-autolo= ads /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-el-pkg hides /us= r/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-el-pkg /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-el hides /usr/sh= are/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-el /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-control-mode hides= /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-control-mode /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-copyright hides /u= sr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-copyright /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-common-utils hid= es /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-common-ut= ils /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/readme-debian hides /usr/= share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/readme-debian /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-search hides /usr/sha= re/emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-search /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-lib hides /usr/share/= emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-lib /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-log hides /usr/share/= emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-log /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-db hides /usr/share/e= macs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-db /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/xml-query hides /usr/share/e= macs/site-lisp/elpa-src/elfeed-3.4.1/xml-query /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-csv hides /usr/share/= emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-csv /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-pkg hides /usr/share/= emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-pkg /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed hides /usr/share/emac= s/site-lisp/elpa-src/elfeed-3.4.1/elfeed /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-curl hides /usr/share= /emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-curl /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-link hides /usr/share= /emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-link /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-autoloads hides /usr/= share/emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-autoloads /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-show hides /usr/share= /emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-show /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-repeat hides /usr/share/= emacs/site-lisp/elpa-src/evil-1.14.2/evil-repeat /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-vars hides /usr/share/em= acs/site-lisp/elpa-src/evil-1.14.2/evil-vars /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-states hides /usr/share/= emacs/site-lisp/elpa-src/evil-1.14.2/evil-states /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-keybindings hides /usr/s= hare/emacs/site-lisp/elpa-src/evil-1.14.2/evil-keybindings /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-pkg hides /usr/share/ema= cs/site-lisp/elpa-src/evil-1.14.2/evil-pkg /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-search hides /usr/share/= emacs/site-lisp/elpa-src/evil-1.14.2/evil-search /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-integration hides /usr/s= hare/emacs/site-lisp/elpa-src/evil-1.14.2/evil-integration /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-digraphs hides /usr/shar= e/emacs/site-lisp/elpa-src/evil-1.14.2/evil-digraphs /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-commands hides /usr/shar= e/emacs/site-lisp/elpa-src/evil-1.14.2/evil-commands /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil hides /usr/share/emacs/s= ite-lisp/elpa-src/evil-1.14.2/evil /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-jumps hides /usr/share/e= macs/site-lisp/elpa-src/evil-1.14.2/evil-jumps /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-autoloads hides /usr/sha= re/emacs/site-lisp/elpa-src/evil-1.14.2/evil-autoloads /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-types hides /usr/share/e= macs/site-lisp/elpa-src/evil-1.14.2/evil-types /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-core hides /usr/share/em= acs/site-lisp/elpa-src/evil-1.14.2/evil-core /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-macros hides /usr/share/= emacs/site-lisp/elpa-src/evil-1.14.2/evil-macros /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-maps hides /usr/share/em= acs/site-lisp/elpa-src/evil-1.14.2/evil-maps /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-common hides /usr/share/= emacs/site-lisp/elpa-src/evil-1.14.2/evil-common /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-command-window hides /us= r/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-command-window /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-ex hides /usr/share/emac= s/site-lisp/elpa-src/evil-1.14.2/evil-ex /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell hides /usr/share/emacs/site-lisp/elpa-src/exec-path-from-shell-1.12/ex= ec-path-from-shell /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell-autoloads hides /usr/share/emacs/site-lisp/elpa-src/exec-path-from-she= ll-1.12/exec-path-from-shell-autoloads /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell-pkg hides /usr/share/emacs/site-lisp/elpa-src/exec-path-from-shell-1.1= 2/exec-path-from-shell-pkg /home/xiyueden/.config/emacs/elpa/magit-4.3.6/git-commit hides /usr/share/e= macs/site-lisp/elpa-src/git-commit-3.3.0/git-commit /usr/share/emacs/site-lisp/elpa/git-commit-3.3.0/git-commit-autoloads hides= /usr/share/emacs/site-lisp/elpa-src/git-commit-3.3.0/git-commit-autoloads /usr/share/emacs/site-lisp/elpa/git-commit-3.3.0/git-commit-pkg hides /usr/= share/emacs/site-lisp/elpa-src/git-commit-3.3.0/git-commit-pkg /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes hides /usr/shar= e/emacs/site-lisp/elpa-src/git-modes-1.4.0/git-modes /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes-pkg hides /usr/= share/emacs/site-lisp/elpa-src/git-modes-1.4.0/git-modes-pkg /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes-autoloads hides= /usr/share/emacs/site-lisp/elpa-src/git-modes-1.4.0/git-modes-autoloads /usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.0/gitattributes-mode= -pkg hides /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4.0/git= attributes-mode-pkg /usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.0/gitattributes-mode= -autoloads hides /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4= .0/gitattributes-mode-autoloads /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitattributes-mode hides = /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4.0/gitattributes-= mode /usr/share/emacs/site-lisp/elpa/gitconfig-mode-1.4.0/gitconfig-mode-autoloa= ds hides /usr/share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.0/gitconfig= -mode-autoloads /usr/share/emacs/site-lisp/elpa/gitconfig-mode-1.4.0/gitconfig-mode-pkg hid= es /usr/share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.0/gitconfig-mode-= pkg /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitconfig-mode hides /usr= /share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.0/gitconfig-mode /usr/share/emacs/site-lisp/elpa/gitignore-mode-1.4.0/gitignore-mode-pkg hid= es /usr/share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.0/gitignore-mode-= pkg /usr/share/emacs/site-lisp/elpa/gitignore-mode-1.4.0/gitignore-mode-autoloa= ds hides /usr/share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.0/gitignore= -mode-autoloads /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitignore-mode hides /usr= /share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.0/gitignore-mode /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot hides /usr/share/ema= cs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-autoloads hides /usr= /share/emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr= /share/emacs/site-lisp/elpa-src/gnuplot-0.8.0/debian-autoloads /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-pkg hides /usr/share= /emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-pkg /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-context hides /usr/s= hare/emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-context /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-gui hides /usr/share= /emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-gui /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode hides /usr/share/emac= s/site-lisp/elpa-src/go-mode-1.6.0/go-mode /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-guru hides /usr/share/emac= s/site-lisp/elpa-src/go-mode-1.6.0/go-guru /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode-pkg hides /usr/share/= emacs/site-lisp/elpa-src/go-mode-1.6.0/go-mode-pkg /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode-autoloads hides /usr/= share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-mode-autoloads /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-rename hides /usr/share/em= acs/site-lisp/elpa-src/go-mode-1.6.0/go-rename /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg hides /usr/share/= emacs/site-lisp/elpa-src/goto-chg-1.7.3/goto-chg /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg-pkg hides /usr/sh= are/emacs/site-lisp/elpa-src/goto-chg-1.7.3/goto-chg-pkg /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg-autoloads hides /= usr/share/emacs/site-lisp/elpa-src/goto-chg-1.7.3/goto-chg-autoloads /usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode-a= utoloads hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/= graphviz-dot-mode-autoloads /usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/company-graphviz-do= t hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/company= -graphviz-dot /usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode-p= kg hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphv= iz-dot-mode-pkg /usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode h= ides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphviz-d= ot-mode /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode hides /usr/sha= re/emacs/site-lisp/elpa-src/lua-mode-20210802/lua-mode /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode-autoloads hide= s /usr/share/emacs/site-lisp/elpa-src/lua-mode-20210802/lua-mode-autoloads /usr/share/emacs/site-lisp/elpa/lua-mode-20210802/init-tryout hides /usr/sh= are/emacs/site-lisp/elpa-src/lua-mode-20210802/init-tryout /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode-pkg hides /usr= /share/emacs/site-lisp/elpa-src/lua-mode-20210802/lua-mode-pkg /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-remote hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-remote /home/xiyueden/.config/emacs/elpa/magit-4.3.6/git-rebase hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/git-rebase /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-bisect hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-bisect /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-margin hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-margin /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-merge hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-merge /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section hides /= usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-section /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-patch hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-patch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-commit hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-commit /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-autoloads hides /usr/sh= are/emacs/site-lisp/elpa-src/magit-3.3.0/magit-autoloads /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-files hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-files /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-stash hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-stash /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-bookmark hides /usr/sha= re/emacs/site-lisp/elpa-src/magit-3.3.0/magit-bookmark /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-submodule hides /usr/sh= are/emacs/site-lisp/elpa-src/magit-3.3.0/magit-submodule /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-apply hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-apply /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-repos hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-repos /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-core hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-core /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-subtree hides /usr/shar= e/emacs/site-lisp/elpa-src/magit-3.3.0/magit-subtree /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-autorevert hides /usr/s= hare/emacs/site-lisp/elpa-src/magit-3.3.0/magit-autorevert /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-gitignore hides /usr/sh= are/emacs/site-lisp/elpa-src/magit-3.3.0/magit-gitignore /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-transient hides /usr/sh= are/emacs/site-lisp/elpa-src/magit-3.3.0/magit-transient /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-extras hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-extras /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-git hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-git /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-notes hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-notes /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-reflog hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-reflog /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-mode hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-mode /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-push hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-push /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-tag hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-tag /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-process hides /usr/shar= e/emacs/site-lisp/elpa-src/magit-3.3.0/magit-process /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-ediff hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-ediff /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit hides /usr/share/emacs/= site-lisp/elpa-src/magit-3.3.0/magit /usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-imenu hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-imenu /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-diff hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-diff /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-clone hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-clone /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-log hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-log /usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-utils hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-utils /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-wip hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-wip /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-branch hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-branch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-pull hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-pull /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-reset hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-reset /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-sequence hides /usr/sha= re/emacs/site-lisp/elpa-src/magit-3.3.0/magit-sequence /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-status hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-status /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-refs hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-refs /usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-obsolete hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-obsolete /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-fetch hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-fetch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-worktree hides /usr/sha= re/emacs/site-lisp/elpa-src/magit-3.3.0/magit-worktree /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-blame hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-blame /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-pkg hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-pkg /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section-autoloa= ds hides /usr/share/emacs/site-lisp/elpa-src/magit-section-3.3.0/magit-sect= ion-autoloads /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section hides /= usr/share/emacs/site-lisp/elpa-src/magit-section-3.3.0/magit-section /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section-pkg hid= es /usr/share/emacs/site-lisp/elpa-src/magit-section-3.3.0/magit-section-pkg /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode hides /usr/shar= e/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/utils hides /usr/share/ema= cs/site-lisp/elpa-src/meson-mode-0.2/utils /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-autoloads hides= /usr/share/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode-autoloads /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-pkg hides /usr/= share/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode-pkg /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode-autoloads hi= des /usr/share/emacs/site-lisp/elpa-src/nginx-mode-1.1.9/nginx-mode-autoloa= ds /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode-pkg hides /u= sr/share/emacs/site-lisp/elpa-src/nginx-mode-1.1.9/nginx-mode-pkg /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode hides /usr/s= hare/emacs/site-lisp/elpa-src/nginx-mode-1.1.9/nginx-mode /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-query hides /usr/share= /emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-query /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-jump hides /usr/share/= emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-jump /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-autoloads hides /usr/s= hare/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-autoloads /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-show hides /usr/share/= emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-show /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-maildir-fcc hides /usr= /share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-maildir-fcc /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-wash hides /usr/share/= emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-wash /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-draft hides /usr/share= /emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-draft /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-mua hides /usr/share/e= macs/site-lisp/elpa-src/notmuch-0.39/notmuch-mua /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-compat hides /usr/shar= e/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-compat /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-parser hides /usr/shar= e/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-parser /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-tree hides /usr/share/= emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-tree /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-pkg hides /usr/share/e= macs/site-lisp/elpa-src/notmuch-0.39/notmuch-pkg /usr/share/emacs/site-lisp/elpa/notmuch-0.39/coolj hides /usr/share/emacs/s= ite-lisp/elpa-src/notmuch-0.39/coolj /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-message hides /usr/sha= re/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-message /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-address hides /usr/sha= re/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-address /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-version hides /usr/sha= re/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-version /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-tag hides /usr/share/e= macs/site-lisp/elpa-src/notmuch-0.39/notmuch-tag /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch hides /usr/share/emacs= /site-lisp/elpa-src/notmuch-0.39/notmuch /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-crypto hides /usr/shar= e/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-crypto /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-lib hides /usr/share/e= macs/site-lisp/elpa-src/notmuch-0.39/notmuch-lib /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-print hides /usr/share= /emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-print /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-hello hides /usr/share= /emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-hello /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-company hides /usr/sha= re/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-company /usr/share/emacs/site-lisp/elpa/oauth2-0.17/oauth2 hides /usr/share/emacs/s= ite-lisp/elpa-src/oauth2-0.17/oauth2 /usr/share/emacs/site-lisp/elpa/oauth2-0.17/oauth2-autoloads hides /usr/sha= re/emacs/site-lisp/elpa-src/oauth2-0.17/oauth2-autoloads /usr/share/emacs/site-lisp/elpa/oauth2-0.17/oauth2-pkg hides /usr/share/ema= cs/site-lisp/elpa-src/oauth2-0.17/oauth2-pkg /usr/share/emacs/site-lisp/elpa/paredit-26/paredit-autoloads hides /usr/sha= re/emacs/site-lisp/elpa-src/paredit-26/paredit-autoloads /usr/share/emacs/site-lisp/elpa/paredit-26/paredit-pkg hides /usr/share/ema= cs/site-lisp/elpa-src/paredit-26/paredit-pkg /usr/share/emacs/site-lisp/elpa/paredit-26/paredit hides /usr/share/emacs/s= ite-lisp/elpa-src/paredit-26/paredit /usr/share/emacs/site-lisp/elpa/po-mode-0.21/po-mode-pkg hides /usr/share/e= macs/site-lisp/elpa-src/po-mode-0.21/po-mode-pkg /usr/share/emacs/site-lisp/elpa/po-mode-0.21/po-mode-autoloads hides /usr/s= hare/emacs/site-lisp/elpa-src/po-mode-0.21/po-mode-autoloads /usr/share/emacs/site-lisp/elpa/po-mode-0.21/po-mode hides /usr/share/emacs= /site-lisp/elpa-src/po-mode-0.21/po-mode /usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort hides /usr/share/e= macs/site-lisp/elpa-src/py-isort-2016.1/py-isort /usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort-autoloads hides /u= sr/share/emacs/site-lisp/elpa-src/py-isort-2016.1/py-isort-autoloads /usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort-pkg hides /usr/sha= re/emacs/site-lisp/elpa-src/py-isort-2016.1/py-isort-pkg /usr/share/emacs/site-lisp/elpa/pyvenv-1.21/pyvenv hides /usr/share/emacs/s= ite-lisp/elpa-src/pyvenv-1.21/pyvenv /usr/share/emacs/site-lisp/elpa/pyvenv-1.21/pyvenv-pkg hides /usr/share/ema= cs/site-lisp/elpa-src/pyvenv-1.21/pyvenv-pkg /usr/share/emacs/site-lisp/elpa/pyvenv-1.21/pyvenv-autoloads hides /usr/sha= re/emacs/site-lisp/elpa-src/pyvenv-1.21/pyvenv-autoloads /usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm-load-path hides /usr/shar= e/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-load-path /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm hides /usr/share= /emacs/site-lisp/elpa-src/vterm-0.0.2/vterm /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm-pkg hides /usr/s= hare/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-pkg /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm-autoloads hides = /usr/share/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-autoloads /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode-pkg hides /usr/= share/emacs/site-lisp/elpa-src/web-mode-17.0.2/web-mode-pkg /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode-autoloads hides= /usr/share/emacs/site-lisp/elpa-src/web-mode-17.0.2/web-mode-autoloads /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode hides /usr/shar= e/emacs/site-lisp/elpa-src/web-mode-17.0.2/web-mode /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor-pkg hides /= usr/share/emacs/site-lisp/elpa-src/with-editor-3.0.5/with-editor-pkg /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor-autoloads h= ides /usr/share/emacs/site-lisp/elpa-src/with-editor-3.0.5/with-editor-auto= loads /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor hides /usr/= share/emacs/site-lisp/elpa-src/with-editor-3.0.5/with-editor /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc hides /usr/share/e= macs/site-lisp/elpa-src/xml-rpc-1.6.16/xml-rpc /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc-pkg hides /usr/sha= re/emacs/site-lisp/elpa-src/xml-rpc-1.6.16/xml-rpc-pkg /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc-autoloads hides /u= sr/share/emacs/site-lisp/elpa-src/xml-rpc-1.6.16/xml-rpc-autoloads /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet-autoloads hide= s /usr/share/emacs/site-lisp/elpa-src/yasnippet-0.14.0/yasnippet-autoloads /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet-pkg hides /usr= /share/emacs/site-lisp/elpa-src/yasnippet-0.14.0/yasnippet-pkg /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet hides /usr/sha= re/emacs/site-lisp/elpa-src/yasnippet-0.14.0/yasnippet /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-snippets-202= 20713/yasnippet-snippets /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets-pkg hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-snippets= -20220713/yasnippet-snippets-pkg /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets-autoloads hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-sn= ippets-20220713/yasnippet-snippets-autoloads /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.8.0/zenburn-theme hides /us= r/share/emacs/site-lisp/elpa-src/zenburn-theme-2.8.0/zenburn-theme /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.8.0/zenburn-theme-pkg hides= /usr/share/emacs/site-lisp/elpa-src/zenburn-theme-2.8.0/zenburn-theme-pkg /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.8.0/zenburn-theme-autoloads= hides /usr/share/emacs/site-lisp/elpa-src/zenburn-theme-2.8.0/zenburn-them= e-autoloads /home/xiyueden/.config/emacs/elpa/transient-0.9.1/transient hides /usr/shar= e/emacs/30.1/lisp/transient /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-julia hides /usr/share/emac= s/30.1/lisp/org/ob-julia /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-entities hides /usr/share/= emacs/30.1/lisp/org/org-entities /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-w3m hides /usr/share/emacs/= 30.1/lisp/org/ol-w3m /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-publish hides /usr/share/em= acs/30.1/lisp/org/ox-publish /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-faces hides /usr/share/ema= cs/30.1/lisp/org/org-faces /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-docview hides /usr/share/em= acs/30.1/lisp/org/ol-docview /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-haskell hides /usr/share/em= acs/30.1/lisp/org/ob-haskell /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc-biblatex hides /usr/share/e= macs/30.1/lisp/org/oc-biblatex /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-odt hides /usr/share/emacs/= 30.1/lisp/org/ox-odt /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-forth hides /usr/share/emac= s/30.1/lisp/org/ob-forth /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-element-ast hides /usr/sha= re/emacs/30.1/lisp/org/org-element-ast /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-feed hides /usr/share/emac= s/30.1/lisp/org/org-feed /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-clojure hides /usr/share/em= acs/30.1/lisp/org/ob-clojure /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-refile hides /usr/share/em= acs/30.1/lisp/org/org-refile /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-cycle hides /usr/share/ema= cs/30.1/lisp/org/org-cycle /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-icalendar hides /usr/share/= emacs/30.1/lisp/org/ox-icalendar /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-C hides /usr/share/emacs/30= .1/lisp/org/ob-C /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-calc hides /usr/share/emacs= /30.1/lisp/org/ob-calc /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-mouse hides /usr/share/ema= cs/30.1/lisp/org/org-mouse /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-goto hides /usr/share/emac= s/30.1/lisp/org/org-goto /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-rmail hides /usr/share/emac= s/30.1/lisp/org/ol-rmail /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-eshell hides /usr/share/ema= cs/30.1/lisp/org/ol-eshell /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-comint hides /usr/share/ema= cs/30.1/lisp/org/ob-comint /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-id hides /usr/share/emacs/= 30.1/lisp/org/org-id /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-crypt hides /usr/share/ema= cs/30.1/lisp/org/org-crypt /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-emacs-lisp hides /usr/share= /emacs/30.1/lisp/org/ob-emacs-lisp /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-html hides /usr/share/emacs= /30.1/lisp/org/ox-html /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-indent hides /usr/share/em= acs/30.1/lisp/org/org-indent /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-ascii hides /usr/share/emac= s/30.1/lisp/org/ox-ascii /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc-csl hides /usr/share/emacs/= 30.1/lisp/org/oc-csl /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-latex hides /usr/share/emac= s/30.1/lisp/org/ob-latex /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-lisp hides /usr/share/emacs= /30.1/lisp/org/ob-lisp /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-beamer hides /usr/share/ema= cs/30.1/lisp/org/ox-beamer /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-macs hides /usr/share/emac= s/30.1/lisp/org/org-macs /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-perl hides /usr/share/emacs= /30.1/lisp/org/ob-perl /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc-bibtex hides /usr/share/ema= cs/30.1/lisp/org/oc-bibtex /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-colview hides /usr/share/e= macs/30.1/lisp/org/org-colview /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-lilypond hides /usr/share/e= macs/30.1/lisp/org/ob-lilypond /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-eshell hides /usr/share/ema= cs/30.1/lisp/org/ob-eshell /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-protocol hides /usr/share/= emacs/30.1/lisp/org/org-protocol /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-timer hides /usr/share/ema= cs/30.1/lisp/org/org-timer /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-table hides /usr/share/ema= cs/30.1/lisp/org/org-table /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-mobile hides /usr/share/em= acs/30.1/lisp/org/org-mobile /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-latex hides /usr/share/emac= s/30.1/lisp/org/ox-latex /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-lob hides /usr/share/emacs/= 30.1/lisp/org/ob-lob /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-maxima hides /usr/share/ema= cs/30.1/lisp/org/ob-maxima /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-sed hides /usr/share/emacs/= 30.1/lisp/org/ob-sed /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-octave hides /usr/share/ema= cs/30.1/lisp/org/ob-octave /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox hides /usr/share/emacs/30.1= /lisp/org/ox /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-lint hides /usr/share/emac= s/30.1/lisp/org/org-lint /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-doi hides /usr/share/emacs/= 30.1/lisp/org/ol-doi /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-sqlite hides /usr/share/ema= cs/30.1/lisp/org/ob-sqlite /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-persist hides /usr/share/e= macs/30.1/lisp/org/org-persist /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-plot hides /usr/share/emac= s/30.1/lisp/org/org-plot /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-list hides /usr/share/emac= s/30.1/lisp/org/org-list /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-pcomplete hides /usr/share= /emacs/30.1/lisp/org/org-pcomplete /home/xiyueden/.config/emacs/elpa/org-9.7.30/org hides /usr/share/emacs/30.= 1/lisp/org/org /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-element hides /usr/share/e= macs/30.1/lisp/org/org-element /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-clock hides /usr/share/ema= cs/30.1/lisp/org/org-clock /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-exp hides /usr/share/emacs/= 30.1/lisp/org/ob-exp /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-inlinetask hides /usr/shar= e/emacs/30.1/lisp/org/org-inlinetask /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-ref hides /usr/share/emacs/= 30.1/lisp/org/ob-ref /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-attach hides /usr/share/em= acs/30.1/lisp/org/org-attach /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-lua hides /usr/share/emacs/= 30.1/lisp/org/ob-lua /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-core hides /usr/share/emacs= /30.1/lisp/org/ob-core /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-koma-letter hides /usr/shar= e/emacs/30.1/lisp/org/ox-koma-letter /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-awk hides /usr/share/emacs/= 30.1/lisp/org/ob-awk /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-matlab hides /usr/share/ema= cs/30.1/lisp/org/ob-matlab /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-src hides /usr/share/emacs= /30.1/lisp/org/org-src /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-groovy hides /usr/share/ema= cs/30.1/lisp/org/ob-groovy /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol hides /usr/share/emacs/30.1= /lisp/org/ol /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-fold-core hides /usr/share= /emacs/30.1/lisp/org/org-fold-core /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc hides /usr/share/emacs/30.1= /lisp/org/oc /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-gnus hides /usr/share/emacs= /30.1/lisp/org/ol-gnus /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-loaddefs hides /usr/share/= emacs/30.1/lisp/org/org-loaddefs /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-fortran hides /usr/share/em= acs/30.1/lisp/org/ob-fortran /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-org hides /usr/share/emacs/= 30.1/lisp/org/ox-org /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-version hides /usr/share/e= macs/30.1/lisp/org/org-version /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-python hides /usr/share/ema= cs/30.1/lisp/org/ob-python /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc-basic hides /usr/share/emac= s/30.1/lisp/org/oc-basic /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-man hides /usr/share/emacs/= 30.1/lisp/org/ol-man /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-tempo hides /usr/share/ema= cs/30.1/lisp/org/org-tempo /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-bbdb hides /usr/share/emacs= /30.1/lisp/org/ol-bbdb /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-table hides /usr/share/emac= s/30.1/lisp/org/ob-table /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-keys hides /usr/share/emac= s/30.1/lisp/org/org-keys /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-java hides /usr/share/emacs= /30.1/lisp/org/ob-java /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-ditaa hides /usr/share/emac= s/30.1/lisp/org/ob-ditaa /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-man hides /usr/share/emacs/= 30.1/lisp/org/ox-man /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-tangle hides /usr/share/ema= cs/30.1/lisp/org/ob-tangle /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-fold hides /usr/share/emac= s/30.1/lisp/org/org-fold /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-css hides /usr/share/emacs/= 30.1/lisp/org/ob-css /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-agenda hides /usr/share/em= acs/30.1/lisp/org/org-agenda /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-ctags hides /usr/share/ema= cs/30.1/lisp/org/org-ctags /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-texinfo hides /usr/share/em= acs/30.1/lisp/org/ox-texinfo /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob hides /usr/share/emacs/30.1= /lisp/org/ob /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-archive hides /usr/share/e= macs/30.1/lisp/org/org-archive /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-eww hides /usr/share/emacs/= 30.1/lisp/org/ol-eww /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc-natbib hides /usr/share/ema= cs/30.1/lisp/org/oc-natbib /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-ruby hides /usr/share/emacs= /30.1/lisp/org/ob-ruby /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-ocaml hides /usr/share/emac= s/30.1/lisp/org/ob-ocaml /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-mhe hides /usr/share/emacs/= 30.1/lisp/org/ol-mhe /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-screen hides /usr/share/ema= cs/30.1/lisp/org/ob-screen /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-processing hides /usr/share= /emacs/30.1/lisp/org/ob-processing /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-shell hides /usr/share/emac= s/30.1/lisp/org/ob-shell /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-num hides /usr/share/emacs= /30.1/lisp/org/org-num /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-eval hides /usr/share/emacs= /30.1/lisp/org/ob-eval /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-habit hides /usr/share/ema= cs/30.1/lisp/org/org-habit /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-compat hides /usr/share/em= acs/30.1/lisp/org/org-compat /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-info hides /usr/share/emacs= /30.1/lisp/org/ol-info /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-md hides /usr/share/emacs/3= 0.1/lisp/org/ox-md /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-plantuml hides /usr/share/e= macs/30.1/lisp/org/ob-plantuml /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-attach-git hides /usr/shar= e/emacs/30.1/lisp/org/org-attach-git /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-gnuplot hides /usr/share/em= acs/30.1/lisp/org/ob-gnuplot /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-irc hides /usr/share/emacs/= 30.1/lisp/org/ol-irc /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-org hides /usr/share/emacs/= 30.1/lisp/org/ob-org /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-datetree hides /usr/share/= emacs/30.1/lisp/org/org-datetree /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-footnote hides /usr/share/= emacs/30.1/lisp/org/org-footnote /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-dot hides /usr/share/emacs/= 30.1/lisp/org/ob-dot /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-bibtex hides /usr/share/ema= cs/30.1/lisp/org/ol-bibtex /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-sass hides /usr/share/emacs= /30.1/lisp/org/ob-sass /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-scheme hides /usr/share/ema= cs/30.1/lisp/org/ob-scheme /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-capture hides /usr/share/e= macs/30.1/lisp/org/org-capture /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-R hides /usr/share/emacs/30= .1/lisp/org/ob-R /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-duration hides /usr/share/= emacs/30.1/lisp/org/org-duration /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-makefile hides /usr/share/e= macs/30.1/lisp/org/ob-makefile /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-sql hides /usr/share/emacs/= 30.1/lisp/org/ob-sql /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-macro hides /usr/share/ema= cs/30.1/lisp/org/org-macro /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-js hides /usr/share/emacs/3= 0.1/lisp/org/ob-js Features: (shadow emacsbug debian-bug js c-ts-common imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs shortdoc boxquote comp-run comp-common rect timezone mailalias qp ace-window avy sort company-oddmuse company-keywords company-etags etags fileloop xref company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb company mail-extr misearch multi-isearch cl-print package-x help-fns radix-tree smerge-mode diff mm-archive shr-color oc-basic org-element org-persist org-id org-refile org-element-ast ol-eww eww xdg mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader range ol-docview doc-view ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi ob-octave org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie executable ob-comint org-pcomplete pcomplete org-list org-footnote org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func org-version org-compat org-macs mule-util jka-compr mastodon-media textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check mastodon-profile mastodon-auth mastodon-client mastodon mastodon-transient tp transient compat mastodon-search mastodon-widget mastodon-tl image-mode exif url-cache mastodon-toot mastodon-iso mastodon-http notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser format-spec notmuch-wash coolj goto-addr icalendar diary-lib diary-loaddefs cal-menu calendar cal-loaddefs notmuch-tag crm notmuch-lib notmuch-version notmuch-compat mm-view mml-smime smime dig elfeed-show elfeed-search message yank-media rfc822 mml mml-sec gnus-util mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader shr pixel-fill kinsoku svg dom elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib avl-tree generator url-queue url-file xml-query xml matlab matlab-sections matlab-scan matlab-syntax matlab-org matlab-compat flyspell ispell gnutls network-stream epa-file epa derived rcirc parse-time iso8601 time-date term/xterm xterm server cap-words superword subword vc-hg vc-git diff-mode track-changes vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util vc vc-dispatcher bug-reference disp-table whitespace cus-start init zenburn-theme xclip treesit-auto treesit treemacs-project-follow-mode treemacs-follow-mode treemacs-rendering treemacs-annotations treemacs-async treemacs-visuals treemacs-fringe-indicator pulse color treemacs-workspaces treemacs-dom treemacs-icons treemacs-themes treemacs-scope treemacs-core-utils treemacs-logging treemacs-customization pfuture inline ht s hl-line dash auth-source-xoauth2-plugin smtpmail sendmail mail-utils oauth2 url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm puny plstore epg rfc6068 epg-config keychain-environment exec-path-from-shell activities-tabs activities persist bookmark edmacro kmacro advice cperl-mode facemenu icomplete flymake project compile text-property-search comint ansi-osc ansi-color ring warnings thingatpt cl-extra help-mode use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core display-line-numbers autorevert filenotify cus-edit pp cus-load wid-edit activities-autoloads auctex-autoloads tex-site auth-source-xoauth2-plugin-autoloads bazel-autoloads rx bison-mode-autoloads boxquote-autoloads clojure-mode-autoloads cmake-mode-autoloads company-autoloads corfu-terminal-autoloads corfu-autoloads csv-mode-autoloads dart-mode-autoloads dockerfile-mode-autoloads elfeed-autoloads evil-autoloads exec-path-from-shell-autoloads f-autoloads format-all-autoloads git-modes-autoloads gnuplot-autoloads goto-chg-autoloads gptel-autoloads inheritenv-autoloads keychain-environment-autoloads language-id-autoloads lua-mode-autoloads magit-autoloads pcase magit-section-autoloads llama-autoloads mastodon-autoloads matlab-mode-autoloads meson-mode-autoloads nginx-mode-autoloads ol-notmuch-autoloads org-autoloads persist-autoloads popon-autoloads rust-mode-autoloads scala-mode-autoloads tp-autoloads transient-autoloads treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads hydra-autoloads lv-autoloads pfuture-autoloads s-autoloads treesit-auto-autoloads vterm-autoloads web-mode-autoloads xclip-autoloads yaml-mode-autoloads yasnippet-snippets-autoloads yasnippet-autoloads xml-rpc-autoloads debian-el dired dired-loaddefs with-editor-autoloads info dash-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo gtk x-toolkit xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 3469436 539048) (symbols 48 53556 40) (strings 32 306314 27525) (string-bytes 1 13234730) (vectors 16 125736) (vector-slots 8 2425796 192394) (floats 8 7690 58762) (intervals 56 182460 4867) (buffers 992 40)) =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmiP97wSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTPyQP/1zF109iI8Im/D8suOmsQ0Nx6PpEfcOj Cfrzyq4iDor6VteoLN8+PggbNvUprn+OxgJs+5mY84H2voY4mQxY9BbqwC/3mTL0 B/ixhgmBXlDHHKN9m8To1BArX5Go/3lGa0btMfXPIoaMlGfK5LM5B1YnX4Uptol9 bYdXoiDuYVgumuzexcjA/ZAzY+fII1nsV9I6yiHAhZYAhP+7UtRzLV0+oCY+ZSxS 0KvOEi4gWysP0kxrNa9fBzAcmLb/bbulo7uxb8UJwFKmLLtFhYrem82QQQzXGewu oBsJ/T+xbRQYLpzA1xFcuOEx9epHr42cnYjJN1kMaQbL1ifAGu4PeF0wEBaO4EhS 8HvgHb6/ed5yIIr+4VdAlSrkm/b+26MNYlsm6L2fjlU3NhKm1fDAqCw8+SRxzkWJ PBjk+p+S54a5VycFJi8x7CaFQCKZZ/TrzZX6l4hZyjRJqegy+pgyZPMhxG6LMV5V og4Rl+Dg7b+ICpRGAuraV1GRdTlCqTWK+lGBg6eJgybdC/KYM4RRfEpO2W0BfUXu t/9UoqPs3zlURyX+qo3y/81960Kq9IfMYxKUMlJVqqp5541rra1oR4/w5UWMh+KS dvPsFLyQcNwyccA2TOuq5a7GCeJj9UG///Ue/F9UsbV4NBoRyjBGrDvVCGG2YN2e OwY7u8pT4t6a =tu6G -----END PGP SIGNATURE----- --=-=-=-- From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: Proposed changes for oauth2 Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426687519747 (code B ref 79168); Mon, 04 Aug 2025 00:22:02 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:15 +0000 Received: from localhost ([127.0.0.1]:46803 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiiwy-00057d-0m for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:15 -0400 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]:53607) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiwq-000563-NQ for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:09 -0400 Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-b34a78bb6e7so2375131a12.3 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266858; x=1754871658; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=qyLtplqRFs5qvoVwCsKCc5+BqjiE/Q2IbeJFY9DuSjk=; b=Ida8GhIY9aVMaHAGnY5EAdNwdnWyNGbUvRy0rBqmCzU8R6cjDa23vdHR6dkTMPGjkI EB+BChtT/3eFBFg9yqsRgOKkI2CnlKYaxhcISf7m2n/EIwaSKjfU1MgkjSYPke43UAD3 DlQbJAFDvKK0yjr6clYYkIMhlZGlyiFESNBYo2t3FTaYDrt0WGYqNXy/QtNWqZlQnlEl w6Ew73lhpH+Ehwy4bY0/JDgBQUa1lVyZxshxSQ7Q/EJg5y+4hr1T9nt0go6RsjaBLZdL xb7hkFg+boKuj/fpswVmkhv/N6QqyaDpvQMVm4/6/oZ/nH/zRb9Whs05WutzmEDnAaLs ZfeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266858; x=1754871658; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qyLtplqRFs5qvoVwCsKCc5+BqjiE/Q2IbeJFY9DuSjk=; b=W++nQla28yu/ibyQDTPpDhu6X2ypOsMFs4+rZk39PkJn14P9n+DkZ69H08KpQuJUYB d1dUbQOO9OywWI9CbJbKrLaRewhCvrgEZ4yoPOJarGlc1vE8dbZbAcpt4btyLS5Qt2+t Xib/1NuIyPZNhYWC0izwl8pBX+PW49R5sb1u0aJlU0VotskGBAkmIPdg62XZRsv+g+E0 ZOmAh66c7Qsn1u21FTjReBlr3OIbXpDv72swAeH3RkDLVIZqEnefU16u4UplBtwf5H3z pgwyGQQr5xTnnsg8bTkdHCv1VQUGr1gGD2dj1FNjIiOMlU30eEBTCv0sK1EM9FcrO8hL P1Zg== X-Gm-Message-State: AOJu0YxgFLpZLqKBRZubu4uoifCulGI6DQxgy0IoMkAHKseNPRA2IDIC gKW1H1BdV9db1Q70kjNSV/XMYKDzUCQMTmR603PWM89zCBF+a4QCrHPFHOLrvg== X-Gm-Gg: ASbGncs8PAJgIU3uQujhXXOhmbJdG0Geh+TKPOELdNWSLP9EjRye77701SeGfhmEcNM L8qXby83gmtSdpWSbDKsFTg4Go+Q/Mq58cZwKaSP0uVGzKP5DSLXx07weti7Bp7cSusSv0IOhc6 Pxeiw2ZnlRjOtau6DRDYEhj0Flp1/UqlfW3++Bgs9jxh0bJK31wXrH8I6bX//QyIP8vLvFwIvNH ggXxIYt9sRYQ5glqVWgH85mqmcFUWn1Z4mztp7/m/kkGnTUeA6+ThnCvlWRnOg2Gq2pcMQkAh4v QNf92hNnX5MmraVeGMzt4RxpVScuiarshmpOiMQuktET5Qwzq4Nclu91qzwafqgzSuqDTtfi4PA VYzLptnrNtKpyCyHjCfNQWObmjfB5NQxrdT0BfRog6Jcqn4ZWJinQr+IJf39J+BbTk+s28/c= X-Google-Smtp-Source: AGHT+IEDz9DAtD5ILXcx9vM2+Nh2Oir8efus0cMve3E/EHJlhSCiFqLLezczfqttz68EqZr3PPiRIQ== X-Received: by 2002:a17:90b:4c88:b0:31c:3651:2d18 with SMTP id 98e67ed59e1d1-321162b20bemr10740218a91.16.1754266858161; Sun, 03 Aug 2025 17:20:58 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eba6bcfsm10155705a91.6.2025.08.03.17.20.57 for <79168@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:20:57 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id ED7F1F40636; Sun, 3 Aug 2025 17:20:56 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:38 -0700 Message-Id: <20250804002049.2462665-1-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) I propose the series of changes for oauth2 which would lead to the next release of 0.18. Each commit message explains what is done. Please let me know if anything is unclear. From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 04/11] Rename internal variables using consistent oauth2 prefix Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426687819769 (code B ref 79168); Mon, 04 Aug 2025 00:22:03 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:18 +0000 Received: from localhost ([127.0.0.1]:46805 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiix3-00058k-Ji for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:18 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]:44380) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiwr-00056A-EF for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:10 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2401b855980so28356055ad.1 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266859; x=1754871659; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DT4oEqw1dZtprZZnzOlZ6GslImPcbr9Ee52RGZ8TZAk=; b=jBXm4ofQiDOf3u25GTH+6HNnBUWG6O8TX4ZgEHKgAcN3jEXkoCICGVKRdtCVJ4XlEm V0gVUKtA2ga4XvF0VFHd8OPAmlFUB2NQS2bRbNVH9ZoszVCow0dLeqc/BhPsdRjQrP8d JU4YBPazGpF7e51e0MRewv8TTcnVuAB8O1zUZlP03s8pUv9gEKEU+/3O60dOrNXE4+CF Npcam1QJB4lDQmn60lxyYgq0PvpcKWpi3itu6m6dgrnLFWxRBuggnHIrst0FlMPzuB1T 6dY/bXRDLeeXT9epZ2DkH/wFRDsso2iaBoPmB/cOtGgQJ7kHevgJ9bAx1A+wgv/GOEjU P3PA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266859; x=1754871659; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DT4oEqw1dZtprZZnzOlZ6GslImPcbr9Ee52RGZ8TZAk=; b=tiMmgJN3WjoVnJU5DwC1oXXCAsCEs3Xgt7IE5y4i05XEmTpeOfGT9AU3RCNtqIeJyy KCqCc4/FCLOEZNXwuHVNWd28EEaDeBiO6yZtVSUa/S7qJlNsRZh3LgB0FGiIUMrCYB0i JtudnlLbtd1nSI+9z1y1oicN1sFVWbng/BxlG928rWu8gQUX4QvY2jIi/y+RChcKUzbY /1tYmeqq81C8EzsB0nQ64APBEuq2RbVODvkAKoVu2h7MTVk2CfdWhFw2Yp4SGgAyNzp1 K7p8ud9lP3sWYVkc8dCNr0Iz/4g2Km0a6Fgp4i99g93Nuz0sXRDJsqk9l3o+inaKaWOU iLxA== X-Gm-Message-State: AOJu0Yw/ioO7uz09ExND6FjKY+HzRx0EkFbpKHUzESnlhwY4UG0t2Odp LL5hafHjpptn2BCNTszuQ9Ywzn15Zj3MN85u+fdGVL2uUivhTowQr0qSqDnHJw== X-Gm-Gg: ASbGnctlDvAtAYgJl+XGj0bO9zk6fAYMp1DVnQOLtdeibwu1Z7WCB7SZPzljWMRslxy Smv6aOzQN3GnXfL7ihJtU2n/cx3HJUbFODelukAFqMlVCbe7SsSPNNWsn+x9uwv73R2yIH4xpjH RzzvHlhyg+PSs4DwYBJEqfWqfMsxwhcPmFW8Z3J6VXkk7uZr3hXXN+WkfUaqior8NdONuVHmpB7 hXzq3JMeUEK9+7z4aPGJHNBwtjX9DIVhGEIiAzFTz3DQI0qxOMUy9H4iTJ4EKkA7W2JdS6q8X9V vvl0T24WAe/muhhrW/IhD+LPHFOaO84/Wn2HuLLByMS1O4BK41Pf6xqPG3wJ5BackuT+SedfD0I pFPM2arsvz5nY4b/4tJLmyxwRyTXfkVzTxiHLCPReqF8/NqzHizTqTXrPN6v5EPLBuPVdAcAX4p VMf29GKQ== X-Google-Smtp-Source: AGHT+IHa8uMhzM29VQAvy0C/Y4W3Vn7gX22doNKj062USx/u22NQyccwdrlp5Yue2Y3iGpG7gs+JXw== X-Received: by 2002:a17:902:ef47:b0:234:9375:e07c with SMTP id d9443c01a7336-2424705defamr108247345ad.46.1754266859074; Sun, 03 Aug 2025 17:20:59 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b422bac0d14sm7793266a12.41.2025.08.03.17.20.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:20:57 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 0656EF40ACA; Sun, 3 Aug 2025 17:20:57 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:42 -0700 Message-Id: <20250804002049.2462665-5-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Adapted from bug#52476 by Aleksandr Vityazev. --- oauth2.el | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/oauth2.el b/oauth2.el index eccf439130..ef82a64c5f 100644 --- a/oauth2.el +++ b/oauth2.el @@ -61,8 +61,8 @@ (defvar oauth2-debug nil "Enable verbose logging in oauth2 to help debugging.") -(defvar oauth--url-advice nil) -(defvar oauth--token-data) +(defvar oauth2--url-advice nil) +(defvar oauth2--token-data) (defun oauth2--do-debug (&rest msg) "Output debug messages when `oauth2-debug' is enabled." @@ -231,20 +231,20 @@ This allows to store the token in an unique way." (defun oauth2-extra-headers (extra-headers) "Return EXTRA-HEADERS with `Authorization: Bearer' added." - (cons (oauth2-authz-bearer-header (oauth2-token-access-token (car oauth--token-data))) + (cons (oauth2-authz-bearer-header (oauth2-token-access-token (car oauth2--token-data))) extra-headers)) ;; FIXME: We should change URL so that this can be done without an advice. (defun oauth2--url-http-handle-authentication-hack (orig-fun &rest args) - (if (not oauth--url-advice) + (if (not oauth2--url-advice) (apply orig-fun args) (let ((url-request-method url-http-method) (url-request-data url-http-data) (url-request-extra-headers (oauth2-extra-headers url-http-extra-headers))) - (oauth2-refresh-access (car oauth--token-data)) - (url-retrieve-internal (cdr oauth--token-data) + (oauth2-refresh-access (car oauth2--token-data)) + (url-retrieve-internal (cdr oauth2--token-data) url-callback-function url-callback-arguments) ;; This is to make `url' think it's done. @@ -257,8 +257,8 @@ This allows to store the token in an unique way." (defun oauth2-url-retrieve-synchronously (token url &optional request-method request-data request-extra-headers) "Retrieve an URL synchronously using TOKEN to access it. TOKEN can be obtained with `oauth2-auth'." - (let* ((oauth--token-data (cons token url))) - (let ((oauth--url-advice t) ;Activate our advice. + (let* ((oauth2--token-data (cons token url))) + (let ((oauth2--url-advice t) ;Activate our advice. (url-request-method request-method) (url-request-data request-data) (url-request-extra-headers @@ -273,8 +273,8 @@ TOKEN can be obtained with `oauth2-auth'." TOKEN can be obtained with `oauth2-auth'. CALLBACK gets called with CBARGS when finished. See `url-retrieve'." ;; TODO add support for SILENT and INHIBIT-COOKIES. How to handle this in `url-http-handle-authentication'. - (let* ((oauth--token-data (cons token url))) - (let ((oauth--url-advice t) ;Activate our advice. + (let* ((oauth2--token-data (cons token url))) + (let ((oauth2--url-advice t) ;Activate our advice. (url-request-method request-method) (url-request-data request-data) (url-request-extra-headers -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 02/11] Untabify source code Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426687819781 (code B ref 79168); Mon, 04 Aug 2025 00:22:03 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:18 +0000 Received: from localhost ([127.0.0.1]:46807 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiix4-00058s-Cw for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:18 -0400 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]:59440) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiwq-000565-V1 for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:11 -0400 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-2402bbb4bf3so32389975ad.2 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266858; x=1754871658; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0jV9HpC5S6Fm2ovNCT+u/3/N4MGpq4BrTFBoXtmwJZc=; b=YaRUdJsw+B7keBpnrJKBlNuG3I7MzLphrbVR/+qDQTXtG+Ys9trlQXyL40UCd8LVJZ nxqQGmXlpWErf+wb5jPJhamnVS8EGf79VuiRjudKuChAo//ojPTXkRxXDKEjTmHiFBeB wjO+YlzIDDl9M3n/uRfIty3sfnb6qwIgaCQ0yIPny/0uuRKO7sTvgGXtV/0RX7MWADWA nbOyJN8MpDv7UcaEf2YHtfcVPEqz6+rlbke8Z0f+/9/PuPCYYOuBd4z0tstB+2q8IB0u 58eSspUxuPQKN6rUKos2p6DJPUPtuS2a2NlbB0ub8iZ3VFS2f0N165oFMK5vlNDtWWir CKrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266858; x=1754871658; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0jV9HpC5S6Fm2ovNCT+u/3/N4MGpq4BrTFBoXtmwJZc=; b=RonYKF8w5Pd116lYueEKzoBMvCCnn3FESidlHwiaO+veFIKpmUUWuQIN0myD5XckNk KklvdyVEoNv3LR0TFnCQervnqHSd2LSSWWraW7yzThdhSHWudrIHIoS2aFzSXaITYskc r9RazrzLW011Ii4fciagUTLrJRIjukoQybmS58EvxTHgp4DuBLr2GfYUHIAVqwopEYjy dtRQ+DpONjfj2jEul0ogZiOJd9KrHfCe9KRT0dYzeB5UeTOh/nXiHlaPam/Vyz6r50Qv D7u6aaX08hXuFMW645pddm8fHaaOq9sW0G4iVbqCdP1tW5Iavho87QYwLhp05vEM7ZWQ yZfg== X-Gm-Message-State: AOJu0YwQMt1c8YzMLk1Y7vqteohH05GV4g34Zeyqa9reS7ecV2Szz39p t9CtVhp2lGVa0AIfbOtppo4ZBRWv2CuvezU/vRQuKR1gCmLrQetAx7z1oayOrQ== X-Gm-Gg: ASbGncseaRBUeaalnx2Dys17K6I46oJDQX/1YYBPgHf0f8PtGxFdsDtV0tFCLTtsqPn Z0NsfqgtbCdL3+cqsNisgHyOC5vdWAfqcsehG3R0BZvIkubfFM5ejqKsnt5zsqLay6GamSI063x c9gK6Gv9/8wVSw7E7sRy1qFGfGVYvBFVyDNuP5+0MZNarPrsg8yVi356Do18aOTwJIvXOOBMZo7 2246DoHW1gwaKFxgVI0Bg5rrgzXdTzDEr+klcoj5GYn8tkwDAs1eiT4IGHJhrd8nYDIXJFgrOrx 8LzYs+XEQHciTal/118fuUsGVKZiN9hE2v9RNHpYD9xRq8vCqtR7VUOk6hm7zUSGRLjiQdABFFh kzeiygBc5xIxhsNGpzhq/cpzbt8uwOka3WWWDDkcjsLsq1EHlDZjE6d2ZTZnOVktmJrR4Bbb5J7 F1TpjYxw== X-Google-Smtp-Source: AGHT+IGHae5YNPaVl2hCoEb67ZpmTAhRivC3dXCx4F8EqYFk6ebwhlESx8+gZwB4Tf0qz9uH3509VQ== X-Received: by 2002:a17:903:19e3:b0:240:1850:cb18 with SMTP id d9443c01a7336-2424705e9fcmr113466295ad.53.1754266858527; Sun, 03 Aug 2025 17:20:58 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1f0fb3csm93646865ad.61.2025.08.03.17.20.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:20:57 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id F4164F409C5; Sun, 3 Aug 2025 17:20:56 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:40 -0700 Message-Id: <20250804002049.2462665-3-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Only one line is using tab instead of space. --- oauth2.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oauth2.el b/oauth2.el index 70c59e7513..c3aa45ed69 100644 --- a/oauth2.el +++ b/oauth2.el @@ -145,7 +145,7 @@ TOKEN should be obtained with `oauth2-request-access'." (oauth2-make-access-request (oauth2-token-token-url token) (concat "client_id=" (oauth2-token-client-id token) - (when (oauth2-token-client-secret token) + (when (oauth2-token-client-secret token) (concat "&client_secret=" (oauth2-token-client-secret token))) "&refresh_token=" (oauth2-token-refresh-token token) "&grant_type=refresh_token"))))) -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 07/11] Drop unused code Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426687919789 (code B ref 79168); Mon, 04 Aug 2025 00:22:04 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:19 +0000 Received: from localhost ([127.0.0.1]:46809 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiix4-000591-OQ for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:19 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]:58414) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiws-00056F-KK for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:11 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-24014cd385bso32303175ad.0 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266860; x=1754871660; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=30uNTCR+NdApEZ+6hRis4TalsBv/z4zmSL7Oc1Enenc=; b=BDtuX2UC8OuGCD+8bh5Uhzcthqg5riUe+QLJBd9kbdW+xPSpdlZBsZKQPP1RcLxjkd tYUuI45TTomMufE0n2I1mr2eKbJsGeDonlGog9tmzvZ2bqj+y7HJ20n10/aOjh/21NVm I+ZKs3Mc3C1Wzzmfdap7NcVARRRYj/EJy49MaAsTrG3vqCwgYNCFcIqV+3oMV3Ik/rlP Kl+l1IETZUzuaAtVcXol0lwRDtDSY5fAgkFkFR0BftztzkQkXJLBUodefvZ1fk9YZJ8m 4z/XtjPTe50seaNKQWdyCZnYZGAIrI8nJbdvfGwgIjLyC4g6H7ZiTKz5aN3Fah3N1HR4 yrIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266860; x=1754871660; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=30uNTCR+NdApEZ+6hRis4TalsBv/z4zmSL7Oc1Enenc=; b=obO+vzDgEKPdB2tICn7odBFcbHbjy83dspwRR+QtLanU+WPdNPnc3UAjLMpLa39Lpk MI2N58e7bo9ab2vx5GPNUz9WM5pDgGDlvGPBdxVzXgVJBQAFEnIA/R4p+Gmo++zjjGLp Jn6TMh3GrUzP+A0BZRhY/9s20Siz9Gqhr85R4m4Mt1HVvFF2SA2YY+R/SHek1xPqxOfP 89v3WirrXc+kIeBf01ZskMSzbb1bWmQZ7WqAxqe16ElSG7//Y9lhnHCFhIYcy+Fs4Aav I5FdTvulGcrVBMgziXWYtnom6j874jXftu71nuJiDBsVHOmucxPUXPPhEUQMbJ7+34Fr q0iQ== X-Gm-Message-State: AOJu0YySf9Z+pIV27vxjY3RIQHd+f+w1M33tH5z0xQFo4ScXF3VOWnjX k/FmEBkgoozP6vloqgbnT5Li/tic2WVqLdOiCILACdUcoACH4LIcLrcHd9rwqw== X-Gm-Gg: ASbGncsJTAr6nKGAePrXcrPTqxDuqP+RaNU4+RugM9+FjmSqof2W7Qtzc+Z5pi5jJhO fSJIwAhAtjEc0Ombs5FBt4vjOyUP3XzTkNN8KfSQlybfH7W8fZhb6C6J2w95flfTbWstxyLpHzG lIOd5jBYT6/wwM76MY2N/NzPkkOXXj7Kt1g3AAXeVZdCizGceaBxL3/k3xWeSmYAYiqYOX0QKZq L1QjaJBdzplWM5bcfV9izg2XSp19A6TA18FVlKQU9cZW7GUf/AK5LE4redRXyq8Uf7Vb6m3+Bcq z/37LQdX07XLcYkITlxbY8bLoYjfJbFqKw53l2LU8GujWksHJbqc34yHTB/Gk79teGwzmF0dbmd 5erNvAXNtJuweBayaG+lWv6sdJ0hJFdaRtHgdvhnotaHZRyCqnj/E5JQzDP2/NOdf33ou1wk= X-Google-Smtp-Source: AGHT+IG6Hmx+XjZ+uAalg92MD7faQKADIp/AHis/NpN22ZtkPywPsVRe288xNQcFyCZGTAf14Om7qw== X-Received: by 2002:a17:903:19e3:b0:240:1850:cb18 with SMTP id d9443c01a7336-2424705e9fcmr113467215ad.53.1754266860191; Sun, 03 Aug 2025 17:21:00 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1ef67cfsm95345615ad.2.2025.08.03.17.20.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:20:59 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 0FCE2F41068; Sun, 3 Aug 2025 17:20:57 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:45 -0700 Message-Id: <20250804002049.2462665-8-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) These functions are not used by other functions and not required for getting any token info. --- oauth2.el | 72 +------------------------------------------------------ 1 file changed, 1 insertion(+), 71 deletions(-) diff --git a/oauth2.el b/oauth2.el index 4541893346..6f7b6a27db 100644 --- a/oauth2.el +++ b/oauth2.el @@ -5,7 +5,7 @@ ;; Author: Julien Danjou ;; Version: 0.17 ;; Keywords: comm -;; Package-Requires: ((cl-lib "0.5") (nadvice "0.3")) +;; Package-Requires: ((cl-lib "0.5")) ;; This file is part of GNU Emacs. @@ -248,76 +248,6 @@ Returns an `oauth2-token'." (plstore-save plstore) token)))) -(defun oauth2-url-append-access-token (token url) - "Append access token to URL." - (concat url - (if (string-match-p "\?" url) "&" "?") - "access_token=" (oauth2-token-access-token token))) - -(defun oauth2-authz-bearer-header (token) - "Return `Authoriztions: Bearer' header with TOKEN." - (cons "Authorization" (format "Bearer %s" token))) - -(defun oauth2-extra-headers (extra-headers) - "Return EXTRA-HEADERS with `Authorization: Bearer' added." - (cons (oauth2-authz-bearer-header - (oauth2-token-access-token (car oauth2--token-data))) - extra-headers)) - - -;; FIXME: We should change URL so that this can be done without an advice. -(defun oauth2--url-http-handle-authentication-hack (orig-fun &rest args) - (if (not oauth2--url-advice) - (apply orig-fun args) - (let ((url-request-method url-http-method) - (url-request-data url-http-data) - (url-request-extra-headers - (oauth2-extra-headers url-http-extra-headers))) - (oauth2-refresh-access (car oauth2--token-data)) - (url-retrieve-internal (cdr oauth2--token-data) - url-callback-function - url-callback-arguments) - ;; This is to make `url' think it's done. - (when (boundp 'success) (setq success t)) ;For URL library in Emacs<24.4. - t))) ;For URL library in Emacs≥24.4. -(advice-add 'url-http-handle-authentication :around - #'oauth2--url-http-handle-authentication-hack) - -;;;###autoload -(defun oauth2-url-retrieve-synchronously (token url &optional request-method - request-data - request-extra-headers) - "Retrieve an URL synchronously using TOKEN to access it. -TOKEN can be obtained with `oauth2-auth'. REQUEST-METHOD, REQUEST-DATA, -and REQUEST-EXTRA-HEADERS are used when retrieving URL. See also -`url-retrieve-synchronously'." - (let* ((oauth2--token-data (cons token url))) - (let ((oauth2--url-advice t) ;Activate our advice. - (url-request-method request-method) - (url-request-data request-data) - (url-request-extra-headers - (oauth2-extra-headers request-extra-headers))) - (url-retrieve-synchronously url)))) - -;;;###autoload -(defun oauth2-url-retrieve (token url callback - &optional cbargs request-method request-data - request-extra-headers) - "Retrieve an URL asynchronously using TOKEN to access it. -TOKEN can be obtained with `oauth2-auth'. CALLBACK gets called with -CBARGS when finished. TOKEN can be obtained with `oauth2-auth'. -REQUEST-METHOD, REQUEST-DATA, and REQUEST-EXTRA-HEADERS are used when -retrieving URL. See also `url-retrieve'." - ;; TODO add support for SILENT and INHIBIT-COOKIES. How to handle this in - ;; `url-http-handle-authentication'. - (let* ((oauth2--token-data (cons token url))) - (let ((oauth2--url-advice t) ;Activate our advice. - (url-request-method request-method) - (url-request-data request-data) - (url-request-extra-headers - (oauth2-extra-headers request-extra-headers))) - (url-retrieve url callback cbargs)))) - (provide 'oauth2) ;;; oauth2.el ends here -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 03/11] Reorder code to put defcustom/defvar at the beginning part Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426687919797 (code B ref 79168); Mon, 04 Aug 2025 00:22:05 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:19 +0000 Received: from localhost ([127.0.0.1]:46811 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiix5-000599-BI for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:19 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]:56654) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiwr-000566-1e for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:11 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-24049d16515so20117435ad.1 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266859; x=1754871659; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QcNjwBSlz7I1EwByVl3MM9ufSQRsO8+bBNThYnrhF3w=; b=DAupRDh10X9n2Su+pGYbrNHLOPYKm4s3rp8jE60zUP+v+KbTc4sik/XN4GvL7yiQt1 LxkmzMUNaWT5P1OJbk9eQZ2+Mo2OW/wEfUs6gqHDucew133IeY/uKj/06qMxE4Kkboc2 8wxY7ZIHvKaqT4YN9GhnROFq0ExzXK04LIg9GeJhxMdn36srtrt2U2RQBzVRni1AI03c mLYXWP0dm0k0qrGpQKfUPtL8XjS7R6IGvPYxmYaum4X8BxfSMrilM/HiPLfpPz2/J9Ic e7tBf4cXM+ZMJ8xhWFuOUcY7k680VpDqFbJxbxyL29ZOEpucFNOsTJsvtDzJsytO+wLJ Pztg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266859; x=1754871659; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QcNjwBSlz7I1EwByVl3MM9ufSQRsO8+bBNThYnrhF3w=; b=H20jB/NXFhq9CFnAE6IhYXampAmVZcv1zZvfo68OTgZ8HXXbTEm4SVI7fIaFCzclE+ Kch+RWQvQIcVCz0KZtGfxem2OwndPtDl3rzH25ERajAxhqp4JQ7pm7slGXiCmFYWEw7I kJ/UCIx3Yzm3x/yyDLclaSLb8BVyt1y/7h0ySEJUY3VPGsiyPZHgiBOmQfjtkTpQ18GN TUAR8Epcrbu1QjRfQyK6GAqqmdPd1xYKfnt6BMwvFnWnJPVF7cjHq+BPQeYxAw2CNDiv va40Sh/9Byv77DF3him+7bm+IQG4cbB+RU1kSnfnIV8axraaeXTKEoe40TJlDhDwKuOz ZD8A== X-Gm-Message-State: AOJu0Yxk9SZ/6+HJMpkYfnwMI8YfsUhdBJFIm31fF9R1afQ2/LbbhF6N hZeYXVCj4c5RTLjaRgN4iLa/MLC5mwNguaRPpjAgDvRCzyZYNWkFO7h8mAEoWg== X-Gm-Gg: ASbGncvbKyxlOWTd0x8X/St3TlKfUUpmMx4IHBG8Dh1ZNig05vWnSIQLmko+B9M1MBR bhCK0AlriXPej5uq+EqIxXwIx8CytUafnFz0k3ulYPoK071dXTzIWncq3pzpjQepREHsjtsNh4/ UySTZkZF44W+KyUbBkvBWWSOAIh8fkS1oyiCZyZWEakH5lwnwVW6ro8XlgYsAHgeenuEEMt1ASS rBFQIrpPP0GGuubV8R3gsyNOoFQVFR4lZIpIsBHC1/Vx528+EHU+Hy5IBLWtDOpHQ97loWlZYWU klhNMCrygB4eZdGQHdzTa7ulJ8OH9gQVYO6hNzE+xEV7f4ENdRUjVQHwjJXdrQ+ZK9lL8AmzI5O GdBx7kn1qHIRU0mhHnyo+kllYZQropNW7TfaL/gY4ACjdkQu0j2ra6D8tBzqcjrGaPKnMgpA= X-Google-Smtp-Source: AGHT+IHUZ/8F/VohxRyNLBySa9cUKxcTvJMDkmxfAV0AmxSTWdS37GXo2Sues7eGYu6iBqBDVgII2A== X-Received: by 2002:a17:902:ec91:b0:234:a734:4ab1 with SMTP id d9443c01a7336-24246f308ffmr95895965ad.3.1754266858706; Sun, 03 Aug 2025 17:20:58 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241e8ab3da8sm94315735ad.175.2025.08.03.17.20.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:20:57 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 03320F40A55; Sun, 3 Aug 2025 17:20:57 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:41 -0700 Message-Id: <20250804002049.2462665-4-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Adapted from bug#52476 by Aleksandr Vityazev. --- oauth2.el | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/oauth2.el b/oauth2.el index c3aa45ed69..eccf439130 100644 --- a/oauth2.el +++ b/oauth2.el @@ -53,9 +53,17 @@ :link '(url-link :tag "Savannah" "https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/?h=externals/oauth2") :link '(url-link :tag "ELPA" "https://elpa.gnu.org/packages/oauth2.html")) +(defcustom oauth2-token-file (concat user-emacs-directory "oauth2.plstore") + "File path where store OAuth tokens." + :group 'oauth2 + :type 'file) + (defvar oauth2-debug nil "Enable verbose logging in oauth2 to help debugging.") +(defvar oauth--url-advice nil) +(defvar oauth--token-data) + (defun oauth2--do-debug (&rest msg) "Output debug messages when `oauth2-debug' is enabled." (when oauth2-debug @@ -174,11 +182,6 @@ TOKEN should be obtained with `oauth2-request-access'." auth-url client-id scope state redirect-uri) redirect-uri)) -(defcustom oauth2-token-file (concat user-emacs-directory "oauth2.plstore") - "File path where store OAuth tokens." - :group 'oauth2 - :type 'file) - (defun oauth2-compute-id (auth-url token-url scope client-id) "Compute an unique id based on URLs. This allows to store the token in an unique way." @@ -222,9 +225,6 @@ This allows to store the token in an unique way." (if (string-match-p "\?" url) "&" "?") "access_token=" (oauth2-token-access-token token))) -(defvar oauth--url-advice nil) -(defvar oauth--token-data) - (defun oauth2-authz-bearer-header (token) "Return `Authoriztions: Bearer' header with TOKEN." (cons "Authorization" (format "Bearer %s" token))) -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 06/11] Reformat most lines to be less than 80 characters long Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426688119813 (code B ref 79168); Mon, 04 Aug 2025 00:22:06 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:21 +0000 Received: from localhost ([127.0.0.1]:46813 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiix5-00059L-RJ for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:21 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]:54572) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiwr-00056B-TE for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:12 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-2402774851fso30973505ad.1 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266860; x=1754871660; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0OHpAowbK9RABb7HAvGz8Lzty9lkTM1acUyEY2Kk7a4=; b=AzGAh+PGku4/Y+r4JKTEtb/EgsmkUM6MH1oEFJ8p40UtNUk7znEcWTVjRPGJ6rMMIe mwUKp8jdmWM3Ft1EJtZ0MKs3hd4StftIF86rpTYoh1+kH7ItAnbwu8oxfLCnqy2iRDYA jZ+GQGfxh76kuZL27z9I+GuReemibL3Whr3ggUWOFfV9g2/VPagbHZffCTlynVJ87gPu Dh3iY9ZOSB7qLjShUeV4YUdcXRWGVDakTM4rI8jAvow3r8UYGZqUqmstm2QNDwsL5lV7 2r7tge06kzC3ca2G5RbxhhH7BAavqCBz6TLdEBMaYguUu5hb4n0fWym6yYrDn5aGusy/ fksA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266860; x=1754871660; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0OHpAowbK9RABb7HAvGz8Lzty9lkTM1acUyEY2Kk7a4=; b=gN+mCxu24IeIz+OJTGKsmh7C9HyA8cAbU/LZ6QHve7mFsZ8fHdxacmzIhp4gaKvENE XvXNmhjWxO7BLwptwiutDktOBQTdxy/foNzkmjMKRkB5hi5APucmW9seQAtqkkogjWej ukLBaxi+xQtKBg4EKYZkLBZ5yFIJzOfnzMDvZjWDyAeQaX3vtBh0tBefuUKfF08ZtA8S 7s8aF9Q6FG9lD1fUsR0DUx/GbDG2ezxepwIt2/dsyz6oELTzinrmL62zOswAwRoktXi1 3YTQbfJ1bcPQOgGMErfDkAri14lO8Qgt9Z2VyNzNbLEnc6JFjlhLGsVRHPiE21u5Tis1 JzZw== X-Gm-Message-State: AOJu0YwOztPsVff/FleHLkvf9oa6LMymJJkSG0ZDhdSYzbXmnluGUawq JXXZ2yN+1liU6WIq1x+zPifWWxubZXfMP7hUhO3xgY5NJsOpnIrVjG1z4Uj9vA== X-Gm-Gg: ASbGnctD10MTgvgpv/of/BtUJ7ZbwhmV+JG80eSvPu2DQ+5QV3QmFWK8105uAM8dxfP M1T0ZCvC4YxN1tdtqEdAZ4CE/yHbnY8Q4vcIiOXKeY77K18h2twj23FW5JvMGvqnVxfVcabnrkN /r6QrvQa+qCumAm7KZJSHM7+MlKqNAhHUOUs1kVDJD7IBS1jkEoIEIbxibeJ7GjI7PB1WE99mMu d7fyWhn+3mkVFInOpLUwpfuV5ECES7efWZIaQkSjmy8Vn4OPmyxNGNInrvRntWTFO+N80Sx8EiP MrqnXWlqG3P0G9YCJXXrdczXZq9pU5k5XWINhwwHKHD6g5AhAE/ayzYT5k8tXpSdiuViO7c5+J8 pECyanaOn11UiFiLE2/OOjqkraKro17ernnli7ZW+ayw3jVXdKhZPYRUKY5sw/CjismFYH0Y= X-Google-Smtp-Source: AGHT+IEiOJ3R/4SGD8Hm6lYSAbsznszf4y29/XItQFx6g65HO4lefloQFtoS8FX8vH7jX05GP8EHuQ== X-Received: by 2002:a17:902:f787:b0:240:8cca:50fb with SMTP id d9443c01a7336-2424701867dmr108743705ad.37.1754266859630; Sun, 03 Aug 2025 17:20:59 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1ef5970sm93722635ad.20.2025.08.03.17.20.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:20:59 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 0CBFEF40C83; Sun, 3 Aug 2025 17:20:57 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:44 -0700 Message-Id: <20250804002049.2462665-7-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --- oauth2.el | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/oauth2.el b/oauth2.el index ba7125e79b..4541893346 100644 --- a/oauth2.el +++ b/oauth2.el @@ -50,7 +50,8 @@ (defgroup oauth2 nil "OAuth 2.0 Authorization Protocol." :group 'comm - :link '(url-link :tag "Savannah" "https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/?h=externals/oauth2") + :link '(url-link :tag "Savannah" + "https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/?h=externals/oauth2") :link '(url-link :tag "ELPA" "https://elpa.gnu.org/packages/oauth2.html")) (defcustom oauth2-token-file (concat user-emacs-directory "oauth2.plstore") @@ -70,7 +71,8 @@ (setcar msg (concat "[oauth2] " (car msg))) (apply #'message msg))) -(defun oauth2-request-authorization (auth-url client-id &optional scope state redirect-uri) +(defun oauth2-request-authorization (auth-url client-id &optional scope state + redirect-uri) "Request OAuth authorization at AUTH-URL by launching `browse-url'. CLIENT-ID is the client id provided by the provider which uses REDIRECT-URI when requesting an access-token. The default redirect_uri @@ -84,7 +86,9 @@ Returns the code provided by the service." (if (string-match-p "\?" auth-url) "&" "?") "client_id=" (url-hexify-string client-id) "&response_type=code" - "&redirect_uri=" (url-hexify-string (or redirect-uri "urn:ietf:wg:oauth:2.0:oob")) + "&redirect_uri=" (url-hexify-string + (or redirect-uri + "urn:ietf:wg:oauth:2.0:oob")) (if scope (concat "&scope=" (url-hexify-string scope)) "") (if state (concat "&state=" (url-hexify-string state)) "") ;; The following two parameters are required for Gmail @@ -127,7 +131,8 @@ Returns the code provided by the service." token-url access-response) -(defun oauth2-request-access (token-url client-id client-secret code &optional redirect-uri) +(defun oauth2-request-access (token-url client-id client-secret code + &optional redirect-uri) "Request OAuth access. TOKEN-URL is the URL for making the request. CLIENT-ID and CLIENT-SECRET are provided by the service provider. The CODE should be @@ -165,8 +170,10 @@ TOKEN should be obtained with `oauth2-request-access'." (oauth2-token-token-url token) (concat "client_id=" (oauth2-token-client-id token) (when (oauth2-token-client-secret token) - (concat "&client_secret=" (oauth2-token-client-secret token))) - "&refresh_token=" (oauth2-token-refresh-token token) + (concat "&client_secret=" + (oauth2-token-client-secret token))) + "&refresh_token=" + (oauth2-token-refresh-token token) "&grant_type=refresh_token"))))) ;; If the token has a plstore, update it (let ((plstore (oauth2-token-plstore token))) @@ -183,7 +190,8 @@ TOKEN should be obtained with `oauth2-request-access'." token) ;;;###autoload -(defun oauth2-auth (auth-url token-url client-id client-secret &optional scope state redirect-uri) +(defun oauth2-auth (auth-url token-url client-id client-secret + &optional scope state redirect-uri) "Authenticate application via OAuth2." (oauth2-request-access token-url @@ -199,7 +207,8 @@ This allows to store the token in an unique way." (secure-hash 'sha512 (concat auth-url token-url scope client-id))) ;;;###autoload -(defun oauth2-auth-and-store (auth-url token-url scope client-id client-secret &optional redirect-uri state) +(defun oauth2-auth-and-store (auth-url token-url scope client-id client-secret + &optional redirect-uri state) "Request access to a resource and store it. AUTH-URL and TOKEN-URL are provided by the service provider. CLIENT-ID and CLIENT-SECRET should be generated by the service provider when a @@ -225,7 +234,8 @@ Returns an `oauth2-token'." :token-url token-url :access-response (plist-get plist :access-response)) (let ((token (oauth2-auth auth-url token-url - client-id client-secret scope state redirect-uri))) + client-id client-secret scope state + redirect-uri))) ;; Set the plstore (setf (oauth2-token-plstore token) plstore) (setf (oauth2-token-plstore-id token) id) @@ -250,7 +260,8 @@ Returns an `oauth2-token'." (defun oauth2-extra-headers (extra-headers) "Return EXTRA-HEADERS with `Authorization: Bearer' added." - (cons (oauth2-authz-bearer-header (oauth2-token-access-token (car oauth2--token-data))) + (cons (oauth2-authz-bearer-header + (oauth2-token-access-token (car oauth2--token-data))) extra-headers)) @@ -273,7 +284,9 @@ Returns an `oauth2-token'." #'oauth2--url-http-handle-authentication-hack) ;;;###autoload -(defun oauth2-url-retrieve-synchronously (token url &optional request-method request-data request-extra-headers) +(defun oauth2-url-retrieve-synchronously (token url &optional request-method + request-data + request-extra-headers) "Retrieve an URL synchronously using TOKEN to access it. TOKEN can be obtained with `oauth2-auth'. REQUEST-METHOD, REQUEST-DATA, and REQUEST-EXTRA-HEADERS are used when retrieving URL. See also @@ -287,15 +300,16 @@ and REQUEST-EXTRA-HEADERS are used when retrieving URL. See also (url-retrieve-synchronously url)))) ;;;###autoload -(defun oauth2-url-retrieve (token url callback &optional - cbargs - request-method request-data request-extra-headers) +(defun oauth2-url-retrieve (token url callback + &optional cbargs request-method request-data + request-extra-headers) "Retrieve an URL asynchronously using TOKEN to access it. TOKEN can be obtained with `oauth2-auth'. CALLBACK gets called with CBARGS when finished. TOKEN can be obtained with `oauth2-auth'. REQUEST-METHOD, REQUEST-DATA, and REQUEST-EXTRA-HEADERS are used when retrieving URL. See also `url-retrieve'." - ;; TODO add support for SILENT and INHIBIT-COOKIES. How to handle this in `url-http-handle-authentication'. + ;; TODO add support for SILENT and INHIBIT-COOKIES. How to handle this in + ;; `url-http-handle-authentication'. (let* ((oauth2--token-data (cons token url))) (let ((oauth2--url-advice t) ;Activate our advice. (url-request-method request-method) -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 01/11] Small fix for backtrace-frame Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426688119823 (code B ref 79168); Mon, 04 Aug 2025 00:22:06 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:21 +0000 Received: from localhost ([127.0.0.1]:46815 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiix7-00059W-8D for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:21 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]:50290) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiwq-000564-VH for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:13 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-31efc10bb03so2565015a91.0 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266858; x=1754871658; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=z5J2MRYIPc65dJn+RBSG6lB0njmJOna9NRCK1XY5XbI=; b=RhVcRWnfOylZ2woQNEfAe/n9KVBYn0x7vIEHEZlrcPUM/hLcB0fz20qcwuSPWO63Qy Wvsx7CqEgScQh9JqDEpC5dikUSmxVSErgWPhCwDM5+EXf0oEbJ4FrMFOZjcl6y2W7FWS kn7dDG9tBPQm335qQ3x0EkMHkwB1BNOjMNiFnMOS8SXPLryjT3r+IkRKKc03wQapuTxp iPbwwY4mFBxQwpEOQ1iAZPMZGzAQwiUTIMdExz1pGaYjeKIRmaBOyWjfe41Scdiy32kz zpOcMwKoa67lyNWP4v52okxVwML0BUPhItFsyTfCYeDeUiD5OQB7y3Q8mXvQDFIhGxtO w3Eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266858; x=1754871658; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=z5J2MRYIPc65dJn+RBSG6lB0njmJOna9NRCK1XY5XbI=; b=rutF92KX+L+t9a1a8ivI9DZp2rNSss81RLPvlVeRO3FYlpX0UqUphZke/7YaSz+6Nn fp37HZbLDP2HupEYh471S727ezeKJcpk3AECXsqAY6eE/hbmjlHdm4CBbEFzathHrIZU aPwS+deJGmp5FZxfR26avJi+ToRISkMLIa+iZxAYD3f/x3QmHUfmAl0Xur7mg9a4Bm+w NlN5eFmDnjPJ3+MZw8L03hMuI3SutWwUtoSaV+w+19dsXAHAWNsqzDfhoDoyqHWFQzUm sJ3+L/WWHL53Hkhk2oFKvf52fax1PAXwQHCQQVfkZVElNxjeub+0RL3QTqoa8QgTxzJI OQig== X-Gm-Message-State: AOJu0Yw+Nc6Qgf4yU3gz+oDqS6op6iJmpQcQMVEh09gv3tIfxQGOrBSw o1sApIWWYd1jzq976gCsVK0oKrf9dQTq4VPSPBAS5jReb+pjV+oE877MZYxiKg== X-Gm-Gg: ASbGncvjCSc6e1xLKRpgiQ9JPMxzqur6nrv1rvdVh4V1tqI3YQhXhRYA2Ygi0XyItC8 VaRB3ZkWg2O5tRG3tbcxQFO7K7yvbvMl//i3WCw58EaX6zIPfynAKnPQbxTTkcYMKCgCC+UaeUe pMX6RM0NXmMBraf712h8AByXCD8mHk/tCT8HbvK9cVpWic5HyR+rU3p1a20NNadc3YKevh9758v L/vfWgbH64tSDhT1bZ6aSOqWM4B0azTcmTBOpJvlb9rCnLgLxedeW7SevFIdKnIAHBw0WPudazb diKNAteQQtZksxrxOHgpA0v04kh8K2VVCtI6NSStELRvmZgbORGemXm7+A3siOwZU+2xFzPS+Ue GabDCCD3Oun0Kvj2oA319TCp/1ddaQUJeW9Vy//ljOhu2ueYqjk0dLvKhFM850Aj2uT1ZjkI= X-Google-Smtp-Source: AGHT+IFqPtb7ave7m98aptgSx2WuBv8YoMppU9PKyKLjjKuTwIHB89YoP+jt+q6HPEBG+4WPdAuiVA== X-Received: by 2002:a17:90b:4c4d:b0:313:b78:dc14 with SMTP id 98e67ed59e1d1-321161165f7mr11703273a91.0.1754266858346; Sun, 03 Aug 2025 17:20:58 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31f63f0bb79sm12862724a91.31.2025.08.03.17.20.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:20:57 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id F0D83F40999; Sun, 3 Aug 2025 17:20:56 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:39 -0700 Message-Id: <20250804002049.2462665-2-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Using `(backtrace-frame 2)' for the intended function name. --- oauth2.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oauth2.el b/oauth2.el index 87e0c39c5c..70c59e7513 100644 --- a/oauth2.el +++ b/oauth2.el @@ -90,7 +90,7 @@ It returns the code provided by the service." (defun oauth2-make-access-request (url data) "Make an access request to URL using DATA in POST." - (let ((func-name (nth 1 (backtrace-frame 3)))) + (let ((func-name (nth 1 (backtrace-frame 2)))) (oauth2--do-debug "%s: url: %s" func-name url) (oauth2--do-debug "%s: data: %s" func-name data) (let ((url-request-method "POST") -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 08/11] Implement trivia debug message for more fine-grained logging Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426688219830 (code B ref 79168); Mon, 04 Aug 2025 00:22:07 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:22 +0000 Received: from localhost ([127.0.0.1]:46817 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiix7-00059f-TP for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:22 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]:48155) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiwt-00056H-08 for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:13 -0400 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-76bddb92dc1so2973210b3a.0 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266860; x=1754871660; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gPc93lFjyywxm5ikSARNAmbDPjLddaPJHrqKxyrnzSs=; b=e1ZtfthFAJMBp86c6TycFMcy2Xu4uZ6PIwrt0ON4QoItSvGksMTo0i6SqLJkGCmHxu mJau5+m9FjLYhav3BVrf3AMDOOvP7PaDSsJ0GcEB0AHqoHZKGsQalfva5m7v58o4c/4w 0viX7Zv0X04NBYVJRAkrmpEanag01wQmhe4/InY/OxZ15oC/0Y/wJSRvm6fBprugbaUt 8ZWBEmQEUEf/mdp+I3loAdpN7RlvP+xgnVCcP6z0op7nTdT+GjLcYzd4TxjZE7XS0CYt Y6a03oH2pAPEnNsdAI/QcoCQGqVAEoHc74TjRHBYiyEgYyC+yctGXqXQeKjj2YY8PypQ YfRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266860; x=1754871660; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gPc93lFjyywxm5ikSARNAmbDPjLddaPJHrqKxyrnzSs=; b=D1SB5YZmGk28v50ShvfB20RtOLfi0At9rm2NBFvdmVrOiIVBgvpFFDYRjeV+Ia+UhZ LrGaPeaz3RQi6Rud6qwd0lqZjJ7hbQ7aVnLS8QUIZ51w3xaPBHLyuxtOHKiJVesiGy3r pD7pFcZ2Kg8hJ0hY6RmFDGLsig+3AT6WHuCRMc8LLScudIEnk8C/xXZ974+fq6XR+AtK FKMVdCsejV7K/nDTkPaZectNIItPnshcCAB3JFpac8eB4N3Ac0FFwyJNecUIj6tWg1jm xKgIP/rRULQP4eFzb8K2Pm2pI1Vd76SoIyM1b+XTt8dUWK5IvPT5MA2SlcCOCiS73vLW 1PUw== X-Gm-Message-State: AOJu0Yz42a0kRhnPFV+hgJp7HfXcV6X0VnpomGeBrFY+/bWXbE/a81S0 AAG1i4YnkI4yeTLZqsaYaem+Hm4ksa5e0qtfn/FwTwtCg+4Xl1+lQd370JG1bw== X-Gm-Gg: ASbGncvphP20FeDi++9nIJoACZgLR8vU+4jQpD/1SgFmlm7eUdLcAMusmXa+6jYq3NI 4FsJVlZQ6O9F+nuKZJwoasQuHsikrBznxOG6+WCIY/2q7PGQGJ9MsCUWcVI922L1rWikhFaUafa JxViG/mhsMivIP0TGbSPdT4SfwCT9LV+eT/Z8LqKK9VYomdsyfni7PpJVg6uDkQJ8b1nlD6dXBY whpxNbYGbQzuVceYeFcEbZas84IJWZ5u5tW4xmD61fs9c1U6cwJ/6BK7jRc1KQSz0Wnu1GRTvwT AHx18Yjr89h4Ww3uAQke08zsjqPFAPcHxH3qreYy3fKws7qbYmCIWrelm6rszC1A69ALIo0+WYx q8xbXQMcQIU48iGRq9v8xmkbWWi5hYZns4PNJX/nIdnWQmjW6TRYJZyogVi9XBDkU7nsTojc= X-Google-Smtp-Source: AGHT+IGAXWZZS1c1woKuYBZz+n8uKQgZwO1HtvnAhSbkh+c/lGdABSGPnbpU7MQ2H7Y/rRE39TeehQ== X-Received: by 2002:a05:6a00:3a10:b0:76b:e144:1d91 with SMTP id d2e1a72fcca58-76bec4be949mr8643492b3a.16.1754266860565; Sun, 03 Aug 2025 17:21:00 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bccfbce56sm9107701b3a.82.2025.08.03.17.20.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:20:59 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 12DD7F4111F; Sun, 3 Aug 2025 17:20:57 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:46 -0700 Message-Id: <20250804002049.2462665-9-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Also convert some detailed logging to use trivia. --- oauth2.el | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/oauth2.el b/oauth2.el index 6f7b6a27db..eb2ae0cb9b 100644 --- a/oauth2.el +++ b/oauth2.el @@ -65,11 +65,24 @@ (defvar oauth2--url-advice nil) (defvar oauth2--token-data) +(defun oauth2--do-warn (&rest msg) + "Actual function to log MSG based on how `oauth2-debug' is set." + (setcar msg (concat "[oauth2] " (car msg))) + (apply (if (functionp oauth2-debug) + oauth2-debug + 'message) + msg)) + +(defun oauth2--do-trivia (&rest msg) + "Output debug message when `oauth2-debug' is set to \\='trivia." + (when (or (eq oauth2-debug 'trivia) + (functionp oauth2-debug)) + (apply #'oauth2--do-warn msg))) + (defun oauth2--do-debug (&rest msg) "Output debug messages when `oauth2-debug' is enabled." (when oauth2-debug - (setcar msg (concat "[oauth2] " (car msg))) - (apply #'message msg))) + (apply #'oauth2--do-warn msg))) (defun oauth2-request-authorization (auth-url client-id &optional scope state redirect-uri) @@ -109,8 +122,8 @@ Returns the code provided by the service." (defun oauth2-make-access-request (url data) "Make an access request to URL using DATA in POST requests." (let ((func-name (nth 1 (backtrace-frame 2)))) - (oauth2--do-debug "%s: url: %s" func-name url) - (oauth2--do-debug "%s: data: %s" func-name data) + (oauth2--do-trivia "%s: url: %s" func-name url) + (oauth2--do-trivia "%s: data: %s" func-name data) (let ((url-request-method "POST") (url-request-data data) (url-request-extra-headers @@ -118,7 +131,8 @@ Returns the code provided by the service." (with-current-buffer (url-retrieve-synchronously url) (let ((data (oauth2-request-access-parse))) (kill-buffer (current-buffer)) - (oauth2--do-debug "%s: response: %s" func-name (prin1-to-string data)) + (oauth2--do-trivia "%s: response: %s" func-name + (prin1-to-string data)) data))))) (cl-defstruct oauth2-token -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 05/11] Documentation updates Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426688319839 (code B ref 79168); Mon, 04 Aug 2025 00:22:07 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:23 +0000 Received: from localhost ([127.0.0.1]:46819 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiix8-00059o-B8 for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:22 -0400 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]:51455) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiws-00056G-TJ for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:15 -0400 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-76858e9e48aso2586868b3a.2 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266860; x=1754871660; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+ByeBJBek1S86wpf0b5XK2UEKr0b+DjvNfsyWVKQjwA=; b=h3BmMU0OtxaHO2RaK0ZoLAKkh2DpNQKP+O3CCeEeLIGZPqnu2Tx5Gq7YSweufmMR3m czoxHPqvNRPRyEVWfcmpeZch5KhRwCPU+hBXpJilev0Oiq64UPOJaIF9GRrGgm23OnLq nuwQRgT+VS1pUoSaJCIF3y4OncmQFeejCmtELYeRbnMGpD6BN+M2KMl1G4Barid3nfU9 1ozCRnJU6VLg2YCxaGG0B5jbM4k6DmVc1SYQFpiCL6XOy1nOHjGPrGUXKArYqQezu1cc /wWvfvTwTN22SGt/28XWzZPETK9harpWhXeyOTCK0dKi6Wrc/c7UGzlvrbElUiAoEng4 NdYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266860; x=1754871660; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+ByeBJBek1S86wpf0b5XK2UEKr0b+DjvNfsyWVKQjwA=; b=s7xMuxFjlHviuzQvyWH6yc6jFNVGD4RquFDKuyZMd2hS1THaJ8UHfNYXYbI6KPKFsQ Vbrsjls2dCb6GPFw5EGdLm5ux3GFrNsfTWzYULOlX7yA4Tht5L8lf3u+oDnvHg59LM1y /mwpbTMvYMJ2JaY210M4wdLEmVsflNx2TK5jjDuLC1FruO7Yp5X5NKGo/CgmLwNSwvM1 +HXu7Kjx11RuBHheHg5lhyiqh3yXBduG6l1OrtAVVWbLBC4cp+8fJPLuPHkW4E6LR1eX eJvZ/7zht98W/rChLdSGNN4rRmwh7ANkLJgsgsYlb++YBSjmGQJbF3LBA5nGGL1Np1wv tzDA== X-Gm-Message-State: AOJu0YwkzZZn5a9mXeO0ksNJhHPnJJznIdn0zXO/Wch2KqNvMi6p5cF4 DxUHRwOXHbmkK/MDXLS8+l6+xFlgHL2qsOny0OyvCu7FS1YYMkbhhlpSl+Dodw== X-Gm-Gg: ASbGncsxZPb8lSr687VS8MQpdatN3HP9BFANb3BkVFIq/jL3Ev6aE2wtH/wTTzFZ4Dw 7iHcm+De7VU9CtkHJtdgJ6z5Cis1Byrk6GT3r1reXcXRA0oE2Wr0mm3qvGyNCVLKApGCIoMaDBu +sWyL+t6h9iWTfU/YOwHHo+dhuUDF6xAr+n4udqfMsrEzr3VK7qzVabo6oFVAkQ77OzmAO3A+4W /4RB8ZWv8Mn14c6bYujU6ymdaApqwOWiiR6L6+XYWq+h0CKVPVncthtBrGA+RybzraTpBj6SxyL UC7ysnryILNVGWTBR7heroE3rhGseais/U6uuy9+K2L3s96Jl/uBB6xbSJ1jBfNFd+vbO0UTUfu un1R8dw4bMXAz77PSavha6fw/b1LL5ceDZzjTWRwpr5MmSj3IomAeHWYevNxDLVOyNIReOIM= X-Google-Smtp-Source: AGHT+IEUfTN5266EY2CJMHpX7Q8iUAonCinWLk49RfY65knUy89gbj6PUEeyoZHAKFHDMF56x/tNFw== X-Received: by 2002:a05:6a20:6a08:b0:220:af86:7e01 with SMTP id adf61e73a8af0-23df905ef71mr11739068637.29.1754266860276; Sun, 03 Aug 2025 17:21:00 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bcce6f474sm8959571b3a.4.2025.08.03.17.20.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:20:59 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 096DBF40BC5; Sun, 3 Aug 2025 17:20:57 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:43 -0700 Message-Id: <20250804002049.2462665-6-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Update module commments to better reflect its usage. * Also update function documentations. - Some adapted from bug#52746 by Aleksandr Vityazev. --- oauth2.el | 55 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/oauth2.el b/oauth2.el index ef82a64c5f..ba7125e79b 100644 --- a/oauth2.el +++ b/oauth2.el @@ -27,12 +27,12 @@ ;; Implementation of the OAuth 2.0 draft. ;; ;; The main entry point is `oauth2-auth-and-store' which will return a token -;; structure. This token structure can be then used with -;; `oauth2-url-retrieve-synchronously' or `oauth2-url-retrieve' to retrieve -;; any data that need OAuth authentication to be accessed. +;; structure, which contains information needed for OAuth2 authentication, +;; e.g. access_token, refresh_token, etc. ;; -;; If the token needs to be refreshed, the code handles it automatically and -;; store the new value of the access token. +;; If the token needs to be refreshed, call `oauth2-refresh-access' on the token +;; and it will be refreshed with a new access_token. The code will also store +;; the new value of the access token for reuse. ;;; Code: @@ -72,8 +72,14 @@ (defun oauth2-request-authorization (auth-url client-id &optional scope state redirect-uri) "Request OAuth authorization at AUTH-URL by launching `browse-url'. -CLIENT-ID is the client id provided by the provider. -It returns the code provided by the service." +CLIENT-ID is the client id provided by the provider which uses +REDIRECT-URI when requesting an access-token. The default redirect_uri +for desktop application is usually \"urn:ietf:wg:oauth:2.0:oob\". SCOPE +identifies the resources that your application can access on the user's +behalf. STATE is a string that your application uses to maintain the +state between the request and redirect response. + +Returns the code provided by the service." (let ((url (concat auth-url (if (string-match-p "\?" auth-url) "&" "?") "client_id=" (url-hexify-string client-id) @@ -97,7 +103,7 @@ It returns the code provided by the service." (json-read))) (defun oauth2-make-access-request (url data) - "Make an access request to URL using DATA in POST." + "Make an access request to URL using DATA in POST requests." (let ((func-name (nth 1 (backtrace-frame 2)))) (oauth2--do-debug "%s: url: %s" func-name url) (oauth2--do-debug "%s: data: %s" func-name data) @@ -122,9 +128,14 @@ It returns the code provided by the service." access-response) (defun oauth2-request-access (token-url client-id client-secret code &optional redirect-uri) - "Request OAuth access at TOKEN-URL. -The CODE should be obtained with `oauth2-request-authorization'. -Return an `oauth2-token' structure." + "Request OAuth access. +TOKEN-URL is the URL for making the request. CLIENT-ID and +CLIENT-SECRET are provided by the service provider. The CODE should be +obtained with `oauth2-request-authorization'. REDIRECT-URI is used when +requesting access-token. The default value for desktop application is +usually \"urn:ietf:wg:oauth:2.0:oob\". + +Returns an `oauth2-token'." (when code (let ((result (oauth2-make-access-request @@ -183,13 +194,21 @@ TOKEN should be obtained with `oauth2-request-access'." redirect-uri)) (defun oauth2-compute-id (auth-url token-url scope client-id) - "Compute an unique id based on URLs. + "Compute an unique id based on AUTH-URL, TOKEN-URL, SCOPE, and CLIENT-ID. This allows to store the token in an unique way." (secure-hash 'sha512 (concat auth-url token-url scope client-id))) ;;;###autoload (defun oauth2-auth-and-store (auth-url token-url scope client-id client-secret &optional redirect-uri state) - "Request access to a resource and store it using `plstore'." + "Request access to a resource and store it. +AUTH-URL and TOKEN-URL are provided by the service provider. CLIENT-ID +and CLIENT-SECRET should be generated by the service provider when a +user registers an application. SCOPE identifies the resources that your +application can access on the user's behalf. STATE is a string that +your application uses to maintain the state between the request and +redirect response. + +Returns an `oauth2-token'." ;; We store a MD5 sum of all URL (let* ((plstore (plstore-open oauth2-token-file)) (id (oauth2-compute-id auth-url token-url scope client-id)) @@ -256,7 +275,9 @@ This allows to store the token in an unique way." ;;;###autoload (defun oauth2-url-retrieve-synchronously (token url &optional request-method request-data request-extra-headers) "Retrieve an URL synchronously using TOKEN to access it. -TOKEN can be obtained with `oauth2-auth'." +TOKEN can be obtained with `oauth2-auth'. REQUEST-METHOD, REQUEST-DATA, +and REQUEST-EXTRA-HEADERS are used when retrieving URL. See also +`url-retrieve-synchronously'." (let* ((oauth2--token-data (cons token url))) (let ((oauth2--url-advice t) ;Activate our advice. (url-request-method request-method) @@ -270,8 +291,10 @@ TOKEN can be obtained with `oauth2-auth'." cbargs request-method request-data request-extra-headers) "Retrieve an URL asynchronously using TOKEN to access it. -TOKEN can be obtained with `oauth2-auth'. CALLBACK gets called with CBARGS -when finished. See `url-retrieve'." +TOKEN can be obtained with `oauth2-auth'. CALLBACK gets called with +CBARGS when finished. TOKEN can be obtained with `oauth2-auth'. +REQUEST-METHOD, REQUEST-DATA, and REQUEST-EXTRA-HEADERS are used when +retrieving URL. See also `url-retrieve'." ;; TODO add support for SILENT and INHIBIT-COOKIES. How to handle this in `url-http-handle-authentication'. (let* ((oauth2--token-data (cons token url))) (let ((oauth2--url-advice t) ;Activate our advice. -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 09/11] Support reusing cached access-token before it expires Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:08 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426688319848 (code B ref 79168); Mon, 04 Aug 2025 00:22:08 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:23 +0000 Received: from localhost ([127.0.0.1]:46821 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiix9-00059v-02 for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:23 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]:51243) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiwt-00056I-2O for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:15 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b390136ed88so2429552a12.2 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266861; x=1754871661; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8AZkZxNMWoWUgQ1Acu/048NA0q45YLt9lr3UUS8D2Ik=; b=ggOFa16gKGEfBDFE7nsovW+lwQZEIEFMIFTAuO8ymqJ6fQVQer6cpq6U1zJShWeLCk sZDXtOGaKxwZ7yy+LOCboXi0FWSoGB+/fpP0668KTfWnqfvLHmZuEW3mJSyo4RI5cfpK 7dbBbnCAvaY1gCmbwic5Is3qfxGr7NqeiraH3JO9G7M7eQVZxdyanizD2EyUJXqq74iW cfAA/JZcOCwPKXtjKEX5q8UZQdAQ0FHgQzZ7qO9WEn2Te3yLBgLO2jPtUyDQ9FVIuEpV gFpn0U9PsLb//7odZOWw+7lZvMsAlr65aFZDEkcGYadfvDrlHKTPOUE9bCYUPX+WeJLI ZQrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266861; x=1754871661; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8AZkZxNMWoWUgQ1Acu/048NA0q45YLt9lr3UUS8D2Ik=; b=pDYeRtlxex9BzC6eIcjut7W3C72dFi0+s+cWMcVs2dzCArChuBaefmDKckAgi6tC5D /DXFfFXACJ2VgA0Hd4q1O5ZQCCzWKxyVk4OXcy/vGyDdzrdO0djyuNsXVppN9Ym/aniG Izw+GdNlX5w+B1wraKjmp7sG2AfHMZJ7TZnFebDk4y25W870dH7pmpSy6fCVYH0dpYhC 1r5VyV+uNrhoRZkzVdPqATYO2s5t12JdJmzJyR0/lfh0mbBh42zjSfXTJ+P4GhNg6dgE y/Nym6MnJnTyfnBmwmKbWeg0O/zccHIamBQ3NyIflI8OC+BAFO4g0BmQB5R/6BClzl1T /bpA== X-Gm-Message-State: AOJu0Yy8vLug8j3WEb6Q7gOZXaygI/mZmzPXhWafSpiJrJUh52fNYPLV VcMBuY+5xQmCovGMWCA1BudjxoaEqx1OsRjg/5UfvVKf8CX2QP3zxoo1LcRX4g== X-Gm-Gg: ASbGnctfATf7CPjGIAxonmAZ9B32hB3e7zihVh94q6AV1xLuYR+fOJaMk6OSt34vd8S 2Zxzo6cAYw+lDzbFTUrzkfnLMrtXHN72ZcCkLYoSe7PoxH7FFiP/jxKSF1C7151n8/B8pg5EHlG w4g5ZEPNmDLl4YJlb435sr4morYYdEjhqal+JR85WG+IoYei2rpgMdOUe4fe/ZDmE6JygoZV5Rm pt/wn7ubvRInRpiA7Ud6SHV7cpmAsCtc5sovcJ7/25uhPlURfKVBiza7ugnUPi9Rxj4uorJu+t7 jz3fLh753RBXeJtfriMgCz1vNQe0iZqKTjAkCFN+IISjKC82/WzP599NnCbw22LOXNkoRYNofAw R4U/HxIWYoCO7YYxbu1YjehIDfF6d0I7F4e5O/9HwdPzaiEhOAM9F2TlQiKTYZjmeOkZycop4kS 1GcRyZCg== X-Google-Smtp-Source: AGHT+IH3FCUyPEpySnSJk7ydt/DUe90yGHnXdzxbzdRq5Way26f2ZKbf6IfH9okMnCTJqhqdcgCOkQ== X-Received: by 2002:a17:902:e80f:b0:240:3d9c:6340 with SMTP id d9443c01a7336-24246f59ed2mr96455255ad.20.1754266860801; Sun, 03 Aug 2025 17:21:00 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1f1ececsm93872475ad.68.2025.08.03.17.20.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:21:00 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 161FAF41124; Sun, 3 Aug 2025 17:20:57 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:47 -0700 Message-Id: <20250804002049.2462665-10-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Added new fields `auth-url' and `request-timestamp' to support retrieving the cached tokens and calculate expiration. Also refactor code for updating plstore storage in a function to avoid duplication. --- oauth2.el | 109 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 70 insertions(+), 39 deletions(-) diff --git a/oauth2.el b/oauth2.el index eb2ae0cb9b..87fa1f0793 100644 --- a/oauth2.el +++ b/oauth2.el @@ -84,6 +84,23 @@ (when oauth2-debug (apply #'oauth2--do-warn msg))) +(defun oauth2--current-timestamp () + "Get the current timestamp in seconds." + (time-convert nil 'integer)) + +(defun oauth2--update-plstore (plstore token) + "Update the file storage with handle PLSTORE with the value in TOKEN." + (plstore-put plstore (oauth2-token-plstore-id token) + nil `(:access-token + ,(oauth2-token-access-token token) + :refresh-token + ,(oauth2-token-refresh-token token) + :request-timestamp + ,(oauth2-token-request-timestamp token) + :access-response + ,(oauth2-token-access-response token))) + (plstore-save plstore)) + (defun oauth2-request-authorization (auth-url client-id &optional scope state redirect-uri) "Request OAuth authorization at AUTH-URL by launching `browse-url'. @@ -142,11 +159,13 @@ Returns the code provided by the service." client-secret access-token refresh-token + request-timestamp + auth-url token-url access-response) -(defun oauth2-request-access (token-url client-id client-secret code - &optional redirect-uri) +(defun oauth2-request-access (auth-url token-url client-id client-secret code + &optional redirect-uri) "Request OAuth access. TOKEN-URL is the URL for making the request. CLIENT-ID and CLIENT-SECRET are provided by the service provider. The CODE should be @@ -156,8 +175,10 @@ usually \"urn:ietf:wg:oauth:2.0:oob\". Returns an `oauth2-token'." (when code - (let ((result + (let ((request-timestamp (oauth2--current-timestamp)) + (result (oauth2-make-access-request + auth-url token-url (url-encode-url (concat @@ -171,6 +192,8 @@ Returns an `oauth2-token'." :client-secret client-secret :access-token (cdr (assoc 'access_token result)) :refresh-token (cdr (assoc 'refresh_token result)) + :request-timestamp request-timestamp + :auth-url auth-url :token-url token-url :access-response result)))) @@ -178,36 +201,47 @@ Returns an `oauth2-token'." (defun oauth2-refresh-access (token) "Refresh OAuth access TOKEN. TOKEN should be obtained with `oauth2-request-access'." - (setf (oauth2-token-access-token token) - (cdr (assoc 'access_token - (oauth2-make-access-request - (oauth2-token-token-url token) - (concat "client_id=" (oauth2-token-client-id token) - (when (oauth2-token-client-secret token) - (concat "&client_secret=" - (oauth2-token-client-secret token))) - "&refresh_token=" - (oauth2-token-refresh-token token) - "&grant_type=refresh_token"))))) - ;; If the token has a plstore, update it - (let ((plstore (oauth2-token-plstore token))) - (when plstore - (plstore-put plstore (oauth2-token-plstore-id token) - nil `(:access-token - ,(oauth2-token-access-token token) - :refresh-token - ,(oauth2-token-refresh-token token) - :access-response - ,(oauth2-token-access-response token) - )) - (plstore-save plstore))) + (if-let* ((func-name (nth 1 (backtrace-frame 2))) + (current-timestamp (oauth2--current-timestamp)) + (request-timestamp (oauth2-token-request-timestamp token)) + (timestamp-difference (- current-timestamp request-timestamp)) + (expires-in (cdr (assoc 'expires_in + (oauth2-token-access-response token)))) + (cache-valid + (progn + (oauth2--do-trivia (concat "%s: current-timestamp: %d, " + "previous request-timestamp: %d, " + "timestamp difference: %d; " + "expires-in: %d, ") + func-name current-timestamp request-timestamp + timestamp-difference expires-in) + (< timestamp-difference expires-in)))) + (oauth2--do-debug "%s: reusing cached access-token." func-name) + + (oauth2--do-debug "%s: requesting new access-token." func-name) + (setf (oauth2-token-request-timestamp token) current-timestamp) + (setf (oauth2-token-access-token token) + (cdr (assoc 'access_token + (oauth2-make-access-request + (oauth2-token-token-url token) + (concat "client_id=" (oauth2-token-client-id token) + (when (oauth2-token-client-secret token) + (concat "&client_secret=" + (oauth2-token-client-secret token))) + "&refresh_token=" + (oauth2-token-refresh-token token) + "&grant_type=refresh_token"))))) + (when-let* ((plstore (oauth2-token-plstore token))) + (oauth2--update-plstore plstore token))) + token) ;;;###autoload (defun oauth2-auth (auth-url token-url client-id client-secret - &optional scope state redirect-uri) + &optional state redirect-uri) "Authenticate application via OAuth2." (oauth2-request-access + auth-url token-url client-id client-secret @@ -234,32 +268,29 @@ redirect response. Returns an `oauth2-token'." ;; We store a MD5 sum of all URL (let* ((plstore (plstore-open oauth2-token-file)) - (id (oauth2-compute-id auth-url token-url scope client-id)) - (plist (cdr (plstore-get plstore id)))) + (plstore-id (oauth2-compute-id auth-url token-url scope client-id)) + (plist (cdr (plstore-get plstore plstore-id)))) ;; Check if we found something matching this access (if plist ;; We did, return the token object (make-oauth2-token :plstore plstore - :plstore-id id + :plstore-id plstore-id :client-id client-id :client-secret client-secret :access-token (plist-get plist :access-token) :refresh-token (plist-get plist :refresh-token) + :request-timestamp (plist-get plist + :request-timestamp) + :auth-url auth-url :token-url token-url :access-response (plist-get plist :access-response)) (let ((token (oauth2-auth auth-url token-url - client-id client-secret scope state + client-id client-secret state redirect-uri))) ;; Set the plstore (setf (oauth2-token-plstore token) plstore) - (setf (oauth2-token-plstore-id token) id) - (plstore-put plstore id nil `(:access-token - ,(oauth2-token-access-token token) - :refresh-token - ,(oauth2-token-refresh-token token) - :access-response - ,(oauth2-token-access-response token))) - (plstore-save plstore) + (setf (oauth2-token-plstore-id token) plstore-id) + (oauth2--update-plstore plstore token) token)))) (provide 'oauth2) -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 10/11] Close the plstore handle after use Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:08 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426688419856 (code B ref 79168); Mon, 04 Aug 2025 00:22:08 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:24 +0000 Received: from localhost ([127.0.0.1]:46823 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiix9-0005A6-OA for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:24 -0400 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]:55711) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiwt-00056h-Q2 for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:15 -0400 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-7698e914cd2so3722624b3a.3 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266862; x=1754871662; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jyiHHQuWmbpDf4qts+71B+lP79vpDkwB/KRnh66DGAU=; b=bZiBIXvHf4QSlFjYGsWcjN+v1c/ItxarvD3SljBs+sOsYK82+d0vEDBcddUQlLp7Mb DnC4Ll3JN2s5/tv1hiQAqZCdQPk8vkxPEJRsDEhwLVpf1nZ33zAzJO5J9m/ix7V4Fb2i hIE08IzLKXtsurGmJ6IdhjlrV/9G7bWPlW3760W9FrwaKJedhk0Ehb7kDoJwZa1OIW2a xzh5uUWhd2dr8dOkU2iqWTwYjlIhAyX5RF6vptpMu57WHg0UJATtC/1poKCr3LHq6Jj9 6h2su8o7wAEH6LtHHzJ2ZPvVuHDX/xWdGaMLq0g+g/WS0t/wLZiTv2QRHtlegh2wWsom SQsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266862; x=1754871662; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jyiHHQuWmbpDf4qts+71B+lP79vpDkwB/KRnh66DGAU=; b=TT2j3ER+Rq/qixekfQcp4rjCgItitP9HZc0ONTuzmr2x3oVLPKne2r4vTxMxMwECL+ XgtHCbGScWWtRvnr7sGT3wsVReEvUCoa6pjmRygtMN2UHcM2rXy8q3pXN7WTeRpRkrMi aMtN1UGWYuUkOS9yQ4FjTOlY64rCkr/yHWO3Wmnl/UnAio9GEWsoOVOvZpx3weVg8ULM gFRJe0E1TIRj+wMsGGanmgJvNAB6F1zxTMhjJ+A1vWYhrIBszyAjp9dwOvUig140kKd7 ECnCeaZit6pD9KoPbV5XHrqhDew91oLE/DepEEVllvjybYga+u7w5DgYyGKqfhrEh5KE feXg== X-Gm-Message-State: AOJu0Yz+QPtHC6Li9VUJxC/5fv7uBv+NPfLCYL8QuoYqc8hBOW92cDmb OG9iBoW8likOqNSAFQZoBXDapkKH3TI583HQjQ+9KRvlOfxn7l0weH3voMIbBg== X-Gm-Gg: ASbGnctYQ4kQNIUmSx9kpjM4ur+/twpB2JPqlsv60+uSp+ebe9l/xyulFo+DOuEAH0t ZNNaMG1hgH2knLCQ3BL2qKA50WbUKIqDq8xT/niCzrwj3darXwJb6jomRndOtpXwtSXcJ+5A37D cQKao4TFufZ0+sLyPnCT6/m+GoeL1AzexQ7iCG3EKHk2mU5JmS+m/1vHTXOEydwY7NDYULpCk3d V9/xS4FyiKN4xHf+CTiQKDXNq4U4l+7oc3v+k5XvJtrmc53FyAw6eBlqUphPLrQjGWrRn5hI+Ul EVAuXhxm5RJa4PayKyQxLmVaKi+cGnADSteFCPJzCFhoOjiHg4pe7AMmei3A6W+4NpeQKZHxB/j vNqkNtW8KC0CLUyU++XhIN2G5lYZUieYIsyu9hEfrabbRcbECBtrRtpzHGQ/MLVwaRySwXBo= X-Google-Smtp-Source: AGHT+IG27LN84KQgYyzvlXmJG95tuZw5bhcYDWy/uJq6PMTt3X0bdQq07QTgYje0xY+tIjTj+OVhzg== X-Received: by 2002:a05:6a00:1495:b0:76b:caa2:5bd8 with SMTP id d2e1a72fcca58-76bec4a832cmr10291175b3a.13.1754266861636; Sun, 03 Aug 2025 17:21:01 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bcce89125sm9081053b3a.33.2025.08.03.17.20.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:21:00 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 19296F41221; Sun, 3 Aug 2025 17:20:57 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:48 -0700 Message-Id: <20250804002049.2462665-11-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Before this, the plstore stores a handle to `oauth2-token-file' and it is kept open at all times. This may cause issues when the file is accessed by other processes and it may confuse Emacs. This patch ensures that the plstore is properly closed upon each use. Note that the plstore field in oauth2-token is unused and will always be nil but is kept for backward-compatibility for now. --- oauth2.el | 57 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/oauth2.el b/oauth2.el index 87fa1f0793..e4e9ff8d6c 100644 --- a/oauth2.el +++ b/oauth2.el @@ -84,6 +84,13 @@ (when oauth2-debug (apply #'oauth2--do-warn msg))) +(defmacro oauth2--with-plstore (&rest body) + "A macro that ensures the plstore is closed after use." + `(let ((plstore (plstore-open oauth2-token-file))) + (unwind-protect + (progn ,@body) + (plstore-close plstore)))) + (defun oauth2--current-timestamp () "Get the current timestamp in seconds." (time-convert nil 'integer)) @@ -231,7 +238,7 @@ TOKEN should be obtained with `oauth2-request-access'." "&refresh_token=" (oauth2-token-refresh-token token) "&grant_type=refresh_token"))))) - (when-let* ((plstore (oauth2-token-plstore token))) + (oauth2--with-plstore (oauth2--update-plstore plstore token))) token) @@ -267,31 +274,29 @@ redirect response. Returns an `oauth2-token'." ;; We store a MD5 sum of all URL - (let* ((plstore (plstore-open oauth2-token-file)) - (plstore-id (oauth2-compute-id auth-url token-url scope client-id)) - (plist (cdr (plstore-get plstore plstore-id)))) - ;; Check if we found something matching this access - (if plist - ;; We did, return the token object - (make-oauth2-token :plstore plstore - :plstore-id plstore-id - :client-id client-id - :client-secret client-secret - :access-token (plist-get plist :access-token) - :refresh-token (plist-get plist :refresh-token) - :request-timestamp (plist-get plist - :request-timestamp) - :auth-url auth-url - :token-url token-url - :access-response (plist-get plist :access-response)) - (let ((token (oauth2-auth auth-url token-url - client-id client-secret state - redirect-uri))) - ;; Set the plstore - (setf (oauth2-token-plstore token) plstore) - (setf (oauth2-token-plstore-id token) plstore-id) - (oauth2--update-plstore plstore token) - token)))) + (oauth2--with-plstore + (let* ((plstore-id (oauth2-compute-id auth-url token-url scope client-id)) + (plist (cdr (plstore-get plstore plstore-id)))) + ;; Check if we found something matching this access + (if plist + ;; We did, return the token object + (make-oauth2-token :plstore-id plstore-id + :client-id client-id + :client-secret client-secret + :access-token (plist-get plist :access-token) + :refresh-token (plist-get plist :refresh-token) + :request-timestamp (plist-get plist + :request-timestamp) + :auth-url auth-url + :token-url token-url + :access-response (plist-get plist :access-response)) + (let ((token (oauth2-auth auth-url token-url + client-id client-secret state + redirect-uri))) + ;; Set the plstore + (setf (oauth2-token-plstore-id token) plstore-id) + (oauth2--update-plstore plstore token) + token))))) (provide 'oauth2) -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 11/11] Address several package-lint warnings/errors Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 00:22:09 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175426688519863 (code B ref 79168); Mon, 04 Aug 2025 00:22:09 +0000 Received: (at 79168) by debbugs.gnu.org; 4 Aug 2025 00:21:25 +0000 Received: from localhost ([127.0.0.1]:46825 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiixA-0005AC-6a for submit@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:25 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]:53699) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uiiwu-00056j-1y for 79168@debbugs.gnu.org; Sun, 03 Aug 2025 20:21:15 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-24049d1643aso26200505ad.3 for <79168@debbugs.gnu.org>; Sun, 03 Aug 2025 17:21:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754266862; x=1754871662; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+r25YO808y3oW2VfyOpMdSkHhDfHrf+1iGQFZ7Wtwrg=; b=nib43cBRnWbH6avm/2w5ogBxJkmY4FIvQAPsJbP9A2usXW5a1p56EBOA0M5C6miXsT ZEajsSGxNwCTpL7rGAQBPFNb3JYuwoSlTHZHmkHKjtxgz/7AuFKcShCrWdktiWzHRscn GRHGWi5Ec9PwjgwKAQYourtDzHF0+I1oCzQ1+uRb40kAlWqwVVH1D7gOyNtcO1aEK40z BbU18GVWdDUJFY2V8b9x5hpDeeKKkSNllLdNV68iIhnIc8OQV+Lbm7nVHHV1bc/ATdue 7f4JAHByNylQF4+Wv95+x38Upc/lZuB7LATPvqhG063Cjg09XMiaBWbg4iIgMDX0bO3s Qrvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754266862; x=1754871662; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+r25YO808y3oW2VfyOpMdSkHhDfHrf+1iGQFZ7Wtwrg=; b=u7UaHeFS7QEAle1ys3Pv5b4hsOlgVIlpC+lE1SU/OlDGfjqmPTE+wkTgphpV4/xnxB +Vaz7jvhDYtS9aflM+Bvu//GL4IkfHaEygpqEZwhFoLYyeXYg5TQNAbmqVG9QhXIe+X8 5g4vf+PVc+vmFWpizyQJ7xsBUd7i/PGEj+vNj0O4hwNnG6W5TXr2o7Tk8rTzMMotZgAF KWX3UiSb5cmhFu4K3Rh7IalZgvgvriiopFocDM0t9qtd1MvwjgvWoOvuEZl5smIg0nUZ PpKL8wxvLCxWTL6d0qJEGjr3zIXbneMWRyBmNWJmJme6hj5qSDQo0em1jI6cFcT5NtWS NVBg== X-Gm-Message-State: AOJu0YyVfN6Wo+XhK/H8OefgrbdK8OeUmwA/uGPZXS9MHfjlwMwJb/lY WEcNwVCf4HfTa5A12KHleRmn3E9UTGrEhyjgu72w40X+RVZSCoEedrJLPbXhxw== X-Gm-Gg: ASbGncsYoMBXgBwQXT9uLduf0HD6f94tqz3obWUz6gJMUBaEHNSbTTiLY8MB3fCTjyH lCE1nrnQ5/Fa11DYY+V2NPmxp6SIVjrmXHDF222NIjMgtToLQOKiWVSdXizCQ1/QvVEqYfhV7py AzKKi45LHTUchwb7+Xoll2YXl8Isn0ik3sueMVifEH+dkvmRhMJyW0RQGP1b/T4XNF7CaQIg7Gj +epIGdTRFG+yNB5iFdaEqNG6GlTKrSywX90W7QPFmWxrmRXjTMbpscZdAEZnw1M9hQySTCWhmCF aYdI5UwdjiAK4+dE2qEfEQANZqQgDTrMxFzouRbrURXPQ851sqPo/7XQcZEemXTsqHKM5T32MAo VPKdfoodv/7Q9lM/Ll4Y5T2mAGLW13wpW78AcE2r0BakmreYJK4mgcogqSu0f44kWIgqwh8k= X-Google-Smtp-Source: AGHT+IF1okvyqKUu8n328Vj4qRSNuHqiuEZEtE/79KMaM631O4mNq4/IEEUIJvtqwQWnMUqebtRoBA== X-Received: by 2002:a17:902:f2c6:b0:23f:f6ca:6a3 with SMTP id d9443c01a7336-2424704aba9mr77066925ad.43.1754266861845; Sun, 03 Aug 2025 17:21:01 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1ef678dsm94608075ad.39.2025.08.03.17.20.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 17:21:00 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 1C4DBF41242; Sun, 3 Aug 2025 17:20:57 -0700 (PDT) From: Xiyue Deng Date: Sun, 3 Aug 2025 17:20:49 -0700 Message-Id: <20250804002049.2462665-12-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Add URL. * Require (emacs "27.1") for `time-convert', `if-let*', plstore, etc., and drop (cl-lib "0.5") which is already met by newer emacs version. --- oauth2.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/oauth2.el b/oauth2.el index e4e9ff8d6c..73e3191063 100644 --- a/oauth2.el +++ b/oauth2.el @@ -4,8 +4,9 @@ ;; Author: Julien Danjou ;; Version: 0.17 +;; URL: https://elpa.gnu.org/packages/oauth2.html ;; Keywords: comm -;; Package-Requires: ((cl-lib "0.5")) +;; Package-Requires: ((emacs "27.1")) ;; This file is part of GNU Emacs. -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: Proposed changes for oauth2 Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 08 Aug 2025 10:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Xiyue Deng Cc: 79168@debbugs.gnu.org Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.17546473456472 (code B ref 79168); Fri, 08 Aug 2025 10:03:02 +0000 Received: (at 79168) by debbugs.gnu.org; 8 Aug 2025 10:02:25 +0000 Received: from localhost ([127.0.0.1]:37223 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukJvd-0001gJ-AA for submit@debbugs.gnu.org; Fri, 08 Aug 2025 06:02:25 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:47142) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ukJvZ-0001g4-CD for 79168@debbugs.gnu.org; Fri, 08 Aug 2025 06:02:24 -0400 DKIM-Signature: a=rsa-sha256; b=ej7vz5CttPVOG3eh80VRMqCSORuZMAqPtyYmmlC+bc4A+C8yZKmUJ35EDvxdQZhhqra+dg2qm0z6F1EDHYY0cHJDQ/EL6wXEo9cHljwxpWwVQ8UcuNoLLT6sH+r720sCYrk0jWWLHvR2K31Q59UiN/NErNw/e39JrYgaGRxbNA0hKBiOmKDTi6Tajnc50qYg8inTUbXO2HuuTZ2LKzcOAVQ1jUz5jBuSixJ9OJ2CbSUjmE4B73uup/m/tsnmVuLFq9LQ9Bi7dL5rualMecI9RNYEVu+EpJXB2stik3sXd3GCp6RawpSkU+yJKYQHIYuciU/l1wk2QsW/gR0PiUZbbQ==; s=purelymail1; d=spwhitton.name; v=1; bh=4ARFmtGAJko8d+76JqX79QgrPKoI+FQpGTNiyZjSXpQ=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=SR0SshhF15bqsrmJn9EDhwVIiGIsbvh9DoigrviRv8bR1tLp4O9XXEgnNTtZsi/T5KVXxoKHfc0ETj6OT09c47y8Piu3ltikjpJ0Z2LRbgYsMpRhkVhBREBlmPeIL7y3AkmifcTk3zbbKz+8GOT6lETukwSc1ycUaNXhefuWBmZ1kH0ZoX/4hvrBkaBqUDqo0e0kjGsyYGpATDj8NFrJ/0ynkUqdOYN62xwQ0QWKituTLNGHn/7/YagKm5wk8QsKdeiHDJ+JMsolTE7gyizLWvr3oHFCZLeIj1KtpqhexXYBkTF77P/CIPT7/AMSotfhRQvRZh4KugE8tg/SPwhqeA==; s=purelymail1; d=purelymail.com; v=1; bh=4ARFmtGAJko8d+76JqX79QgrPKoI+FQpGTNiyZjSXpQ=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79168@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 774278080; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 08 Aug 2025 10:02:12 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id CE57C94012E; Fri, 08 Aug 2025 11:02:11 +0100 (BST) From: Sean Whitton In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> Date: Fri, 08 Aug 2025 11:02:11 +0100 Message-ID: <87ikiy3zdo.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Sun 03 Aug 2025 at 05:20pm -07, Xiyue Deng wrote: > I propose the series of changes for oauth2 which would lead to the > next release of 0.18. > > Each commit message explains what is done. Please let me know if > anything is unclear. Thank you very much for working on this library. We need the commit messages to be in our CHANGELOG format as described in CONTRIBUTING. Additional explanations for changes we prefer to be in comments rather than in the commit message. Finally, you use oauth2 daily, right? Therefore everything has been fairly thoroughly tested? -- Sean Whitton From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: Proposed changes for oauth2 V2 Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472202123392 (code B ref 79168); Sat, 09 Aug 2025 06:47:02 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:01 +0000 Received: from localhost ([127.0.0.1]:39930 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdM2-00064n-Sa for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:00 -0400 Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]:50545) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM0-00064A-0l for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:46:57 -0400 Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-76b8d289f73so2771023b3a.1 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722010; x=1755326810; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Cim7FZ7MWrvCrX7dgOpKbDCTojtzaD6GiM48Dk6kkEk=; b=RvlnI4JSGDzjwiVnVHciuUV7gXjTVov7OlGyiIyQV0Bf4dc8gQrHnA+daBWXaRMbBl KzyLWjyRuopKBSu0cMvtUlWpJA0ewZ9oba5X7J2WxFDgb0Q3ZSuSKs0NX1rxG4zWphc9 ZV7E4150kDlfk72wdzhpugeqU7ahUfUJxgQwYqfh5SeeWtfbLuqWXCGaC5Bd7Pf2o6+q B/H6tw8whSO+PK4CAU/ky4wI/48gpvHoPX9TXLSFta0cLX+1kunezilTIJUiBhg6rpfj 2pnjrYCfII0ZdaXzImM7REPwQK4LZ09iNgcLnKz4pbysSXWeIeNRkP0gnJFd/6qEUCnH qmvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722010; x=1755326810; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Cim7FZ7MWrvCrX7dgOpKbDCTojtzaD6GiM48Dk6kkEk=; b=wBdF1J/5onst/qqlDDvvRbfz/60HR7QcxdO3KrJjxYV4KJzAxsLFcduqDFFpimtPcE diJDMACw88AjwPkIheQ6lRa+J2fsov4B5UsfMn4Yg9wjJTov8NmKNwZRbQk230pDXzP1 1GrcKOzTIfwuqE9Cnp17EdXnTmt/xjnh+pbmjJv3m4aOF0b0qozuQf1qOfEcNDoNE7pw 5obgObdBKZkrCQIx8/UI50P2YiQ2GeB8wTeoOIIuc3TD4sQUP8Xkld05f55maOtL+l0U c0kieUCvwuk6sH0Zy/yvilrKNejGdRqYNMpFJYm9/jnvSsQj0RahnOrwO6VO23UhcNh+ Kpcg== X-Gm-Message-State: AOJu0Yw9NUIKEAE5NhWAPES29ajxqDe8OkUl+I54B1dUCkX9r7pY4cLg GwMVODUnvHAYe1u6zai7dX+OYv7BoZWbA/e75WSjOeEUoSNvcVuRD+w+xaNYGg== X-Gm-Gg: ASbGncvglEX0oUxyLUbBxKXSEa7rPxYp5Vn6xsDnUV64hWRfzS8qi4KTdmWlBk9MuBL f1EkXY++pr2+dXIjPIp163D0x5j8HdyuA/kjenhJgOSZSxXQJxhzJ1eCwzPBpM4lCEIkvauvW1V 8ptBZ31gjIj/nPjsciexRiIgXhr8K1YhA9PF8egrmq4YSOlUjB6X30jzt/DdOUIcfO8mX9kCzQ/ 50RZQlhBz9X9DVz9cuae4JTmaZ8/M5+c6CRe+u77fdf4cPuxDZ69+QPznKyWdeKOA2C1y+/YfGM 8GW3SoSgFNUrGTII3V5pZ1LnSXziPlfCYb2GbTFqivkytbNHmby8QacgdvnaSoD/2PYjtUrFpr8 4KPSD+FLFDVFvXsbJ+nwHQQUkslD+NyMlBSLsPy4UVh0HEUG71FIl9W6jJexZFoznXSvi46im3A 3sPwLpEQ== X-Google-Smtp-Source: AGHT+IEuADNhD1y80Pm3xApQ5JRsx+IP0D14x5KFx4geWWZak488ThnzMfhutnjVYWz5v3Z5aWnmsA== X-Received: by 2002:a05:6a00:14c8:b0:76b:ed75:81a with SMTP id d2e1a72fcca58-76c460db4a0mr7139617b3a.5.1754722009793; Fri, 08 Aug 2025 23:46:49 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bccfcf523sm21891265b3a.90.2025.08.08.23.46.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:49 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 63BB3F40890; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:39 -0700 Message-Id: <20250809064550.3751968-1-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250804002049.2462665-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Update commit messages to conform to the format in CONTRIBUTE. From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 03/11] Reorder code to put defcustom/defvar at the beginning part Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:47:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472202223420 (code B ref 79168); Sat, 09 Aug 2025 06:47:03 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:02 +0000 Received: from localhost ([127.0.0.1]:39934 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdM4-00065F-Vx for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:02 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]:44147) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM0-00064B-BZ for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:46:57 -0400 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-24099fade34so21444635ad.0 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722010; x=1755326810; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EJZ9F6q7Y1qutketDGxdcIXvtSz5rAIFrpDL3CP2NGI=; b=MNcycX5op8ECzRNJFhY9Mko9wgTn+gkEMD2EqU+riLpCKeE6kn7oz44jPEFCe2EFp6 38sLr0HdGmiq4dgEvWUjGL44FGJpXI+2QVyWXn/XR/EoeHapL04iIP+f+yAGpy84q48G wyIOKLBMd4+ZkgZnlAazGhCmcw84Hv1bO3SyFDOwKJDHmtnlwRYon/tvcWzKLl3jz8Nt WPMyhxQNTLotJF17PwwikHeitUY8ozGEImGi8L+8OR9V5euGsXqucxxndHtfBuo7HLw8 yaL4kPHyDXtzZyhbQbBZWAeYbf/9/zK3olqRqCqo84R/0dWAA/7EUjf23bqQDWa1dauz wd0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722010; x=1755326810; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EJZ9F6q7Y1qutketDGxdcIXvtSz5rAIFrpDL3CP2NGI=; b=tuEghjndMV9TmNmoHZZzM4Qu1Y6O8zAlJ3yDgj4/D4InS38919Y+x46AXS8e0NwfOb aMt4iKdP9b7Qmo/w2E2A5vozRQTTrXX6dibxw0O8Iwvw83ocjB7TZ/rD3h/wJQTv1jfW oVONppritmB326dX2lMsXBkVEs03HDOxN/+22QAuWER1oI3jtq3JRJIUF0cVMf322xZM AuboxQgG89ej3SfComkJa7s4ajW1gFOM+NjBQ8leEP5yC5ehr55BcwnigzaHKzw/5h68 YpRhgn0F7TWri41aoBqmYjeQFEeSLGRq3jkKCcI/+EYaWR1bnvygraNvj8P0Ql1EC3pg Zruw== X-Gm-Message-State: AOJu0Yx2Nj6XxIfBpv4Rpdjxzc+v3Ol5qOsloivMSwvc0F5CrnbAhNbu RVlJQjGnovo1UUB+63E49gtgsBmNniHBVLZtMp2eRtCSn7v3VxPz8YjlCocp2Q== X-Gm-Gg: ASbGnctEiUzMvyYYDLGaNHzMW05U3MuRw29NoENjlgQCmE2hauYBvUkc5635JHn2PhW 6lGG/bkmtt/TWdFRja9HFgDsyHiFSPX7NH2Wkz4CC59Udf0cocJIzXgVyIa6CpIfb2F++ZXaepW kdygYrhLFip0LYn9nIv7JCsf16/96TOfKRZX7A6RrH3EFFGZ8G7TbgfbuqDp1n0yheyg1hcAyCD 7V5iCZMy7PD/hreHq8RltLlfCYPXisrNNA66qfRyYdO3qI4JvaJa15GDlxM2OPfSXSGEVJ9pwr6 ekR+ksdijH/CJdasZNp/VAu8y2LuNORXQ12XgAAmeq9FtTtbHtK+aXpIGMvahu7Kruij2HIv+CX A6ClNWbVUC4SMWtSRDlbc+Lq/xH03kgqW2Up1IBnr2LI09eZarSjOIXZsDoqI7yu4Jpo5Ego= X-Google-Smtp-Source: AGHT+IEj2mwcVCB7LEznka/96Qd8ErX2IXGNpSVPmT6tq241Z4tEeOq3+MF6tIRzv7heyQd03Qj8Kw== X-Received: by 2002:a17:903:1a90:b0:240:4d19:8797 with SMTP id d9443c01a7336-242c20074b2mr27445105ad.22.1754722010014; Fri, 08 Aug 2025 23:46:50 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1f0f76bsm224335375ad.59.2025.08.08.23.46.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:49 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 6D2FFF40925; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:42 -0700 Message-Id: <20250809064550.3751968-4-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250809064550.3751968-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) (Adapted from bug#52476 by Aleksandr Vityazev.) * packages/oauth2/oauth2.el: Put oauth2-token-file, oauth2--url-advice, and oauth--token-data to the beginning part of the source code. --- oauth2.el | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/oauth2.el b/oauth2.el index c3aa45ed69..eccf439130 100644 --- a/oauth2.el +++ b/oauth2.el @@ -53,9 +53,17 @@ :link '(url-link :tag "Savannah" "https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/?h=externals/oauth2") :link '(url-link :tag "ELPA" "https://elpa.gnu.org/packages/oauth2.html")) +(defcustom oauth2-token-file (concat user-emacs-directory "oauth2.plstore") + "File path where store OAuth tokens." + :group 'oauth2 + :type 'file) + (defvar oauth2-debug nil "Enable verbose logging in oauth2 to help debugging.") +(defvar oauth--url-advice nil) +(defvar oauth--token-data) + (defun oauth2--do-debug (&rest msg) "Output debug messages when `oauth2-debug' is enabled." (when oauth2-debug @@ -174,11 +182,6 @@ TOKEN should be obtained with `oauth2-request-access'." auth-url client-id scope state redirect-uri) redirect-uri)) -(defcustom oauth2-token-file (concat user-emacs-directory "oauth2.plstore") - "File path where store OAuth tokens." - :group 'oauth2 - :type 'file) - (defun oauth2-compute-id (auth-url token-url scope client-id) "Compute an unique id based on URLs. This allows to store the token in an unique way." @@ -222,9 +225,6 @@ This allows to store the token in an unique way." (if (string-match-p "\?" url) "&" "?") "access_token=" (oauth2-token-access-token token))) -(defvar oauth--url-advice nil) -(defvar oauth--token-data) - (defun oauth2-authz-bearer-header (token) "Return `Authoriztions: Bearer' header with TOKEN." (cons "Authorization" (format "Bearer %s" token))) -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 02/11] Untabify source code Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472202923472 (code B ref 79168); Sat, 09 Aug 2025 06:48:02 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:09 +0000 Received: from localhost ([127.0.0.1]:39938 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdMD-00066V-DZ for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:09 -0400 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]:48468) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM0-000649-0U for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:46:58 -0400 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-76c18568e5eso3103629b3a.1 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722010; x=1755326810; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UAX1j38gCrgOn0q01p4OGdkpT8MhDlcZEbzcYmTPLQ4=; b=d7LvigWXjVAkkZmLzhy/RvbdIvsTnNocVyc7CGmFGAjpoaKaSvOuzf9HNvsNbZb6Ao qDYiZKzsoo7G9Dp3jcBi2nK0vXY2Q1PoGxvdiB5qGwVNnxKEyP1OMcoXjFpLSua3F81U eoJa9jF1ODqeRgRNDyNyQoG1criXa6Vy3NQgHeLQenZ++hX88i4zhmdO5UPXqoK9cQj2 B/Z2thgv5RP3imltm9S8bX4meJHgOZokubfNiu2mzmKd12IPkWI9AgQcTS2SBH2LYDyz UJDIlSJHaOfN68FZq7O1nbleGdGM/Ot+xsze4hoob0WO5xw1YhNyBvOMKye6/HAaX+V9 pgNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722010; x=1755326810; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UAX1j38gCrgOn0q01p4OGdkpT8MhDlcZEbzcYmTPLQ4=; b=FTS6/kRzd/+hnA/L9cMe3hy2cLqcYNL5RIfE5a0NBaSv4Kgy7VZ0Qe9N3s0lccs6aq 7+Hu5dX23HnZ1iIBv9mau6Ifl0TCI3TzE/TX/cdLYRBcXzWbMDKomLuvP2hB4K81bISW nmYls/LEFV7B2/V0FUwwKHDIDbnrGS5Kk/HT0vbKYxEbh1crjzlWzoE6pAMgZP9+nbpk zRRU4iEnXV9KnDjTqukVPY6jPUFspzVetYU9c1xJ55CkI0r1AXSTjve7xazxiQgCVUf8 wV78Fy4m+Yfx2hG3WkhWBEbE+EPca2KCF5tBFDxmxMBrXJM+sobqsLrargGl8pCmH9Rp mr6w== X-Gm-Message-State: AOJu0YxeQjW5Uc1CoR9JbT8mZMc9r5YUsrX/mK9M0zrFjJ/8zTKEHo6O /fDY3vVjn7bhLQ5LbWadPzyBPk3/6g7848j/7Ruc3ET1drfxza6B21fdqrAgoA== X-Gm-Gg: ASbGncuc4+gqSOI4j2AX7BtKsXgu/Kq+UTGlaHEHfqku8xHoR5jX7zcpaypQM5ezbx2 CIAq6Y+bJLqN28FuAjyGxbABkCEnEKMpNYBqD3DgKoIKjWVI1tx54DZz87fiAbyZTkrQsh5JdcP 7P6D7Rdcl54dV0w6h1VpJbrUUx7WUXyFooNv9mb0tj/mmg91F0DfcJ0AWm7l8NnhogwkjKSwVMg 7HRqekXiizm68zv99rw5zpiuklkzJpvNUwQaEm96+BCuTWjLQz8DG/ozOOFxjhgsv878jibxPGb 8xTKnlEUMKIbbcGnlKkjk+TNlkyO/myByDI4K3ihYn+6R7Q+UKcH/CfRU5Xmmw4cYMEDlgDmVvW 3tI8DZFS7EfW/kF+DLtyQPn1+K24ATWvxh7hhmG2Wj0RteKy8d1pmWsruyw8f/fIEOeA121Y= X-Google-Smtp-Source: AGHT+IEc7qDinN7uBi6F7aDGzSzhI1Lc3qljggMZ0ZedGzOhCmbePn6Y1gF0dARawby2Wtbctb5l9g== X-Received: by 2002:a05:6a00:218b:b0:736:6043:69f9 with SMTP id d2e1a72fcca58-76c4618501emr8854797b3a.19.1754722009635; Fri, 08 Aug 2025 23:46:49 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bccfbd1a7sm21967063b3a.73.2025.08.08.23.46.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:49 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 6A534F40921; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:41 -0700 Message-Id: <20250809064550.3751968-3-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250809064550.3751968-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * packages/oauth2/oauth2.el (oauth2-request-access): Untabify --- oauth2.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oauth2.el b/oauth2.el index 70c59e7513..c3aa45ed69 100644 --- a/oauth2.el +++ b/oauth2.el @@ -145,7 +145,7 @@ TOKEN should be obtained with `oauth2-request-access'." (oauth2-make-access-request (oauth2-token-token-url token) (concat "client_id=" (oauth2-token-client-id token) - (when (oauth2-token-client-secret token) + (when (oauth2-token-client-secret token) (concat "&client_secret=" (oauth2-token-client-secret token))) "&refresh_token=" (oauth2-token-refresh-token token) "&grant_type=refresh_token"))))) -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 05/11] Documentation updates Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472203023479 (code B ref 79168); Sat, 09 Aug 2025 06:48:02 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:10 +0000 Received: from localhost ([127.0.0.1]:39940 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdMD-00066X-O5 for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:10 -0400 Received: from mail-pg1-x52a.google.com ([2607:f8b0:4864:20::52a]:54711) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM1-00064H-St for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:46:59 -0400 Received: by mail-pg1-x52a.google.com with SMTP id 41be03b00d2f7-b3aa2a0022cso3225727a12.1 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722011; x=1755326811; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XLMmyYfsaHeKt18/MvAa+6J0vrfBiRHc50m1CH5xGTI=; b=BNtbxOCj6lC/5tjMbqJeqzKQ1tdAhI1DjKID1x8P3XlW/CmMjG6yScZLLFxNof0kVH Sj+mHSBjl+J37aVeU3BG9Q3eF6CSK383i7P+/PqhVYkn+NAzyRqH9eEaFIPGi1R9wuhb 15W5mlsBW5/tXFduFsSgbmK+yQPVl3KjHjTAepNBeP1WPHNTEoj33kRBMRNl2Q8Q68FU sKGt3TYKAxlZSkOIyjv3meuTk44MJ4RHx7wIyUGOfm1Q6UG0WqfPH4+oG1Sn+3tQFpg4 oLTNvowl+eZAHQ6zzJhrZoOMilCAplugU6jLSpnKr7foaT26kZWL67N26qiq5K6ePK5K r7jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722011; x=1755326811; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XLMmyYfsaHeKt18/MvAa+6J0vrfBiRHc50m1CH5xGTI=; b=EuR/1mMN9Wm6LO/stJo1Bm1H3A5M/uPpf9Gqm/dQp4C20Iw+ywF5admHqiFu1h3rPV yQ0ekiXgcH2cHI5jJN+vfs2KRq2LNGTcAl4TKLtOmeqxtHMr/Mr2SDrC63F2DdTT+7oB MSh7VJssRhfIeyHij4M8UmHc5a3NJUVwlCacFfTxozPL9T2fWSJ4i/vqRjrAjx/XmSg1 m7nM+1iTPvr87xdnwurokMG1WNcNY53zoxecK5Jy6FQ1uxSEas33B9eDPfhD65Qhc0D6 hwfSxI7yTEGkIT+3bbbuSYJO8ldJSPWasmiFxhIgorcr+WSAnQ79pbT0rcy0fIbHhnJ4 1Hpw== X-Gm-Message-State: AOJu0YxUoNMGMUnn/EPFDn1HYKX5ytoFgiiX3tyPmBShjpH1UYnedASZ mXV0Wcj0DGw8Y5baNvFuEJHVDoiaSC4FO/35P6saue50jkibifMByi+ALbbiaA== X-Gm-Gg: ASbGncsg/Zre71/+eJZB/DL8yLvdG9WzH7dsOXBtoTHDltYqYdCvRy05UgOHz6XjTBG yxvYoCUv7x9e7N8I2XMwAsVqOXbMjqSTlSs996yZllBDRaHmvJ+ciTYLsfi8XF34uY6won9vDg7 /8d2EVpgVDUjquSOJ77VJsu0gkSYBLnzhg+dzxzT60hO1qsSGyZCNk79/cXnPZVb5+XN8WI/dDd 3wLhsuay9IMTa/DdWHzDrRfc4YkLdFj4kbVdQDEgIN8HvvkFppHqa0Guq0osp0CX6aoPEp+o3py Nks0RU5QI0UWpOFY/gm68GzbGVi+IZGkL5xgFTzqLH/Ab7m0Jt5995xKgEVeyYj9zcPdFruNZ1E 4A+kI/qogJRNVDESCCJdVbppCBBPL4O6atI+PqkjMRbV2VuGgl/aRMUsPjGpwy8GqRuAHLXI= X-Google-Smtp-Source: AGHT+IEXY3iaJeqf/4XFuAghZbyt8FaDaEcqExrBIvbzgbBwNy+wqqIcXL1Y+6UYAlf2nDmno7V/6A== X-Received: by 2002:a17:903:22ce:b0:240:a8c8:5f6f with SMTP id d9443c01a7336-242c22a0c4dmr78575225ad.27.1754722011440; Fri, 08 Aug 2025 23:46:51 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241e899a51esm225923795ad.115.2025.08.08.23.46.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:50 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 7421EF4094F; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:44 -0700 Message-Id: <20250809064550.3751968-6-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250809064550.3751968-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) (Some adapted from bug#52746 by Aleksandr Vityazev.) * packages/oauth2/oauth2.el: Update module commments to better reflect its usage. Also update function documentations. --- oauth2.el | 55 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/oauth2.el b/oauth2.el index ef82a64c5f..ba7125e79b 100644 --- a/oauth2.el +++ b/oauth2.el @@ -27,12 +27,12 @@ ;; Implementation of the OAuth 2.0 draft. ;; ;; The main entry point is `oauth2-auth-and-store' which will return a token -;; structure. This token structure can be then used with -;; `oauth2-url-retrieve-synchronously' or `oauth2-url-retrieve' to retrieve -;; any data that need OAuth authentication to be accessed. +;; structure, which contains information needed for OAuth2 authentication, +;; e.g. access_token, refresh_token, etc. ;; -;; If the token needs to be refreshed, the code handles it automatically and -;; store the new value of the access token. +;; If the token needs to be refreshed, call `oauth2-refresh-access' on the token +;; and it will be refreshed with a new access_token. The code will also store +;; the new value of the access token for reuse. ;;; Code: @@ -72,8 +72,14 @@ (defun oauth2-request-authorization (auth-url client-id &optional scope state redirect-uri) "Request OAuth authorization at AUTH-URL by launching `browse-url'. -CLIENT-ID is the client id provided by the provider. -It returns the code provided by the service." +CLIENT-ID is the client id provided by the provider which uses +REDIRECT-URI when requesting an access-token. The default redirect_uri +for desktop application is usually \"urn:ietf:wg:oauth:2.0:oob\". SCOPE +identifies the resources that your application can access on the user's +behalf. STATE is a string that your application uses to maintain the +state between the request and redirect response. + +Returns the code provided by the service." (let ((url (concat auth-url (if (string-match-p "\?" auth-url) "&" "?") "client_id=" (url-hexify-string client-id) @@ -97,7 +103,7 @@ It returns the code provided by the service." (json-read))) (defun oauth2-make-access-request (url data) - "Make an access request to URL using DATA in POST." + "Make an access request to URL using DATA in POST requests." (let ((func-name (nth 1 (backtrace-frame 2)))) (oauth2--do-debug "%s: url: %s" func-name url) (oauth2--do-debug "%s: data: %s" func-name data) @@ -122,9 +128,14 @@ It returns the code provided by the service." access-response) (defun oauth2-request-access (token-url client-id client-secret code &optional redirect-uri) - "Request OAuth access at TOKEN-URL. -The CODE should be obtained with `oauth2-request-authorization'. -Return an `oauth2-token' structure." + "Request OAuth access. +TOKEN-URL is the URL for making the request. CLIENT-ID and +CLIENT-SECRET are provided by the service provider. The CODE should be +obtained with `oauth2-request-authorization'. REDIRECT-URI is used when +requesting access-token. The default value for desktop application is +usually \"urn:ietf:wg:oauth:2.0:oob\". + +Returns an `oauth2-token'." (when code (let ((result (oauth2-make-access-request @@ -183,13 +194,21 @@ TOKEN should be obtained with `oauth2-request-access'." redirect-uri)) (defun oauth2-compute-id (auth-url token-url scope client-id) - "Compute an unique id based on URLs. + "Compute an unique id based on AUTH-URL, TOKEN-URL, SCOPE, and CLIENT-ID. This allows to store the token in an unique way." (secure-hash 'sha512 (concat auth-url token-url scope client-id))) ;;;###autoload (defun oauth2-auth-and-store (auth-url token-url scope client-id client-secret &optional redirect-uri state) - "Request access to a resource and store it using `plstore'." + "Request access to a resource and store it. +AUTH-URL and TOKEN-URL are provided by the service provider. CLIENT-ID +and CLIENT-SECRET should be generated by the service provider when a +user registers an application. SCOPE identifies the resources that your +application can access on the user's behalf. STATE is a string that +your application uses to maintain the state between the request and +redirect response. + +Returns an `oauth2-token'." ;; We store a MD5 sum of all URL (let* ((plstore (plstore-open oauth2-token-file)) (id (oauth2-compute-id auth-url token-url scope client-id)) @@ -256,7 +275,9 @@ This allows to store the token in an unique way." ;;;###autoload (defun oauth2-url-retrieve-synchronously (token url &optional request-method request-data request-extra-headers) "Retrieve an URL synchronously using TOKEN to access it. -TOKEN can be obtained with `oauth2-auth'." +TOKEN can be obtained with `oauth2-auth'. REQUEST-METHOD, REQUEST-DATA, +and REQUEST-EXTRA-HEADERS are used when retrieving URL. See also +`url-retrieve-synchronously'." (let* ((oauth2--token-data (cons token url))) (let ((oauth2--url-advice t) ;Activate our advice. (url-request-method request-method) @@ -270,8 +291,10 @@ TOKEN can be obtained with `oauth2-auth'." cbargs request-method request-data request-extra-headers) "Retrieve an URL asynchronously using TOKEN to access it. -TOKEN can be obtained with `oauth2-auth'. CALLBACK gets called with CBARGS -when finished. See `url-retrieve'." +TOKEN can be obtained with `oauth2-auth'. CALLBACK gets called with +CBARGS when finished. TOKEN can be obtained with `oauth2-auth'. +REQUEST-METHOD, REQUEST-DATA, and REQUEST-EXTRA-HEADERS are used when +retrieving URL. See also `url-retrieve'." ;; TODO add support for SILENT and INHIBIT-COOKIES. How to handle this in `url-http-handle-authentication'. (let* ((oauth2--token-data (cons token url))) (let ((oauth2--url-advice t) ;Activate our advice. -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 01/11] Small fix for backtrace-frame Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:48:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472203023486 (code B ref 79168); Sat, 09 Aug 2025 06:48:03 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:10 +0000 Received: from localhost ([127.0.0.1]:39942 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdME-00066e-D5 for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:10 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]:60831) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM1-00064F-7v for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:46:59 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-23ffa7b3b30so26796055ad.1 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722011; x=1755326811; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Hz/6uAh5PM+gE9nWMXQhEqPGel9ZL/XX+/4Elp+QmO8=; b=Teq1A/FJwLNFweC6qmHbN9nih1QLqXlCqRzoSQyHIxN1U/28YjMvJuiXWZToGNZMH0 ga9RcCIvWzd4i5GSFAVfTdjNQj5oPoFRKn44dN2KkYefiJj/GH/Wt5lPFIhtVxxrbwSP L4BKG12d7viTH7WZPIYEXpArN+WDVpbevq13fjTjd8K1c/vSR5OKok4BrY3qGdHwpzVL xUSuW3B14DQeyyH31oevYKpYfMChTJGzXjlM5MXaLpqA0erSqgl6kXZXZMH0FLY4xlLp aNOdZrmLsQimWDwK0pu+06YQVWXfUCou1mGJyjuJeFwRJDCJsdgnb/6mlzzapAeZMNFa GXiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722011; x=1755326811; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Hz/6uAh5PM+gE9nWMXQhEqPGel9ZL/XX+/4Elp+QmO8=; b=Hh0M91buD1ApoZf5sni7v+4UbEXZdKYJ2i0ZXCvTL6p822iPESiB/SjIlpVOCDRYlW lSIqvSFBAsOufO6vFVL4MCQok2fOgUBkfxtLAGaDqpZsAekQ/LfgBfJhaNZ3DH7gea/q UgrrGZ5OY3YYEZnHGXynDlJaljI0cQUIWOjoY9zc/UIIdZFhvrOY9rbMmfC/khVM4EHA HJpPNZHrwyt+JRWU7hCC16pb+6VbSLjsYlmNjIWzflexBTMtYH6j+aWwry0ON78yTULt cj7lqVqm4LzGHoV5uo2pqQIQ32sW5dfi7p7ed7qFLBKZneFqj+K0cwKBo5qxvzJa/lG7 2b6g== X-Gm-Message-State: AOJu0Yz+kYjftjcB6PNnprjixFOc97kX5qFvDEBOoaKmub3rF7R3OqXL kJdBeWUEq9/Af0S6P8FdeUuodfTEkKr9rO1Mozn+WGYqeaiGj+kTmU8WkXaopQ== X-Gm-Gg: ASbGncs3dcFKnfO5E8XqonpRCh7GkRgq7IubcJ1mnB/62hxvx0FuEWDsYWwoRqX/ojO UNyawt30apuo0wuLcHnbA29V9Ov00kIYNICtaexw8aaLIGRuEBQRqgE4L1HNoeN2HsMbEZ3GEGx hx5fqzNJ7/ZrremLYGEaRSFCQHLaJJU4t6a+3oXrlW49r8cY7du6tu8zfoGxCzVQTTNQmmjIpNq y6iyd98Gb14HVP1KZCJxRgd7fV4iEU0HC+IAXvUcjD/HNQbAb43gn2V23StxKL0+N3xpzwcGCXI trmqR2R4Rh4h2mw8v08gS1YJrqKLOgvXgD5L1EOWCv21/nD/dgWnokZ41yCaxj9KcvJcy8VPIMH 9a5rn2sgjhFmkNlL7u4RllVrYlott8B//7fxGjKHVI34pnxjhwtkGfOCipb37746HP7d5HM4= X-Google-Smtp-Source: AGHT+IGnhHnUHJ8882Bv2BSJbyQQrsL9j5uLf0DtHj9S/xPy9wd+6ORg3ljytpeb3cSeVu/0HPXqng== X-Received: by 2002:a17:903:1b26:b0:240:99f7:6c10 with SMTP id d9443c01a7336-242c1ffb220mr103473565ad.1.1754722010849; Fri, 08 Aug 2025 23:46:50 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241e8aabdedsm224858705ad.167.2025.08.08.23.46.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:49 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 672FFF408FD; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:40 -0700 Message-Id: <20250809064550.3751968-2-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250809064550.3751968-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * packages/oauth2/oauth2.el (oauth2-make-access-request): Using `(backtrace-frame 2)' for the intended function name. --- oauth2.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oauth2.el b/oauth2.el index 87e0c39c5c..70c59e7513 100644 --- a/oauth2.el +++ b/oauth2.el @@ -90,7 +90,7 @@ It returns the code provided by the service." (defun oauth2-make-access-request (url data) "Make an access request to URL using DATA in POST." - (let ((func-name (nth 1 (backtrace-frame 3)))) + (let ((func-name (nth 1 (backtrace-frame 2)))) (oauth2--do-debug "%s: url: %s" func-name url) (oauth2--do-debug "%s: data: %s" func-name data) (let ((url-request-method "POST") -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 08/11] Implement trivia debug message for more fine-grained logging Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:48:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472203123494 (code B ref 79168); Sat, 09 Aug 2025 06:48:03 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:11 +0000 Received: from localhost ([127.0.0.1]:39944 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdME-00066q-NT for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:11 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]:61530) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM1-00064G-D9 for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:46:59 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-32138e0d9adso2519916a91.2 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722011; x=1755326811; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2wIMPa/KyN1H098hC02463ntNcKFjnFZPf9nXMjAom0=; b=J/fXhA3GtGLsxnKF4lhj21C5D8OcGPH90Oz/lAYt00Gi0EVAkj0xQOc90SuU1NXStX S3j9erg+SuWpmPVRY3fY//+6Yw72YF1VpJzJtgEEfCgEnWIujDzJhyNwGV3yQke9PaaO eYfSzZSm450AicAe1G4o4jokfOVNC8gJjxw22QMtXJAZyi14Z97qRYnCiO079aSzbH1P QinlNXUpXKyasv5AtF00WaOFuetBeOj/NA9B4EJvvOpYBDlbnp6Umb/A5wZfEjrZkOat dOaeQEZoB2awEgAXC0fFQTxnKXl5+7KjaHwJHo6sStir4ydVwZ2vVkM6Wqy1e+OsKWKX Mysg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722011; x=1755326811; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2wIMPa/KyN1H098hC02463ntNcKFjnFZPf9nXMjAom0=; b=atytzbWICA/cW6XwIcJJJjpxt60BYbaezUQjG20Mvo+XkxV6dE4KTDj/ZvPjshP3Ae RlPPCL4Vp2LG6XFTxfinSjO7xFV5ku6zSyCGLZdn6YLMPzuRlB/zGJD0ZIJsUKVRtwnm qkPl3eNaPdb9RUW4LowfEHnzLCO3/U4cjWsV+NivqTy4hZ1Vbq/fiIkGl095a2+jMr/w yCJjfkv+x4Xg83SjbAj3LDcIbfrJ4zeBntBmraXvIM8if2bOgpvQfh3K7gaddAnII+ut ofbXm7Y9NxJ7qGvTFj+ymGJNGOI/czyWY3ba4s2T/W//fbe3WlRAWL1WI/vdr2g3l8Bu dbUg== X-Gm-Message-State: AOJu0YxHwUZYbkSC9aOZyh86aMaZYTMnSmQ+et70BOAaakRXaYd36xFv YzLwqqxBZlb+aDHDoRPS5Qx35yKk3iOSD4z08L+Wq4fnkTEMIa2fzGJrj9KY7g== X-Gm-Gg: ASbGncso2cC1uhG7DKkMBUscOJJzyEIpVxH7ojZikqCH8n44otk9KFSf469k/ZRaeDo TfLE0VWrpwxqvjbJ1bMBLuAxLO24veqYCcVfUM8eOPnOucVJgq23oa7wfw7ExJK+w+K7yFDy1kx 7smlm8GLLE3zzVUp+QxvESjFzSrq3V7FU7HNDv1hRs95/aqJKXQmYNTaIbIHEAyQEeJz3oMXlz0 XvrNpRLjvrDzsR5euxSyQC3AFTpD0dvChmKrJgIk0neN1hpC1Xu+189r2SeePtepdELsCNVdeSh bHikkJ1yZPt88EXskrvDF3bLAE9X5O41HHT+Rp/azWmjgzwkpzKGPXgnvwy1CehOKcEtwhQ0DXZ UyW/JGA5eqQDK5WdOFdpwFxEk21lG+qmGPSilfCalQHdy3jk7+y0JAYEHtX/2+489JaS9O8c= X-Google-Smtp-Source: AGHT+IE8aIyfrvt8Hyu7oSvr95H14vnHrpZW5rVqbfnnXd75WMN+bRCYKuy2mGTaqOYYK5UQtejlzA== X-Received: by 2002:a17:90b:1f90:b0:31e:c8fc:e630 with SMTP id 98e67ed59e1d1-32183c46068mr7753624a91.26.1754722011182; Fri, 08 Aug 2025 23:46:51 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-32161259a48sm9543405a91.18.2025.08.08.23.46.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:50 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 7D413F40991; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:47 -0700 Message-Id: <20250809064550.3751968-9-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250809064550.3751968-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * packages/oauth2/oauth2.el: Add oauth2--do-warn, oauth2--do-trivia. * packages/oauth2/oauth2.el (oauth2-make-access-request): Use oauth2--do-trivia for detailed logging. --- oauth2.el | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/oauth2.el b/oauth2.el index 6f7b6a27db..eb2ae0cb9b 100644 --- a/oauth2.el +++ b/oauth2.el @@ -65,11 +65,24 @@ (defvar oauth2--url-advice nil) (defvar oauth2--token-data) +(defun oauth2--do-warn (&rest msg) + "Actual function to log MSG based on how `oauth2-debug' is set." + (setcar msg (concat "[oauth2] " (car msg))) + (apply (if (functionp oauth2-debug) + oauth2-debug + 'message) + msg)) + +(defun oauth2--do-trivia (&rest msg) + "Output debug message when `oauth2-debug' is set to \\='trivia." + (when (or (eq oauth2-debug 'trivia) + (functionp oauth2-debug)) + (apply #'oauth2--do-warn msg))) + (defun oauth2--do-debug (&rest msg) "Output debug messages when `oauth2-debug' is enabled." (when oauth2-debug - (setcar msg (concat "[oauth2] " (car msg))) - (apply #'message msg))) + (apply #'oauth2--do-warn msg))) (defun oauth2-request-authorization (auth-url client-id &optional scope state redirect-uri) @@ -109,8 +122,8 @@ Returns the code provided by the service." (defun oauth2-make-access-request (url data) "Make an access request to URL using DATA in POST requests." (let ((func-name (nth 1 (backtrace-frame 2)))) - (oauth2--do-debug "%s: url: %s" func-name url) - (oauth2--do-debug "%s: data: %s" func-name data) + (oauth2--do-trivia "%s: url: %s" func-name url) + (oauth2--do-trivia "%s: data: %s" func-name data) (let ((url-request-method "POST") (url-request-data data) (url-request-extra-headers @@ -118,7 +131,8 @@ Returns the code provided by the service." (with-current-buffer (url-retrieve-synchronously url) (let ((data (oauth2-request-access-parse))) (kill-buffer (current-buffer)) - (oauth2--do-debug "%s: response: %s" func-name (prin1-to-string data)) + (oauth2--do-trivia "%s: response: %s" func-name + (prin1-to-string data)) data))))) (cl-defstruct oauth2-token -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 04/11] Rename internal variables using consistent oauth2 prefix Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:48:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472203123502 (code B ref 79168); Sat, 09 Aug 2025 06:48:04 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:11 +0000 Received: from localhost ([127.0.0.1]:39946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdMF-00066t-4Z for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:11 -0400 Received: from mail-pg1-x52c.google.com ([2607:f8b0:4864:20::52c]:51681) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM1-00064D-0N for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:46:59 -0400 Received: by mail-pg1-x52c.google.com with SMTP id 41be03b00d2f7-b423036a317so1812341a12.3 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722011; x=1755326811; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8ico8BxqtPU0Bh4RChqT2aKV/Uiv6oypIZIZny53VO8=; b=AW1AVJP+oefYBu4CJHaNOjX6rz6mR655bksjJ3Xlx19lFVmSILVTiI5oxE2dTNw7CS ohri2cUUbk145MeTRQJaTvGaWnM2bI+W56/9h3/LXBRq3lwYvVKPvGninlmeCPxvHu7n zYlo9HyiG1kos973WKMnH+fMqpdki2pLcGNOKeSKqGDZnxbtinNWSV/AGDnOtN2mZLmN uNOKfxS0wxP1LhS9MDGknCajVGl/6/AKq5PVgyPKYzS9vWKEGg82Mgjr35LtZLZ2o3xo rcgqUCST2ZwoTFypxf9/8k4KRz8q2zxG1WsykXxI9QGD+40qxHj4tUMPsmfFrAV4GRWy BkXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722011; x=1755326811; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8ico8BxqtPU0Bh4RChqT2aKV/Uiv6oypIZIZny53VO8=; b=sCvqwx4e/mXNMfSFNrW15HCa+YiBmwbwFfu4cF4f5koKF3hXPYAvZJDNvKaYN/yz4t LZ5qnheQ0sqdQv3BF+jAQC6obepYTRrGu0FMVH4A695R2HklNXhm7G+Y5lBjBZDZWtsd LLvlCQvSo/An03kLtx2RqAprRo71xynumHpu8GYbaEXSdHXuz/GdKiAiPgbs4T3cGamT NoIkq7ucPhEcmETt5P/TifZoVxtWZMaTJ4CPsY4vQN8fIHuNGHVxBPZRTsBZKNRBDzeS bTPHaEtx18U3XGnG/eDOn88QDaO9xa/0dsGC7lnXsTl747hNAs4bzowcwQV8Xw5btw5X 8KHA== X-Gm-Message-State: AOJu0Yyq8LE7fV1d0omFRtYb8UvQdRfalJElFxru3SAl+MP/0cAtzeYF N1Iuo+cEt0q0gp9GP+rMeiqU6h0eQkkHW0Vde4lpAMPoiemCO5YS7LmCUjq3ww== X-Gm-Gg: ASbGncswmY4f0TH9fApkplp5lv0QF5Oq8hu5OkuU3g57+nJlKrgzWhgNc4y+9r67PFU wZDzmQwnb84ZADSh2A+PdsoaF9v9JUHkhiKcIc1Ao+P+ShbzfAdcJQbEGl5x+R4Vftpba22cSou mS/WTap0NrFlP5XA7SUjipePwvvt2uWmxY0Aw755Ai38X22mH2usLFnbagIjGjdi2PrOjVCVXgY WQu67cCDfJyoxQs/LbOsb4Okiv1nm2jeRNCTtXw27aVMfRfMTyTAbgjp2pj75iQGrSVt/gPPaC5 ompoHoHfJRFzHbL2MCR/rT7zUSrsWVOe8OaPcCBG7eeoP9TUVw1szPpAWNKRktb8lUiQiaNuGKm X7PDuNIihN5FN3enKDVCAFTYOOsjZLDE90ZMSJvZpuzVw9j7fo3XCME/rLFIclSUuVcFckpU= X-Google-Smtp-Source: AGHT+IGdWVzoHsigVxVkzw0MF7kamI8ZWfiHXuDrzJu4mTn4JSA5tY76k8Vo+tjhOKT43sr80wc/HQ== X-Received: by 2002:a17:903:2a87:b0:240:7c39:9e4f with SMTP id d9443c01a7336-242c222b2bdmr88481385ad.42.1754722010560; Fri, 08 Aug 2025 23:46:50 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1ef6a8fsm222557355ad.23.2025.08.08.23.46.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:49 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 70A5EF40931; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:43 -0700 Message-Id: <20250809064550.3751968-5-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250809064550.3751968-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) (Adapted from bug#52476 by Aleksandr Vityazev.) * packages/oauth2/oauth2.el: Rename internal variables oauth--url-advice and oauth--token-data to use oauth2 prefix. --- oauth2.el | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/oauth2.el b/oauth2.el index eccf439130..ef82a64c5f 100644 --- a/oauth2.el +++ b/oauth2.el @@ -61,8 +61,8 @@ (defvar oauth2-debug nil "Enable verbose logging in oauth2 to help debugging.") -(defvar oauth--url-advice nil) -(defvar oauth--token-data) +(defvar oauth2--url-advice nil) +(defvar oauth2--token-data) (defun oauth2--do-debug (&rest msg) "Output debug messages when `oauth2-debug' is enabled." @@ -231,20 +231,20 @@ This allows to store the token in an unique way." (defun oauth2-extra-headers (extra-headers) "Return EXTRA-HEADERS with `Authorization: Bearer' added." - (cons (oauth2-authz-bearer-header (oauth2-token-access-token (car oauth--token-data))) + (cons (oauth2-authz-bearer-header (oauth2-token-access-token (car oauth2--token-data))) extra-headers)) ;; FIXME: We should change URL so that this can be done without an advice. (defun oauth2--url-http-handle-authentication-hack (orig-fun &rest args) - (if (not oauth--url-advice) + (if (not oauth2--url-advice) (apply orig-fun args) (let ((url-request-method url-http-method) (url-request-data url-http-data) (url-request-extra-headers (oauth2-extra-headers url-http-extra-headers))) - (oauth2-refresh-access (car oauth--token-data)) - (url-retrieve-internal (cdr oauth--token-data) + (oauth2-refresh-access (car oauth2--token-data)) + (url-retrieve-internal (cdr oauth2--token-data) url-callback-function url-callback-arguments) ;; This is to make `url' think it's done. @@ -257,8 +257,8 @@ This allows to store the token in an unique way." (defun oauth2-url-retrieve-synchronously (token url &optional request-method request-data request-extra-headers) "Retrieve an URL synchronously using TOKEN to access it. TOKEN can be obtained with `oauth2-auth'." - (let* ((oauth--token-data (cons token url))) - (let ((oauth--url-advice t) ;Activate our advice. + (let* ((oauth2--token-data (cons token url))) + (let ((oauth2--url-advice t) ;Activate our advice. (url-request-method request-method) (url-request-data request-data) (url-request-extra-headers @@ -273,8 +273,8 @@ TOKEN can be obtained with `oauth2-auth'." TOKEN can be obtained with `oauth2-auth'. CALLBACK gets called with CBARGS when finished. See `url-retrieve'." ;; TODO add support for SILENT and INHIBIT-COOKIES. How to handle this in `url-http-handle-authentication'. - (let* ((oauth--token-data (cons token url))) - (let ((oauth--url-advice t) ;Activate our advice. + (let* ((oauth2--token-data (cons token url))) + (let ((oauth2--url-advice t) ;Activate our advice. (url-request-method request-method) (url-request-data request-data) (url-request-extra-headers -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 07/11] Drop unused code Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:48:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472203223509 (code B ref 79168); Sat, 09 Aug 2025 06:48:04 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:12 +0000 Received: from localhost ([127.0.0.1]:39948 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdMF-000671-Im for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:12 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]:61677) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM2-00064J-8S for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:00 -0400 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-76bdce2ee10so2470947b3a.2 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722012; x=1755326812; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iG7MThcYi/UsVHz9GBVvQGaAL19MbK56PAvE6ZiSy7o=; b=VMwGjHgxRxtcn38rKnVOedAgYx2bKKSvEldPk/9y5u6wzSlTloA4xoc+56FJ0Owemk 2nIXqpv4ZkFaTvCM3/2WshSdShmBg0gn7zdAcqXycZYX223HZrYL9NN9QIAwSaNQBejc afrb6rrWNrfKV7VjfO4Z6VUMrGHrhfjHtDaaZwh0uFcx/EWRInUj+Npv/QTLu6T/o/IX FmW6hegs+GyaylxwWnIbqHbSONNDBhz7VFs5RgcYqqgpkILGgVsZpJHQ3hzKgbNnIk9k o+Tl573CM9EMnQCahUQSXA7sTp+fgQUcLCaLCh6uBKQMZ5qrKu6nXVGAUXATjGST7Xxc m6GA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722012; x=1755326812; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iG7MThcYi/UsVHz9GBVvQGaAL19MbK56PAvE6ZiSy7o=; b=gOBzO/t5zcZDwvfU+LSGzoJRcWmNnF4wnZQ0iBrvQAn2YIL+6+jqV7H05FY3VdQ8FH CI6iDsOnxb3I95W+4nUWkYPGW0iSNvQAtiP+XLG8eCY6z+kmxic+1wW+G5PiCgDTQD0R z+P4YDV9u541RaGzwXRcTV+e/0UOs/ffjfmDj2R0aQ0tWDt0rsD7jKjHm1IVjM1uAMvi J6sTY2keICNaB0t6NldtHnkPCY4hVw2i9cL6Ub56/LycYJmR0IDcg0NFJegSjIZ/AYDf uB6M8N5lt3X3ZbhxrUlesD7O6G99Ms0DSUWZkdMQFsztrATRtN6g9ivzlBypU8BLkL5E ffkg== X-Gm-Message-State: AOJu0YxfISm4nr1AYmunHcvcWXpPzx8g4qlI26DNkzYeqeJ8/GFlhTU8 4q8rykOab8sE0+szVRgB0fiVPQi5++PjzBtndHTQXPd4t58g81VkIcMJtwtNBQ== X-Gm-Gg: ASbGncv68zgQcWzRa7Q8CByPPGnidYABPEi49d7xKFr/J3uPbun9lK78eESJJmHmun/ MZPR3Rtf2rNw82jnX0z79pm4pWGJghr8lMZhTn7AA6H09cjStG2A2a86H/YrOmXh0OoBQAAYHEz jRvT5rVvQixsIgvywAktgLafhfGbjYHFAMiVkjPgKZlyrA+3FD+u0VC16l4yJ/JfbNO6myHgJWw i9bV341+hFeveiHUIuCPERQQxEx5Trta5kjuJhn4vaFiJeBI0fdolPwZKwMc9JdZEzv6wzjkkDk 7PV4vLpaHVMhXlAf6M2gO82KuTEu36SghFMN2Qd56Mu/M2wU+P3IZ/hcFLfQfFYRwNqtMWPRoDa tJuL3ujd0GvSfuuLejXb5fJzNjEcBMLQ278Q7oe+i3P6vifqwlIBvIeLTYh4Ztr+A5/eMY4g= X-Google-Smtp-Source: AGHT+IFxTH9CLM5kPyBpXov+vdde+t8Qvb2MbvEeQo7GQDn4l6YcNRjjvarzstMoicK0AjglfH0n2A== X-Received: by 2002:a05:6a20:7d9e:b0:240:a06:7837 with SMTP id adf61e73a8af0-240550468a2mr9654752637.17.1754722011954; Fri, 08 Aug 2025 23:46:51 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b43c54fbce4sm686205a12.55.2025.08.08.23.46.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:50 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 7A3B4F40988; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:46 -0700 Message-Id: <20250809064550.3751968-8-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250809064550.3751968-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * packages/oauth2/oauth2.el: Drop functions oauth2-url-append-access-token, oauth2-authz-bearer-header, oauth2-extra-headers, oauth2--url-http-handle-authentication-hack, oauth2-url-retrieve-synchronously, oauth2-url-retrieve. These functions are not used by other functions and not required for getting or refreshing token info. * packages/oauth2/oauth2.el: Drop requirement of `(nadvice "0.3")'; no longer using advice. --- oauth2.el | 72 +------------------------------------------------------ 1 file changed, 1 insertion(+), 71 deletions(-) diff --git a/oauth2.el b/oauth2.el index 4541893346..6f7b6a27db 100644 --- a/oauth2.el +++ b/oauth2.el @@ -5,7 +5,7 @@ ;; Author: Julien Danjou ;; Version: 0.17 ;; Keywords: comm -;; Package-Requires: ((cl-lib "0.5") (nadvice "0.3")) +;; Package-Requires: ((cl-lib "0.5")) ;; This file is part of GNU Emacs. @@ -248,76 +248,6 @@ Returns an `oauth2-token'." (plstore-save plstore) token)))) -(defun oauth2-url-append-access-token (token url) - "Append access token to URL." - (concat url - (if (string-match-p "\?" url) "&" "?") - "access_token=" (oauth2-token-access-token token))) - -(defun oauth2-authz-bearer-header (token) - "Return `Authoriztions: Bearer' header with TOKEN." - (cons "Authorization" (format "Bearer %s" token))) - -(defun oauth2-extra-headers (extra-headers) - "Return EXTRA-HEADERS with `Authorization: Bearer' added." - (cons (oauth2-authz-bearer-header - (oauth2-token-access-token (car oauth2--token-data))) - extra-headers)) - - -;; FIXME: We should change URL so that this can be done without an advice. -(defun oauth2--url-http-handle-authentication-hack (orig-fun &rest args) - (if (not oauth2--url-advice) - (apply orig-fun args) - (let ((url-request-method url-http-method) - (url-request-data url-http-data) - (url-request-extra-headers - (oauth2-extra-headers url-http-extra-headers))) - (oauth2-refresh-access (car oauth2--token-data)) - (url-retrieve-internal (cdr oauth2--token-data) - url-callback-function - url-callback-arguments) - ;; This is to make `url' think it's done. - (when (boundp 'success) (setq success t)) ;For URL library in Emacs<24.4. - t))) ;For URL library in Emacs≥24.4. -(advice-add 'url-http-handle-authentication :around - #'oauth2--url-http-handle-authentication-hack) - -;;;###autoload -(defun oauth2-url-retrieve-synchronously (token url &optional request-method - request-data - request-extra-headers) - "Retrieve an URL synchronously using TOKEN to access it. -TOKEN can be obtained with `oauth2-auth'. REQUEST-METHOD, REQUEST-DATA, -and REQUEST-EXTRA-HEADERS are used when retrieving URL. See also -`url-retrieve-synchronously'." - (let* ((oauth2--token-data (cons token url))) - (let ((oauth2--url-advice t) ;Activate our advice. - (url-request-method request-method) - (url-request-data request-data) - (url-request-extra-headers - (oauth2-extra-headers request-extra-headers))) - (url-retrieve-synchronously url)))) - -;;;###autoload -(defun oauth2-url-retrieve (token url callback - &optional cbargs request-method request-data - request-extra-headers) - "Retrieve an URL asynchronously using TOKEN to access it. -TOKEN can be obtained with `oauth2-auth'. CALLBACK gets called with -CBARGS when finished. TOKEN can be obtained with `oauth2-auth'. -REQUEST-METHOD, REQUEST-DATA, and REQUEST-EXTRA-HEADERS are used when -retrieving URL. See also `url-retrieve'." - ;; TODO add support for SILENT and INHIBIT-COOKIES. How to handle this in - ;; `url-http-handle-authentication'. - (let* ((oauth2--token-data (cons token url))) - (let ((oauth2--url-advice t) ;Activate our advice. - (url-request-method request-method) - (url-request-data request-data) - (url-request-extra-headers - (oauth2-extra-headers request-extra-headers))) - (url-retrieve url callback cbargs)))) - (provide 'oauth2) ;;; oauth2.el ends here -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 10/11] Close the plstore handle after use Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:48:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472203223516 (code B ref 79168); Sat, 09 Aug 2025 06:48:05 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:12 +0000 Received: from localhost ([127.0.0.1]:39950 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdMG-000678-46 for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:12 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]:52512) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM2-00064K-Kn for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:01 -0400 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-76bd9d723bfso2614704b3a.1 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722012; x=1755326812; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Z09ORTNh510xOSIaxU0K2TfrgkQuv0dmJw27rpIoVL0=; b=MQd4wqwTbJz3i31sD5jVEs0itSkwyw6hTQdsKMhbKszaTCVNEiFb176gYjkCWPhta/ VvQ96Ty2KuuiqxLMX7jrDDuXYxtI8qnyTIMFoH9ml9NgxjBPWPGkmuxKPu5nUGlOpYtg I9/5KfDZPGw7HpxoE6D/qFWwz4AHmm0b9+jOnjT75IdCrpUFr+jsMayksvzk6Wj77OM1 tICjoCJwBSLCvbryBfZmwQc3g9wivBNMg+uL8fsz2NVRbEIJW0VXsHB1eVchrRicYZwm IrlzHUcstbIFWYjW4H/Z80idpdnppeXIl/UjznnTBx2FgQ/Hbl/eYUPog7RTmvZVTjn4 oUng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722012; x=1755326812; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Z09ORTNh510xOSIaxU0K2TfrgkQuv0dmJw27rpIoVL0=; b=uPO0EPIxxWLwwjwmU/ZNF08rUfFL/bPjN+kYKQZj18hPqjEeEeIj3OeO9nHUjuT1tW d9S3Ek0dyTy+P2GqBJjwpj8xifkLcrH3VZn6Tid7h2fuCsWD5K9PIwTursxuLVaJM5Th RZ/Pnd13HIsTtl8Mbo4hsAMfEfyd7/tYCRZsHsFBjjug9ytNcbS8YQUaLOJN+BpNHQjo 4s5QpOtazHeQnqOxEL+RUQ1lsUDXSBpT7iJpPR+NYS2E56xDoLSI+V1pdDuEMCLRxE8B 6NHp4L58qYaUnG/zdqXLkUSYs+WWeouPsJPk9cPIyJSqnlqe0/aaioCiDG7S9kJDzFWh RD6Q== X-Gm-Message-State: AOJu0YyGBUi/qy+80nat/Sym1jrcQdZFBkI+lMVO0Nq0NZgUTzAWzCJG fKtz53TR/JoHzAwzojzE0mT8ONj35rKDXQaD5dHOv+Ul5lT4ji0iB/o8G+1YRA== X-Gm-Gg: ASbGncsJY3utP9Rist/ZTHYX6FBAwukc+n/GIAcRcJPq7QDNkD7RBzXGndwNXTWCHdq y9wDVMUJd0bYvn7MJPT2eAwG4XWSvP09sDKaZJ/UzLsyt2Ky7/BbIVis6lymbHX0XT58aRvu9/S I2rYfDWNTEutCno3U84JG+pQjYqnJqCT0XDVpUQdTQOfpd06q3uoVcUNyWpRdU7W/YucZYceaj6 yNpX8xqKZOo1OuHfetU2FrUk/WT06PCmH3TOBAabAugqcCQzOtH2xZkUEh+pIOL7dMOqr97GbDV GUSeQQg5pmL0SniDslzmhDkw3l2hCMW5lwY7LIJ2TavqcyrOj7isiqfwoHWnZh5kuD4gm4ibsgt 545YJol1lIbzcAT4yB9evpiA9cXwMLnsmxs/G9ZUvDCVEdcDDekBJ6Y8Fgt8t/tyPTrmXibc= X-Google-Smtp-Source: AGHT+IHkmIsnAUmNPATVKD96x5GXXL/7Ao222uCGGywH2NN7FK0tZgcvE3RRKdoGKlUnmxRXfJXmTw== X-Received: by 2002:a05:6a20:1611:b0:240:1e97:7a15 with SMTP id adf61e73a8af0-2405513c070mr8043999637.27.1754722012340; Fri, 08 Aug 2025 23:46:52 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4290df0bdcsm5066539a12.34.2025.08.08.23.46.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:50 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 83641F4137C; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:49 -0700 Message-Id: <20250809064550.3751968-11-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250809064550.3751968-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Before this, the plstore stores a handle to `oauth2-token-file' and it is kept open at all times. This may cause issues when the file is accessed by other processes and it may confuse Emacs. This patch ensures that the plstore is properly closed upon each use. Note that after this change, the plstore field in oauth2-token is unused and will always be nil, but is kept for backward-compatibility for now. * packages/oauth2/oauth2.el (oauth2--with-plstore): Add macro. * packages/oauth2/oauth2.el (oauth2-refresh-token, oauth2-auth-and-store): Use oauth2--with-plstore to ensure closing the plstore file. --- oauth2.el | 57 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/oauth2.el b/oauth2.el index 87fa1f0793..e4e9ff8d6c 100644 --- a/oauth2.el +++ b/oauth2.el @@ -84,6 +84,13 @@ (when oauth2-debug (apply #'oauth2--do-warn msg))) +(defmacro oauth2--with-plstore (&rest body) + "A macro that ensures the plstore is closed after use." + `(let ((plstore (plstore-open oauth2-token-file))) + (unwind-protect + (progn ,@body) + (plstore-close plstore)))) + (defun oauth2--current-timestamp () "Get the current timestamp in seconds." (time-convert nil 'integer)) @@ -231,7 +238,7 @@ TOKEN should be obtained with `oauth2-request-access'." "&refresh_token=" (oauth2-token-refresh-token token) "&grant_type=refresh_token"))))) - (when-let* ((plstore (oauth2-token-plstore token))) + (oauth2--with-plstore (oauth2--update-plstore plstore token))) token) @@ -267,31 +274,29 @@ redirect response. Returns an `oauth2-token'." ;; We store a MD5 sum of all URL - (let* ((plstore (plstore-open oauth2-token-file)) - (plstore-id (oauth2-compute-id auth-url token-url scope client-id)) - (plist (cdr (plstore-get plstore plstore-id)))) - ;; Check if we found something matching this access - (if plist - ;; We did, return the token object - (make-oauth2-token :plstore plstore - :plstore-id plstore-id - :client-id client-id - :client-secret client-secret - :access-token (plist-get plist :access-token) - :refresh-token (plist-get plist :refresh-token) - :request-timestamp (plist-get plist - :request-timestamp) - :auth-url auth-url - :token-url token-url - :access-response (plist-get plist :access-response)) - (let ((token (oauth2-auth auth-url token-url - client-id client-secret state - redirect-uri))) - ;; Set the plstore - (setf (oauth2-token-plstore token) plstore) - (setf (oauth2-token-plstore-id token) plstore-id) - (oauth2--update-plstore plstore token) - token)))) + (oauth2--with-plstore + (let* ((plstore-id (oauth2-compute-id auth-url token-url scope client-id)) + (plist (cdr (plstore-get plstore plstore-id)))) + ;; Check if we found something matching this access + (if plist + ;; We did, return the token object + (make-oauth2-token :plstore-id plstore-id + :client-id client-id + :client-secret client-secret + :access-token (plist-get plist :access-token) + :refresh-token (plist-get plist :refresh-token) + :request-timestamp (plist-get plist + :request-timestamp) + :auth-url auth-url + :token-url token-url + :access-response (plist-get plist :access-response)) + (let ((token (oauth2-auth auth-url token-url + client-id client-secret state + redirect-uri))) + ;; Set the plstore + (setf (oauth2-token-plstore-id token) plstore-id) + (oauth2--update-plstore plstore token) + token))))) (provide 'oauth2) -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 09/11] Support reusing cached access-token before it expires Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:48:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472203323524 (code B ref 79168); Sat, 09 Aug 2025 06:48:05 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:13 +0000 Received: from localhost ([127.0.0.1]:39952 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdMG-00067F-Im for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:13 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]:42447) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM2-00064L-O8 for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:01 -0400 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-7682560a2f2so3055590b3a.1 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722012; x=1755326812; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=89oXYIJlB+sDBmqjZxDrfVVNc2O+fFo4sbUahFOi+EQ=; b=YiOXg80tg7Mq8/7aDJ773VYi1LwID6FEX/uT8nSdNGA6UiNv/1kI7cMbPtvTrbkhDV /aflYDGlxJ7IW/yczj/5VK3VVrz4olg27DsmJEf+6ywiFcyNR6vFW8qRGi/tTOjouTj7 Ct5NfJnit7K9HvmTquoluRUw7JnoNW4eJlErLUz2yQXr8K6tvdTkX8vJwAaQLlcPuwgP t5MsC/JcHIyDsJU07+trkTGGJSjOrKZHm2zt+Jx4DFqhJzby15T/I0QCAXahA3q7ywoL 8sMldf1FluE9D8eKBGb1ZvpegKDjxBtDYUa9NJPGEq+1wDc/MchLcYFLhVAGfJqQxtdR FNew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722012; x=1755326812; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=89oXYIJlB+sDBmqjZxDrfVVNc2O+fFo4sbUahFOi+EQ=; b=oCvrqnTlW5H4vLvX5X/3y4/+BpsCf1FhelyxyZ6LO5jNAFop+vrNfE+/EOHHGrRaVO mrLMWmcEwV3K3RKx9EgW9kBqV+MpA7P0KR3aO73VcRFbx9U02ZQ/B3jO05SAkK8oWcs6 Iqo3vp1PjSg8pmelJUH/g4DnoVe9wr+j2/EnJbduz4cSHmPTJtXAPfTzTlL2/8/XRycj LAjasIh1zAEao+/iO63pKnpdzMhtVuM2L/xrNGtEjG1sKzvjQ00V/H/SxilJ4JBYu1rE v1BYU+wUwSfPPhLdv+1K6tvzHxb/5WY9NBzRug7kvNYty92+u1RXR9KtBZh5fv53dDzt pr8A== X-Gm-Message-State: AOJu0YxH919EXXoyDtRrU/m+ovQjN15gcU92vSouXV7cb433sBv9DmOD /huXGDthj32ohyHoyv4/yef9Die2IMKUVTyZ/bSiOBV+7bsnHLjDeeHTOiPchQ== X-Gm-Gg: ASbGncsJQxTTW4QkpfZ52cd4JjXmdsHJgUmX8o5G+N6+pEExwRLGCQKzwa05onprBml nPIBxU0nyIEmxsXQBgN8YkdzZDS6OPEbXpU+jB4sA0zH7mnsIu7wVVPUbsgWIce4nIsydEYnusO +oglHmBnmgMYDlyMkcHL9KKPJYIZrSR1dgJ0tX/R7UDYtCZZObH90TtpHncVl9FHrG9jcOQLViF swfZpsosQMGEXlQElgk9AQdQtaF5y90Nl2EVrUGS3m7mKiVkMLIG9Mdu3MMsYdGlFMu/Hx5ehQ4 kJvV8uQ2HY4s0X5W+a4qkwDVIGJ4VZCp8/q7itRxjxFNGXIMIseKgck6jgaWZL5BKudgtt+YTNx hYSnZ9L8w5vuWPPgdrMS6dDM5/80BQJuXd+iymm3ryt5X+W2FtFKymaeuQeruU4OrRpm70uY= X-Google-Smtp-Source: AGHT+IHmTQA4aZxtMUVVryJvWxzeOWLi1JQFSIKygZ2iWf93tFdEqxY23DMcLcINn0065lyneyzgkg== X-Received: by 2002:a05:6a00:a28:b0:748:e2d8:100d with SMTP id d2e1a72fcca58-76c3737aa02mr12630918b3a.8.1754722012556; Fri, 08 Aug 2025 23:46:52 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bccfbcea9sm21958659b3a.61.2025.08.08.23.46.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:50 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 8089AF40AC6; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:48 -0700 Message-Id: <20250809064550.3751968-10-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250809064550.3751968-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * packages/oauth2/oauth2.el (oauth2-token): Added new fields `auth-url' and `request-timestamp' to support retrieving the cached tokens and calculate expiration. * packages/oauth2/oauth2.el (oauth2--current-timestamp): Add. * packages/oauth2/oauth2.el (oauth2--update-plstore): Refactor code for updating plstore storage in this function to avoid duplication. * packages/oauth2/oauth2.el (oauth2-refresh-access): implement reusing existing access-token if not expired. --- oauth2.el | 109 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 70 insertions(+), 39 deletions(-) diff --git a/oauth2.el b/oauth2.el index eb2ae0cb9b..87fa1f0793 100644 --- a/oauth2.el +++ b/oauth2.el @@ -84,6 +84,23 @@ (when oauth2-debug (apply #'oauth2--do-warn msg))) +(defun oauth2--current-timestamp () + "Get the current timestamp in seconds." + (time-convert nil 'integer)) + +(defun oauth2--update-plstore (plstore token) + "Update the file storage with handle PLSTORE with the value in TOKEN." + (plstore-put plstore (oauth2-token-plstore-id token) + nil `(:access-token + ,(oauth2-token-access-token token) + :refresh-token + ,(oauth2-token-refresh-token token) + :request-timestamp + ,(oauth2-token-request-timestamp token) + :access-response + ,(oauth2-token-access-response token))) + (plstore-save plstore)) + (defun oauth2-request-authorization (auth-url client-id &optional scope state redirect-uri) "Request OAuth authorization at AUTH-URL by launching `browse-url'. @@ -142,11 +159,13 @@ Returns the code provided by the service." client-secret access-token refresh-token + request-timestamp + auth-url token-url access-response) -(defun oauth2-request-access (token-url client-id client-secret code - &optional redirect-uri) +(defun oauth2-request-access (auth-url token-url client-id client-secret code + &optional redirect-uri) "Request OAuth access. TOKEN-URL is the URL for making the request. CLIENT-ID and CLIENT-SECRET are provided by the service provider. The CODE should be @@ -156,8 +175,10 @@ usually \"urn:ietf:wg:oauth:2.0:oob\". Returns an `oauth2-token'." (when code - (let ((result + (let ((request-timestamp (oauth2--current-timestamp)) + (result (oauth2-make-access-request + auth-url token-url (url-encode-url (concat @@ -171,6 +192,8 @@ Returns an `oauth2-token'." :client-secret client-secret :access-token (cdr (assoc 'access_token result)) :refresh-token (cdr (assoc 'refresh_token result)) + :request-timestamp request-timestamp + :auth-url auth-url :token-url token-url :access-response result)))) @@ -178,36 +201,47 @@ Returns an `oauth2-token'." (defun oauth2-refresh-access (token) "Refresh OAuth access TOKEN. TOKEN should be obtained with `oauth2-request-access'." - (setf (oauth2-token-access-token token) - (cdr (assoc 'access_token - (oauth2-make-access-request - (oauth2-token-token-url token) - (concat "client_id=" (oauth2-token-client-id token) - (when (oauth2-token-client-secret token) - (concat "&client_secret=" - (oauth2-token-client-secret token))) - "&refresh_token=" - (oauth2-token-refresh-token token) - "&grant_type=refresh_token"))))) - ;; If the token has a plstore, update it - (let ((plstore (oauth2-token-plstore token))) - (when plstore - (plstore-put plstore (oauth2-token-plstore-id token) - nil `(:access-token - ,(oauth2-token-access-token token) - :refresh-token - ,(oauth2-token-refresh-token token) - :access-response - ,(oauth2-token-access-response token) - )) - (plstore-save plstore))) + (if-let* ((func-name (nth 1 (backtrace-frame 2))) + (current-timestamp (oauth2--current-timestamp)) + (request-timestamp (oauth2-token-request-timestamp token)) + (timestamp-difference (- current-timestamp request-timestamp)) + (expires-in (cdr (assoc 'expires_in + (oauth2-token-access-response token)))) + (cache-valid + (progn + (oauth2--do-trivia (concat "%s: current-timestamp: %d, " + "previous request-timestamp: %d, " + "timestamp difference: %d; " + "expires-in: %d, ") + func-name current-timestamp request-timestamp + timestamp-difference expires-in) + (< timestamp-difference expires-in)))) + (oauth2--do-debug "%s: reusing cached access-token." func-name) + + (oauth2--do-debug "%s: requesting new access-token." func-name) + (setf (oauth2-token-request-timestamp token) current-timestamp) + (setf (oauth2-token-access-token token) + (cdr (assoc 'access_token + (oauth2-make-access-request + (oauth2-token-token-url token) + (concat "client_id=" (oauth2-token-client-id token) + (when (oauth2-token-client-secret token) + (concat "&client_secret=" + (oauth2-token-client-secret token))) + "&refresh_token=" + (oauth2-token-refresh-token token) + "&grant_type=refresh_token"))))) + (when-let* ((plstore (oauth2-token-plstore token))) + (oauth2--update-plstore plstore token))) + token) ;;;###autoload (defun oauth2-auth (auth-url token-url client-id client-secret - &optional scope state redirect-uri) + &optional state redirect-uri) "Authenticate application via OAuth2." (oauth2-request-access + auth-url token-url client-id client-secret @@ -234,32 +268,29 @@ redirect response. Returns an `oauth2-token'." ;; We store a MD5 sum of all URL (let* ((plstore (plstore-open oauth2-token-file)) - (id (oauth2-compute-id auth-url token-url scope client-id)) - (plist (cdr (plstore-get plstore id)))) + (plstore-id (oauth2-compute-id auth-url token-url scope client-id)) + (plist (cdr (plstore-get plstore plstore-id)))) ;; Check if we found something matching this access (if plist ;; We did, return the token object (make-oauth2-token :plstore plstore - :plstore-id id + :plstore-id plstore-id :client-id client-id :client-secret client-secret :access-token (plist-get plist :access-token) :refresh-token (plist-get plist :refresh-token) + :request-timestamp (plist-get plist + :request-timestamp) + :auth-url auth-url :token-url token-url :access-response (plist-get plist :access-response)) (let ((token (oauth2-auth auth-url token-url - client-id client-secret scope state + client-id client-secret state redirect-uri))) ;; Set the plstore (setf (oauth2-token-plstore token) plstore) - (setf (oauth2-token-plstore-id token) id) - (plstore-put plstore id nil `(:access-token - ,(oauth2-token-access-token token) - :refresh-token - ,(oauth2-token-refresh-token token) - :access-response - ,(oauth2-token-access-response token))) - (plstore-save plstore) + (setf (oauth2-token-plstore-id token) plstore-id) + (oauth2--update-plstore plstore token) token)))) (provide 'oauth2) -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 11/11] Address several package-lint warnings/errors Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:48:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472203323530 (code B ref 79168); Sat, 09 Aug 2025 06:48:06 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:13 +0000 Received: from localhost ([127.0.0.1]:39954 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdMH-00067N-5Y for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:13 -0400 Received: from mail-pg1-x52c.google.com ([2607:f8b0:4864:20::52c]:47324) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM3-00064O-Hm for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:02 -0400 Received: by mail-pg1-x52c.google.com with SMTP id 41be03b00d2f7-879d2e419b9so2062536a12.2 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722013; x=1755326813; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/EwjUpvKy3c7LIXFayVcl5RaEAxpzqQDbwrgBez6glY=; b=SvctC719jdfgZYEbs/RGc1BgV6rqF7PKyn1wzi+F9qwZEj89ap3jmK3cIeOh8jT8G8 I2rguzl2Q+CJKgPw2wJBtP29AOiF0XbTU2iqE0RjE9mk3KGk/BGEBvwTh/Vy+2K+eJQQ ZTZkm+//MBywWlCRBLj8TWBxC2xY7an0FUS5UafyvvxRMD8w0In828pLL5Sye14WGxUH AfN8fSHVLoslu630S0jk8nhX8i4Nflm2pdgYC3uJFb/EZIMHuZkLIQAMMgwcJSe6JYcR gY+889WumbppRBDU4y66iWzaG7eIWHEhExgKbkXS0+KOd4nTPoUiC63ueEUZOjYRulSE f/9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722013; x=1755326813; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/EwjUpvKy3c7LIXFayVcl5RaEAxpzqQDbwrgBez6glY=; b=C6o8cKxIQGSfHwIF9OQkHQJmdPFOesotFusoSOeiA4vZvb4WganISnAURUgnfSCcD6 7E8RA4GSusaUivxaOJjYragtYGFhAA7rhmpCAwM18rGODR920uZfdcYo7+w2bT1kHk+o Eni55BZgamSBtZnaSY7/ju7zFFlHu3PQ0tZyZxuOqtwB8456AyXQRiw+j4F4pr3MYky1 hPD+7zwfbkAk/gPp4oxprzkCE6NHSnBF+mKACo2TVrjWdeIJpkOJohPkFNI3mn+PKv2e Qds+atj8z6FEzrN0VX1BdHmUi0MqOq1Lf+kLyuUZ/3RTANw65/c8j8SyPEou/a7vy4+L jCiQ== X-Gm-Message-State: AOJu0YxkIgrYpwNmb2I2gXr3beq4do7CVu2pl85UAYic3JwOJetubLql iKn6CRkghWXPKF5InjV3ZxtHm38HEd7J3vlUd6w2eEXWzF5VEERFNjFfoGBNaw== X-Gm-Gg: ASbGncsInOunpXQkSVy288M99lpbsKpBXFcK/+z/3GBLswJMAX/xik8JZVYlxQFpTLp sMrRUcJ0BDX/413mRtLRnlkW7qScqkHe+gPqVqr4zXZege+ptF5aCFCxUldjyzQ7SSKAsItTMld kjTbgXGRe3fAQXc7xKIgcEqTb8qToQM+EcOJVr/eF47mD7dQfrbkLWZDwSnXiYIVp5IpLbl/oUE oHEyLgjgiI/X5yEgmlPuNW6kF9L9E80Byrps82nvCwCKptMRtUuBjrw0NF0qBqftv8xXWIRJcJV jhSz6GxXUiknUSJsry3yKA8hPP4B6BZkwP0LQ3fyikDeNlsR9FwxkzPWyv3II256/uUKgjpP5xK 9wwLnq/EW8g1p87ObRUf2VdH+k8G6tP7+Gy6DkacN4DEeEBuTV53IutHziNzkYCGAV3HvgpLSqn U8rPr0cg== X-Google-Smtp-Source: AGHT+IEhQcMhDWRfTRJKnuektqWaybsnxwg6vYzFDAw1m8lW7EuzudLr6AbCS7BzdaEETqX9fYD2hA== X-Received: by 2002:a17:903:187:b0:242:3105:1787 with SMTP id d9443c01a7336-242c228d3b7mr81231825ad.50.1754722013370; Fri, 08 Aug 2025 23:46:53 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1f0e585sm223785425ad.40.2025.08.08.23.46.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:52 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 8685BF413B8; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:50 -0700 Message-Id: <20250809064550.3751968-12-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250809064550.3751968-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * packages/oauth2/oauth2.el: Add URL. * packages/oauth2/oauth2.el: Require (emacs "27.1") for `time-convert', `if-let*', plstore, etc., and drop (cl-lib "0.5") which is already met by newer emacs version. --- oauth2.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/oauth2.el b/oauth2.el index e4e9ff8d6c..73e3191063 100644 --- a/oauth2.el +++ b/oauth2.el @@ -4,8 +4,9 @@ ;; Author: Julien Danjou ;; Version: 0.17 +;; URL: https://elpa.gnu.org/packages/oauth2.html ;; Keywords: comm -;; Package-Requires: ((cl-lib "0.5")) +;; Package-Requires: ((emacs "27.1")) ;; This file is part of GNU Emacs. -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 06/11] Reformat most lines to be less than 80 characters long Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:48:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79168@debbugs.gnu.org Cc: Xiyue Deng Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472203423539 (code B ref 79168); Sat, 09 Aug 2025 06:48:06 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:47:14 +0000 Received: from localhost ([127.0.0.1]:39956 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdMH-00067Y-Ge for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:14 -0400 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]:46498) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdM3-00064M-7Q for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:47:02 -0400 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-b170c99aa49so1850585a12.1 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:46:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722013; x=1755326813; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=u+rlKLnis+scz94Gu0qfKr1mWExA1ptzHpy0bmubvuQ=; b=kpSCmAJPa6iFBtfck5JfMT9for9ZB55hpM2EFHnJakf+u/DEVIgOj435n0Qxiw+FKK ocJjZ3wjkDeGXgp5Pdxr3H7o5o78rWCYZ/n67zxNffD5LJJm09ien0ZdUbzK11MoioPr nX81wI2ioKPye2WPpiPSEsCCNUY6x+J1uOh3o9ue+HNiy2hqylwzqgUo9doDwSIZw0C7 nqXxxMrO/6XzqST0+ewL4pPOAgLw1XgHjKK/yWTvUlOj8CjLs7DwqbXtfIPkG6YxEwDB 6bmPMf2zyW7/6cVD6hZo2Nc2SUkwv9+i0sUMqWOh5ovuVsR1K8fkPjLb7Wq/W0xtCpM1 t0Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722013; x=1755326813; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u+rlKLnis+scz94Gu0qfKr1mWExA1ptzHpy0bmubvuQ=; b=EdYekohDu51hnvHDGiPGEO6HZgRLQl61XXFXyHIvV9INifr8NtpAFmHHWp9pk8kyA5 ZTkXdx391vJZ291C4xGi5v6cC14Ny1keimhsl+kfJVvGk7MW+L8+VoOHAtGxoRHUkKKv SYg/ClpdRB0YmlNrbml46sux0+05scj1NYNTZ1iiT5k/CMuC1wtXQbODYL0hgaaVc+SL K5FVry1osWPtAE9EBqqArQfX73jjxiW8wkYYTrz2GQxqRYGi9mjyuiLZZVFgHue1MFZV oaVo+fTq7B5VvnYAWS7fAPaHcXL+fJHChjKNj4s8NUxcWiujGvgR6TXcfGuq6r7PdANb M8Lg== X-Gm-Message-State: AOJu0YxVFLWvb61cCDgGmJ3w+0a60rjxXbxpfJ7ld2mOg/DYX1l1a+Bz 9YhnAsa3VsHZuOjzFYhgRtOWP4Sqd/hMlS+PH9KzG4I7mPM35F9khbbTYawzXw== X-Gm-Gg: ASbGncs/pKxKSl3qxSAoQdDkxt4Z1atRcXQ1s4TikXp5SCaxVepOcFaiZfuSUBgNZP1 D2ZJhJiAxUA0eeWdVt0SRi/wDzQpAIEc1eMyQS5qudi0f6tnIvvMVHrn0A+a4n9HdUMoA7z7BeH XOXL2o6QkaniD0Wwg3Yf9Z7ZGDir6tufOnqiO8UXP7D7rHPIbejo3FOKyQKxXMtIuu5/u4KCcOh fqKqWMqy+kRQi/BOTAmwAP8tIuHCuK7Jauelexennp1RpOAW3rXjPN7qjW0vFFsClCjCpeGUOJU MXD/Fat5MFfRj0p0Pakr6UtcmFtoHiRlRjvA5yOSu/jDqz+cprN2sheYxgAUpr7DZNv/iF9k9FK GIkr/1HpH3T3lxTfjRXT6T2axBDYhWkpX1BGajaFe6foOFHGxhxawCzY0oivV7zR0iOjX77E= X-Google-Smtp-Source: AGHT+IFHfRmXN36UuUEQ3+8OfAj85MV+GkHGgotHDwTDG+3kw1/zoX6RX4hA8zdW4JmcFXSrdFceIw== X-Received: by 2002:a17:902:f68a:b0:240:7fd2:63e0 with SMTP id d9443c01a7336-242c20037cfmr78838575ad.6.1754722012839; Fri, 08 Aug 2025 23:46:52 -0700 (PDT) Received: from debian-hx90.lan (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241e8976cb1sm224685645ad.89.2025.08.08.23.46.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:46:50 -0700 (PDT) Received: by debian-hx90.lan (Postfix, from userid 1000) id 775B6F4095F; Fri, 8 Aug 2025 23:46:48 -0700 (PDT) From: Xiyue Deng Date: Fri, 8 Aug 2025 23:45:45 -0700 Message-Id: <20250809064550.3751968-7-manphiz@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250809064550.3751968-1-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * packages/oauth2/oauth2.el: Try to conform to 80-column rule. --- oauth2.el | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/oauth2.el b/oauth2.el index ba7125e79b..4541893346 100644 --- a/oauth2.el +++ b/oauth2.el @@ -50,7 +50,8 @@ (defgroup oauth2 nil "OAuth 2.0 Authorization Protocol." :group 'comm - :link '(url-link :tag "Savannah" "https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/?h=externals/oauth2") + :link '(url-link :tag "Savannah" + "https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/?h=externals/oauth2") :link '(url-link :tag "ELPA" "https://elpa.gnu.org/packages/oauth2.html")) (defcustom oauth2-token-file (concat user-emacs-directory "oauth2.plstore") @@ -70,7 +71,8 @@ (setcar msg (concat "[oauth2] " (car msg))) (apply #'message msg))) -(defun oauth2-request-authorization (auth-url client-id &optional scope state redirect-uri) +(defun oauth2-request-authorization (auth-url client-id &optional scope state + redirect-uri) "Request OAuth authorization at AUTH-URL by launching `browse-url'. CLIENT-ID is the client id provided by the provider which uses REDIRECT-URI when requesting an access-token. The default redirect_uri @@ -84,7 +86,9 @@ Returns the code provided by the service." (if (string-match-p "\?" auth-url) "&" "?") "client_id=" (url-hexify-string client-id) "&response_type=code" - "&redirect_uri=" (url-hexify-string (or redirect-uri "urn:ietf:wg:oauth:2.0:oob")) + "&redirect_uri=" (url-hexify-string + (or redirect-uri + "urn:ietf:wg:oauth:2.0:oob")) (if scope (concat "&scope=" (url-hexify-string scope)) "") (if state (concat "&state=" (url-hexify-string state)) "") ;; The following two parameters are required for Gmail @@ -127,7 +131,8 @@ Returns the code provided by the service." token-url access-response) -(defun oauth2-request-access (token-url client-id client-secret code &optional redirect-uri) +(defun oauth2-request-access (token-url client-id client-secret code + &optional redirect-uri) "Request OAuth access. TOKEN-URL is the URL for making the request. CLIENT-ID and CLIENT-SECRET are provided by the service provider. The CODE should be @@ -165,8 +170,10 @@ TOKEN should be obtained with `oauth2-request-access'." (oauth2-token-token-url token) (concat "client_id=" (oauth2-token-client-id token) (when (oauth2-token-client-secret token) - (concat "&client_secret=" (oauth2-token-client-secret token))) - "&refresh_token=" (oauth2-token-refresh-token token) + (concat "&client_secret=" + (oauth2-token-client-secret token))) + "&refresh_token=" + (oauth2-token-refresh-token token) "&grant_type=refresh_token"))))) ;; If the token has a plstore, update it (let ((plstore (oauth2-token-plstore token))) @@ -183,7 +190,8 @@ TOKEN should be obtained with `oauth2-request-access'." token) ;;;###autoload -(defun oauth2-auth (auth-url token-url client-id client-secret &optional scope state redirect-uri) +(defun oauth2-auth (auth-url token-url client-id client-secret + &optional scope state redirect-uri) "Authenticate application via OAuth2." (oauth2-request-access token-url @@ -199,7 +207,8 @@ This allows to store the token in an unique way." (secure-hash 'sha512 (concat auth-url token-url scope client-id))) ;;;###autoload -(defun oauth2-auth-and-store (auth-url token-url scope client-id client-secret &optional redirect-uri state) +(defun oauth2-auth-and-store (auth-url token-url scope client-id client-secret + &optional redirect-uri state) "Request access to a resource and store it. AUTH-URL and TOKEN-URL are provided by the service provider. CLIENT-ID and CLIENT-SECRET should be generated by the service provider when a @@ -225,7 +234,8 @@ Returns an `oauth2-token'." :token-url token-url :access-response (plist-get plist :access-response)) (let ((token (oauth2-auth auth-url token-url - client-id client-secret scope state redirect-uri))) + client-id client-secret scope state + redirect-uri))) ;; Set the plstore (setf (oauth2-token-plstore token) plstore) (setf (oauth2-token-plstore-id token) id) @@ -250,7 +260,8 @@ Returns an `oauth2-token'." (defun oauth2-extra-headers (extra-headers) "Return EXTRA-HEADERS with `Authorization: Bearer' added." - (cons (oauth2-authz-bearer-header (oauth2-token-access-token (car oauth2--token-data))) + (cons (oauth2-authz-bearer-header + (oauth2-token-access-token (car oauth2--token-data))) extra-headers)) @@ -273,7 +284,9 @@ Returns an `oauth2-token'." #'oauth2--url-http-handle-authentication-hack) ;;;###autoload -(defun oauth2-url-retrieve-synchronously (token url &optional request-method request-data request-extra-headers) +(defun oauth2-url-retrieve-synchronously (token url &optional request-method + request-data + request-extra-headers) "Retrieve an URL synchronously using TOKEN to access it. TOKEN can be obtained with `oauth2-auth'. REQUEST-METHOD, REQUEST-DATA, and REQUEST-EXTRA-HEADERS are used when retrieving URL. See also @@ -287,15 +300,16 @@ and REQUEST-EXTRA-HEADERS are used when retrieving URL. See also (url-retrieve-synchronously url)))) ;;;###autoload -(defun oauth2-url-retrieve (token url callback &optional - cbargs - request-method request-data request-extra-headers) +(defun oauth2-url-retrieve (token url callback + &optional cbargs request-method request-data + request-extra-headers) "Retrieve an URL asynchronously using TOKEN to access it. TOKEN can be obtained with `oauth2-auth'. CALLBACK gets called with CBARGS when finished. TOKEN can be obtained with `oauth2-auth'. REQUEST-METHOD, REQUEST-DATA, and REQUEST-EXTRA-HEADERS are used when retrieving URL. See also `url-retrieve'." - ;; TODO add support for SILENT and INHIBIT-COOKIES. How to handle this in `url-http-handle-authentication'. + ;; TODO add support for SILENT and INHIBIT-COOKIES. How to handle this in + ;; `url-http-handle-authentication'. (let* ((oauth2--token-data (cons token url))) (let ((oauth2--url-advice t) ;Activate our advice. (url-request-method request-method) -- 2.39.5 From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: Proposed changes for oauth2 Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 06:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: 79168@debbugs.gnu.org Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175472234824473 (code B ref 79168); Sat, 09 Aug 2025 06:53:02 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 06:52:28 +0000 Received: from localhost ([127.0.0.1]:39972 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukdRM-0006Me-Eg for submit@debbugs.gnu.org; Sat, 09 Aug 2025 02:52:28 -0400 Received: from mail-pg1-x531.google.com ([2607:f8b0:4864:20::531]:45489) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukdRH-0006MI-IW for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 02:52:26 -0400 Received: by mail-pg1-x531.google.com with SMTP id 41be03b00d2f7-b271f3ae786so2351171a12.3 for <79168@debbugs.gnu.org>; Fri, 08 Aug 2025 23:52:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754722337; x=1755327137; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=0pRfLCQlo8bpmIH/X+oE6D5wdr6ihhwfQo2PX8mxH44=; b=Y/XXi1yzwrqfbtOKbWTdnOLFHuxwXwbv5ApX3gZvHvVl3aMTHXAVjHqFT/eciuneU6 2afsqNCQ5Lm0hlvcIo1IIHtzjIyJ5rM6DkAjeCz0+VUAYbsI/7lFGTcRBahnVD9eiij5 Lz/3gQB13dzNAsvnS7+ky+K8T7Bz/C2c0tsFqWyJM6Rwt452OsRN5Azdp+u/s0Ax2MEX hQrLG3RSIYfvCGPPU1rgsX8eEyxeK453v3WY0ot4qsbCbLCHY6ucx4v5GmgpmpW5R87S b4/OUDck85jO/IQmPVdGzWRkFt7zmz/r2r56jmzgb3hsXQEXsq1nJhhhUAWFWF3NVR4u QLAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754722337; x=1755327137; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=0pRfLCQlo8bpmIH/X+oE6D5wdr6ihhwfQo2PX8mxH44=; b=whcZ3cOZul0WR0Z4aGHnm4l1YNR+vMvX6ilgk896k+rXGaeNYxv8dKsyGdGyWARFZ9 lNeOmamNHO+2Vttnd60ZxUOLWsLD8H4y3KwZzA1eMbnwo66vjjeA1v4mwljotC7aG8TT 96Sedy8ywBsfM11elgCL3kUOXXU1TrNT3OUvazKG6AsvWVON2CVehh1K20CF0Z22jO7E 8mO/8TpnARimt90bp/NCuz2g+VNxnalQysDaVpAwkQTxUfkWh/zq4bw6LBvv85uyn94S iVYMku2TMd407c/mqvJu7TIsSTYYPsoE07fMoiiNQHNuQAAtgUr0zFKHmy59QT2FUBbX 1ajQ== X-Gm-Message-State: AOJu0YyWP8CeAroqXwG/r2/p/6rScYUFPdxHAM0KLkDz9rGChtAI6Jad c3tWvczoW73nsCk5H+EM5ybXOCm3ktw+JH/up048NHRkPOk0q1Q3NxcQ/SSYJg== X-Gm-Gg: ASbGncuKrAyuvbjJeRdv6ee1rAcvguFwgLn3I8shc0Lp+4+M1aLTyVxk9yJC2iulbPs gA4WFQghiENn8UOuu2mk4leiltQPnItk+xgRyxStaVgm3KxQE5ivPSUlRoynKh7bMP5RKsnPKgv RhzflS6A9qr84/3DjPVRE1VIUlH+uR4KNnTAqXZdhUYHICL+v1pCTafbpqI2EiMskBXTJE4HUIq 8eVxRbfkOvn1q7XWws9tOZk9ulmhNiIduZ60Vfuaw42zcKD6LIioCkwR6yOXoehSOchHAZ2P9UN Isdl1Q8BkFhADhBKaIBsbOTxCJv2KoLmmf4fwKWol8xXP17L0TfWXTylzn1ZXs72Y/my5vG/9KZ 9OD4/m1OxNnjpB8VdDxLEV3eaqdn9wEe+aHKGoKPw6/EF9sKBN81HAbwK X-Google-Smtp-Source: AGHT+IHW+tmwHvowZnVs+dRzlvFD4L8emJH7NtZqKHiONGikhU+U0/bwJKqFUxtvfb+ESohQr5C1xw== X-Received: by 2002:a17:903:2341:b0:240:6766:ac01 with SMTP id d9443c01a7336-242c1fdbcdfmr91564555ad.2.1754722337298; Fri, 08 Aug 2025 23:52:17 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1f0e757sm224844595ad.55.2025.08.08.23.52.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 23:52:16 -0700 (PDT) From: Xiyue Deng In-Reply-To: <87ikiy3zdo.fsf@zephyr.silentflame.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <87ikiy3zdo.fsf@zephyr.silentflame.com> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Fri, 08 Aug 2025 23:52:13 -0700 Message-ID: <87sei13s2q.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Sean, Sean Whitton writes: > Hello, > > On Sun 03 Aug 2025 at 05:20pm -07, Xiyue Deng wrote: > >> I propose the series of changes for oauth2 which would lead to the >> next release of 0.18. >> >> Each commit message explains what is done. Please let me know if >> anything is unclear. > > Thank you very much for working on this library. > > We need the commit messages to be in our CHANGELOG format as described > in CONTRIBUTING. Additional explanations for changes we prefer to be in > comments rather than in the commit message. > Ah yes. I have just sent V2 with the commit messages revised accordingly. > Finally, you use oauth2 daily, right? > Therefore everything has been fairly thoroughly tested? Yes, I have been using this daily and haven't triggered any more issue yet. Ideally it could use some unit tests, but it would require some (mock) web services. If there are any unit test tools for providing a web service it would be good to try it out. > > --=20 > Sean Whitton =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmiW8B0SHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTz7UP/RU5QYc3l9uqHPkKx4nLricuXRBO+T27 7mGMTV72NFBHVfT4bUzs/I7ysyBsTUQr3fj8bTHJ+lEHf90xo0QFIgRoE0xJqYl8 QWWxw/CwqAKmD2u5P79SiCwpiFpDj4aErTPFZ4fhYmfXg2O6M1nnu/CR23rGkTu6 ElFMcc6+C5fddsTc7Gkaj6aZ4Q4ZJe057AuM/W+0MSUYGJtajYqFn3oeeuNiAlcB 4UqWU8S3noI2DEIBIvRRp3a4g0AJ88ER2lmIbfp5GCMTIcnXBNYVqiET2j35DkhE qD/GGud+3Qt8JAGsgQ2GS+/4SV8F4TjSWm4xncgu9JxQ2PtPPx7m72kdum3sr1QD 9fuEgBIN6cemShhl5BfrAt0Gh245j95C1/YUnqQi07BehM/HeIIxZ/upbuNhi7IC tBOTPUQ4nn4VnNYVn6+icfAelGyyNOupFDJKUew4u2vjzXqxQ73FN2DBi8Vy3yhM v6AZcL1d1+Ha5Qe+7sHvKWLkaUpoBeY0Gv89Qux+IgS61zE5Lm4Mr7VZSB6OgebQ xmWSoXlcxGXpVfLvcz081lnZEcJYE/IP+/sgPuOMQMzji+drQa7Ax+CDU6bHvwHG hBJfVkx8fQ9THklawAs1IhM2J/g/ru+ZC1sFFhtrKYryUPljxt8xfmUKfHztFy7D UdHa6yWZ/2/3 =agvJ -----END PGP SIGNATURE----- --=-=-=-- From unknown Thu Aug 14 22:17:57 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Xiyue Deng Subject: bug#79168: closed (Re: bug#79168: Proposed changes for oauth2) Message-ID: References: <87ikiw26be.fsf@zephyr.silentflame.com> <874iuo554z.fsf@debian-hx90.lan> X-Gnu-PR-Message: they-closed 79168 X-Gnu-PR-Package: emacs Reply-To: 79168@debbugs.gnu.org Date: Sat, 09 Aug 2025 09:28:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1754731682-20088-1" This is a multi-part message in MIME format... ------------=_1754731682-20088-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #79168: 30.1; Proposed changes for oauth2 which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 79168@debbugs.gnu.org. --=20 79168: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D79168 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1754731682-20088-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 79168-done) by debbugs.gnu.org; 9 Aug 2025 09:27:44 +0000 Received: from localhost ([127.0.0.1]:40192 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukfrc-0005DS-FE for submit@debbugs.gnu.org; Sat, 09 Aug 2025 05:27:44 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:41650) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ukfrZ-0005D3-61 for 79168-done@debbugs.gnu.org; Sat, 09 Aug 2025 05:27:42 -0400 DKIM-Signature: a=rsa-sha256; b=dGfwel2K7bngBw3UyfGJmV82/2E4dHgzad+1NLaNTHm9jnCN4WliDig7ARy7c+6UzS+qPnp3+Y0DdBHWEG0+877zhl7AMcaUQ+5C4ZR3RfMceyeSPZkL6i3bvdwvaXj7g46X3lOxD1WjxWNGcDEVKO0PpxZWQnWEeaWQbov36bJQqAReTePTX6YgA8lsb8vBleqLGtmgJr0ZSpFLu66qHP00y/ODeCgZGqQNGL6/89UjWTHLuxGFWqchDZ2dkCftM96mOM3aXKbgg9HIUWxcBLkP4T6InJG0lGUY2Kt75w0RRL9s8cuBwclPIIao8s7F1sOwdkFs8zGJvEmc2/Sv7A==; s=purelymail1; d=spwhitton.name; v=1; bh=0ArbExra5eqR8s4RmXLPvUOBF2NCOpgrb3zBMPGAcIQ=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=MY3o0amvRkBA8rx0v7jMHk64gvbr2jjA+zrkJNuBZiYP7tC6TYUikXumhGhEKH41tT5BmMdARO479eN5Q6KjDQEdVrW61ES7pYSIG0fvExwH7Qy30YDS3EYBZ+8Ti6pIFgABAS1hgpzwVNfLOO7807yx7QSchxuzD/ulYKnXFddq8Bwv/2XzzpxH621uZgHY9Bna9LP68qeVunA7q7iK9sQz6CXy2zll/x8cKq7B21d7Hh75ATSPKVoYr8RlQzQnS98m1jUJ85o1fbfSCzsKtxJ+q40ndGzmZvNWRyAWb3Nnqwm4D3PlpWBFTsIWkb48GjdrrfaVifhQw5RB6TJAfg==; s=purelymail1; d=purelymail.com; v=1; bh=0ArbExra5eqR8s4RmXLPvUOBF2NCOpgrb3zBMPGAcIQ=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79168-done@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1248712884; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sat, 09 Aug 2025 09:27:34 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id F017F94012D; Sat, 09 Aug 2025 10:27:33 +0100 (BST) From: Sean Whitton To: Xiyue Deng Subject: Re: bug#79168: Proposed changes for oauth2 In-Reply-To: <87sei13s2q.fsf@debian-hx90.lan> References: <20250804002049.2462665-1-manphiz@gmail.com> <87ikiy3zdo.fsf@zephyr.silentflame.com> <87sei13s2q.fsf@debian-hx90.lan> Date: Sat, 09 Aug 2025 10:27:33 +0100 Message-ID: <87ikiw26be.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79168-done Cc: 79168-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, Sorry, Xiyue, this is an ELPA package, so I didn't need to ask you to respin the commit messages. My apologies. In any case I made some stylistic changes to some of them, such as using Co-authored-by instead of ad hoc notes. Patch 09/11 I'm not qualified to review, but based on your experience using it for a while it seems okay to install it. Thank you for your efforts. -- Sean Whitton ------------=_1754731682-20088-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 3 Aug 2025 23:59:57 +0000 Received: from localhost ([127.0.0.1]:46703 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uiicK-0003eu-QK for submit@debbugs.gnu.org; Sun, 03 Aug 2025 19:59:57 -0400 Received: from lists.gnu.org ([2001:470:142::17]:51228) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uiicE-0003e7-Ee for submit@debbugs.gnu.org; Sun, 03 Aug 2025 19:59:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uiiba-0007N1-P1 for bug-gnu-emacs@gnu.org; Sun, 03 Aug 2025 19:59:13 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uiibU-0000AN-GR for bug-gnu-emacs@gnu.org; Sun, 03 Aug 2025 19:59:05 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-24031a3e05cso26608475ad.1 for ; Sun, 03 Aug 2025 16:58:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754265537; x=1754870337; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=wvZie0gcMZOZtUQUtVv8j/+q32pbf9IXPszbWQhJccM=; b=Udhr+XYZ3igdf1ipihjxDOnWdtjuneFzgyEHvRcEN6UAqiDO/9LHVe8/qGoPXqNLXh ky2EL7RzuG6MW7xy4SN9pz2wjoo2upR0FMpnxCozkJQ7ep1ZD/aGeQQ8F8qhClzgcwtz nJy4UMuXHFeVV3tWk6tMMcthVz2Iw0vTpYDi6SQTJwHRxl3wWRsK1u/vfchCGdMwg4O9 80ipwIYrNuHSbppIjHj78G1MbzZvNdVJakrU4FYodBpmzZdb4AOeAaAPpoolvEl22uLM Tezw9eRJJkD6hhAGT8PuxIQ+pR0K69T9pE2veAt8NzO9AfCtoM3xKkRd0u5l+NSr+uwP 3jNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754265537; x=1754870337; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=wvZie0gcMZOZtUQUtVv8j/+q32pbf9IXPszbWQhJccM=; b=GVSPdVCY/BloOS4edXj9hLXIR3LVoGc9zpGa5JVl1OQSOTflKplMy7DfU6Nkvcq3zi xZTCTzOlWtTEO8XoC0DjKCxoP/skSJVQVuLqKiFihutbfq6UBZuUEtU1kXFvq2cB5yE8 z3EOw+TJCdqgHVOAyUX7CZFTAAzGUNQzVyLea9ERGQsmVW3opvor9DrAmYNatpyzHTkN RHO4E2ge5bJgEwEcPURGRS6bLALJIMK6nntM3klTU6THPSY07NKgQkKHwhPonrzfx8hU cO7zHyIRqOcogAQl9lSBM8cHQJZTktGvrhrwh+vmfo44bY5JUow0BOoBGwW+y/3g5nYf s5bA== X-Gm-Message-State: AOJu0YyDJxrjDoXHKQcQKqCph2gnKF1KVOKgp5kYKKcvp+/aDIYzoBBs MMB+nZYoUk2dD8J9wSDnj7t5ES2TrWQMX2ieMrTD4Urb5W1ooH7dKhH05ibyaQ== X-Gm-Gg: ASbGncuI0zAcpF6YX9yKk9HPb51g76mRRvIS/bbZPfZzumACkOHOLt/yHvpf3uEUrX8 exYVG69rdajWzuRXEgWuFQlKXDfeGl7gUWKhbPoRWv6xmqHAmONZ4Ui0aQmvJOcqgMFHUYD2mjA 9LzPIdOwwBn5lu0SO4sjO6lfshagsVl3TXBD6/tAW+XmmYxZ52FhXVvFtmdoAVYqLMS4Tb4LM2y MDPmLISxon46YKUR760Ra8WdVOs9msf2L/2nMMDA31YybHHvWWz6mL+4/qzLnXEw8j3MYG10nBi pr03hF3ZOpYtjgYojNKzZzX+YUOJoagJUMpI3CwYCvmZwWwZ+eTzrSjQTXTk+XBsnquXDQ2KXJp qfz8xP96rSQRudpbCp+ZbP15eBdsD3wNiz1vtyxwbA66KFAhrXmC8rUPg X-Google-Smtp-Source: AGHT+IHKojmeVTGXPvucGVaeKHbzc9YYxfPqRHgJYk/PlANDlYyFmEV+BIjeUJCNNZP2mSAxYQaU+Q== X-Received: by 2002:a17:902:d2d2:b0:231:d0da:5e1f with SMTP id d9443c01a7336-24246bed85amr100667945ad.21.1754265535969; Sun, 03 Aug 2025 16:58:55 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1ef6713sm94211445ad.12.2025.08.03.16.58.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 16:58:55 -0700 (PDT) From: Xiyue Deng To: bug-gnu-emacs@gnu.org Subject: 30.1; Proposed changes for oauth2 X-Debbugs-Cc: Date: Sun, 03 Aug 2025 16:58:52 -0700 Message-ID: <874iuo554z.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=manphiz@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi, I have worked on a series of patches for oauth2. This includes the following improvements: * Code cleanup and small fixes. * Support reusing cached tokens before expiration. * Close plstore file after use - To avoid being modified by other means while Emacs is accessing an outdated buffer. I plan to send the patches through git-send-email, so this email is to create the bug and the patches will be sent through a series of future emails. In GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.16.0) of 2025-04-04, modified by Debian built on sbuild System Description: Debian GNU/Linux 12 (bookworm) Configured using: 'configure --build x86_64-linux-gnu --prefix=3D/usr --sharedstatedir=3D/var/lib --libexecdir=3D/usr/libexec --localstatedir=3D/var/lib --infodir=3D/usr/share/info --mandir=3D/usr/share/man --with-libsystemd --with-pop=3Dyes --enable-locallisppath=3D/etc/emacs:/usr/local/share/emacs/30.1/site-lisp:= /usr/local/share/emacs/site-lisp:/usr/share/emacs/30.1/site-lisp:/usr/share= /emacs/site-lisp --with-sound=3Dalsa --without-gconf --with-mailutils --build x86_64-linux-gnu --prefix=3D/usr --sharedstatedir=3D/var/lib --libexecdir=3D/usr/libexec --localstatedir=3D/var/lib --infodir=3D/usr/share/info --mandir=3D/usr/share/man --with-libsystemd --with-pop=3Dyes --enable-locallisppath=3D/etc/emacs:/usr/local/share/emacs/30.1/site-lisp:= /usr/local/share/emacs/site-lisp:/usr/share/emacs/30.1/site-lisp:/usr/share= /emacs/site-lisp --with-sound=3Dalsa --without-gconf --with-mailutils --with-cairo --with-x=3Dyes --with-x-toolkit=3Dgtk3 --with-toolkit-scroll-bars 'CFLAGS=3D-g -O2 -ffile-prefix-map=3D/build/reproducible-path/emacs-30.1+1=3D. -fstack-prot= ector-strong -Wformat -Werror=3Dformat-security -Wall' 'CPPFLAGS=3D-Wdate-time -D_FORTIFY_SOURCE=3D2' LDFLAGS=3D-Wl,-z,relro' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: flyspell-mode: t rcirc-track-minor-mode: t server-mode: t subword-mode: t bug-reference-prog-mode: t whitespace-mode: t xclip-mode: t treemacs-project-follow-mode: t treemacs-follow-mode: t treemacs-git-mode: t treemacs-fringe-indicator-mode: t auth-source-xoauth2-plugin-mode: t activities-tabs-mode: t activities-mode: t fido-vertical-mode: t icomplete-vertical-mode: t icomplete-mode: t fido-mode: t override-global-mode: t global-display-line-numbers-mode: t display-line-numbers-mode: t global-auto-revert-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-dired hides /home/xiyue= den/.config/emacs/elpa/magit-section-4.3.6/magit-dired /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-autorevert hides /home/= xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-autorevert /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote hides /usr/share/em= acs/site-lisp/elpa/boxquote-2.2/boxquote /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-autoloads hides /us= r/share/emacs/site-lisp/elpa/boxquote-2.2/boxquote-autoloads /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-pkg hides /usr/shar= e/emacs/site-lisp/elpa/boxquote-2.2/boxquote-pkg /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode hides /usr/sh= are/emacs/site-lisp/elpa/cmake-mode-3.25.1/cmake-mode /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode-autoloads hid= es /usr/share/emacs/site-lisp/elpa/cmake-mode-3.25.1/cmake-mode-autoloads /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode-pkg hides /us= r/share/emacs/site-lisp/elpa/cmake-mode-3.25.1/cmake-mode-pkg /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-pkg hides /usr/shar= e/emacs/site-lisp/elpa/company-0.9.13/company-pkg /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-dabbrev hides /usr/= share/emacs/site-lisp/elpa/company-0.9.13/company-dabbrev /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-files hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-files /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-abbrev hides /usr/s= hare/emacs/site-lisp/elpa/company-0.9.13/company-abbrev /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-capf hides /usr/sha= re/emacs/site-lisp/elpa/company-0.9.13/company-capf /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-clang hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-clang /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-yasnippet hides /us= r/share/emacs/site-lisp/elpa/company-0.9.13/company-yasnippet /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-ispell hides /usr/s= hare/emacs/site-lisp/elpa/company-0.9.13/company-ispell /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-cmake hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-cmake /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-dabbrev-code hides = /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-dabbrev-code /home/xiyueden/.config/emacs/elpa/company-1.0.2/company hides /usr/share/em= acs/site-lisp/elpa/company-0.9.13/company /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-etags hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-etags /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-template hides /usr= /share/emacs/site-lisp/elpa/company-0.9.13/company-template /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-css hides /usr/shar= e/emacs/site-lisp/elpa/company-0.9.13/company-css /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-oddmuse hides /usr/= share/emacs/site-lisp/elpa/company-0.9.13/company-oddmuse /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-bbdb hides /usr/sha= re/emacs/site-lisp/elpa/company-0.9.13/company-bbdb /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-tempo hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-tempo /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-tng hides /usr/shar= e/emacs/site-lisp/elpa/company-0.9.13/company-tng /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-nxml hides /usr/sha= re/emacs/site-lisp/elpa/company-0.9.13/company-nxml /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-gtags hides /usr/sh= are/emacs/site-lisp/elpa/company-0.9.13/company-gtags /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-autoloads hides /us= r/share/emacs/site-lisp/elpa/company-0.9.13/company-autoloads /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-keywords hides /usr= /share/emacs/site-lisp/elpa/company-0.9.13/company-keywords /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-semantic hides /usr= /share/emacs/site-lisp/elpa/company-0.9.13/company-semantic /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode hides /usr/share/e= macs/site-lisp/elpa/csv-mode-1.22/csv-mode /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-autoloads hides /u= sr/share/emacs/site-lisp/elpa/csv-mode-1.22/csv-mode-autoloads /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-tests hides /usr/s= hare/emacs/site-lisp/elpa/csv-mode-1.22/csv-mode-tests /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-pkg hides /usr/sha= re/emacs/site-lisp/elpa/csv-mode-1.22/csv-mode-pkg /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash hides /usr/share/emacs/s= ite-lisp/elpa/dash-2.19.1/dash /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash-pkg hides /usr/share/ema= cs/site-lisp/elpa/dash-2.19.1/dash-pkg /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash-autoloads hides /usr/sha= re/emacs/site-lisp/elpa/dash-2.19.1/dash-autoloads /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode hides= /usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-mode /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode-autol= oads hides /usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-m= ode-autoloads /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode-pkg h= ides /usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-mode-pkg /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed hides /usr/share/emac= s/site-lisp/elpa/elfeed-3.4.1/elfeed /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/xml-query hides /usr/share/e= macs/site-lisp/elpa/elfeed-3.4.1/xml-query /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-search hides /usr/sha= re/emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-search /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-db hides /usr/share/e= macs/site-lisp/elpa/elfeed-3.4.1/elfeed-db /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-lib hides /usr/share/= emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-lib /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-log hides /usr/share/= emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-log /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-csv hides /usr/share/= emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-csv /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-pkg hides /usr/share/= emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-pkg /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-curl hides /usr/share= /emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-curl /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-show hides /usr/share= /emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-show /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-link hides /usr/share= /emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-link /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-autoloads hides /usr/= share/emacs/site-lisp/elpa/elfeed-3.4.1/elfeed-autoloads /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-digraphs hides /usr/shar= e/emacs/site-lisp/elpa/evil-1.14.2/evil-digraphs /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-repeat hides /usr/share/= emacs/site-lisp/elpa/evil-1.14.2/evil-repeat /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-vars hides /usr/share/em= acs/site-lisp/elpa/evil-1.14.2/evil-vars /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil hides /usr/share/emacs/s= ite-lisp/elpa/evil-1.14.2/evil /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-states hides /usr/share/= emacs/site-lisp/elpa/evil-1.14.2/evil-states /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-keybindings hides /usr/s= hare/emacs/site-lisp/elpa/evil-1.14.2/evil-keybindings /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-pkg hides /usr/share/ema= cs/site-lisp/elpa/evil-1.14.2/evil-pkg /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-ex hides /usr/share/emac= s/site-lisp/elpa/evil-1.14.2/evil-ex /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-core hides /usr/share/em= acs/site-lisp/elpa/evil-1.14.2/evil-core /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-search hides /usr/share/= emacs/site-lisp/elpa/evil-1.14.2/evil-search /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-integration hides /usr/s= hare/emacs/site-lisp/elpa/evil-1.14.2/evil-integration /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-jumps hides /usr/share/e= macs/site-lisp/elpa/evil-1.14.2/evil-jumps /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-maps hides /usr/share/em= acs/site-lisp/elpa/evil-1.14.2/evil-maps /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-commands hides /usr/shar= e/emacs/site-lisp/elpa/evil-1.14.2/evil-commands /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-command-window hides /us= r/share/emacs/site-lisp/elpa/evil-1.14.2/evil-command-window /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-common hides /usr/share/= emacs/site-lisp/elpa/evil-1.14.2/evil-common /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-macros hides /usr/share/= emacs/site-lisp/elpa/evil-1.14.2/evil-macros /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-autoloads hides /usr/sha= re/emacs/site-lisp/elpa/evil-1.14.2/evil-autoloads /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-types hides /usr/share/e= macs/site-lisp/elpa/evil-1.14.2/evil-types /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell hides /usr/share/emacs/site-lisp/elpa/exec-path-from-shell-1.12/exec-p= ath-from-shell /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell-autoloads hides /usr/share/emacs/site-lisp/elpa/exec-path-from-shell-1= .12/exec-path-from-shell-autoloads /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell-pkg hides /usr/share/emacs/site-lisp/elpa/exec-path-from-shell-1.12/ex= ec-path-from-shell-pkg /home/xiyueden/.config/emacs/elpa/magit-4.3.6/git-commit hides /usr/share/e= macs/site-lisp/elpa/git-commit-3.3.0/git-commit /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes hides /usr/shar= e/emacs/site-lisp/elpa/git-modes-1.4.0/git-modes /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes-pkg hides /usr/= share/emacs/site-lisp/elpa/git-modes-1.4.0/git-modes-pkg /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes-autoloads hides= /usr/share/emacs/site-lisp/elpa/git-modes-1.4.0/git-modes-autoloads /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitattributes-mode hides = /usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.0/gitattributes-mode /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitconfig-mode hides /usr= /share/emacs/site-lisp/elpa/gitconfig-mode-1.4.0/gitconfig-mode /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitignore-mode hides /usr= /share/emacs/site-lisp/elpa/gitignore-mode-1.4.0/gitignore-mode /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-context hides /usr/s= hare/emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-context /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot hides /usr/share/ema= cs/site-lisp/elpa/gnuplot-0.8.0/gnuplot /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-gui hides /usr/share= /emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-gui /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-autoloads hides /usr= /share/emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr= /share/emacs/site-lisp/elpa/gnuplot-0.8.0/debian-autoloads /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-pkg hides /usr/share= /emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-pkg /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg hides /usr/share/= emacs/site-lisp/elpa/goto-chg-1.7.3/goto-chg /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg-pkg hides /usr/sh= are/emacs/site-lisp/elpa/goto-chg-1.7.3/goto-chg-pkg /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg-autoloads hides /= usr/share/emacs/site-lisp/elpa/goto-chg-1.7.3/goto-chg-autoloads /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode hides /usr/sha= re/emacs/site-lisp/elpa/lua-mode-20210802/lua-mode /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode-autoloads hide= s /usr/share/emacs/site-lisp/elpa/lua-mode-20210802/lua-mode-autoloads /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode-pkg hides /usr= /share/emacs/site-lisp/elpa/lua-mode-20210802/lua-mode-pkg /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-ediff hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-ediff /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-remote hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-remote /home/xiyueden/.config/emacs/elpa/magit-4.3.6/git-rebase hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/git-rebase /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-bisect hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-bisect /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-autorevert hides /usr/s= hare/emacs/site-lisp/elpa/magit-3.3.0/magit-autorevert /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-log hides /usr/share/em= acs/site-lisp/elpa/magit-3.3.0/magit-log /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-margin hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-margin /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-status hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-status /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-subtree hides /usr/shar= e/emacs/site-lisp/elpa/magit-3.3.0/magit-subtree /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-merge hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-merge /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section hides /= usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-section /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-patch hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-patch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-commit hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-commit /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-extras hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-extras /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-autoloads hides /usr/sh= are/emacs/site-lisp/elpa/magit-3.3.0/magit-autoloads /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-mode hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-mode /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-files hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-files /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-stash hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-stash /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-blame hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-blame /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-repos hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-repos /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-reflog hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-reflog /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-git hides /usr/share/em= acs/site-lisp/elpa/magit-3.3.0/magit-git /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-bookmark hides /usr/sha= re/emacs/site-lisp/elpa/magit-3.3.0/magit-bookmark /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-submodule hides /usr/sh= are/emacs/site-lisp/elpa/magit-3.3.0/magit-submodule /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-apply hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-apply /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-reset hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-reset /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-core hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-core /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-gitignore hides /usr/sh= are/emacs/site-lisp/elpa/magit-3.3.0/magit-gitignore /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-transient hides /usr/sh= are/emacs/site-lisp/elpa/magit-3.3.0/magit-transient /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-push hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-push /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-worktree hides /usr/sha= re/emacs/site-lisp/elpa/magit-3.3.0/magit-worktree /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit hides /usr/share/emacs/= site-lisp/elpa/magit-3.3.0/magit /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-branch hides /usr/share= /emacs/site-lisp/elpa/magit-3.3.0/magit-branch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-wip hides /usr/share/em= acs/site-lisp/elpa/magit-3.3.0/magit-wip /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-notes hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-notes /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-diff hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-diff /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-fetch hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-fetch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-tag hides /usr/share/em= acs/site-lisp/elpa/magit-3.3.0/magit-tag /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-process hides /usr/shar= e/emacs/site-lisp/elpa/magit-3.3.0/magit-process /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-clone hides /usr/share/= emacs/site-lisp/elpa/magit-3.3.0/magit-clone /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-refs hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-refs /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-pull hides /usr/share/e= macs/site-lisp/elpa/magit-3.3.0/magit-pull /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-pkg hides /usr/share/em= acs/site-lisp/elpa/magit-3.3.0/magit-pkg /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-sequence hides /usr/sha= re/emacs/site-lisp/elpa/magit-3.3.0/magit-sequence /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section-autoloa= ds hides /usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section-= autoloads /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section hides /= usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section-pkg hid= es /usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section-pkg /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode hides /usr/shar= e/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/utils hides /usr/share/ema= cs/site-lisp/elpa/meson-mode-0.2/utils /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-autoloads hides= /usr/share/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode-autoloads /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-pkg hides /usr/= share/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode-pkg /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode-autoloads hi= des /usr/share/emacs/site-lisp/elpa/nginx-mode-1.1.9/nginx-mode-autoloads /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode hides /usr/s= hare/emacs/site-lisp/elpa/nginx-mode-1.1.9/nginx-mode /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode-pkg hides /u= sr/share/emacs/site-lisp/elpa/nginx-mode-1.1.9/nginx-mode-pkg /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm hides /usr/share= /emacs/site-lisp/elpa/vterm-0.0.2/vterm /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm-pkg hides /usr/s= hare/emacs/site-lisp/elpa/vterm-0.0.2/vterm-pkg /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm-autoloads hides = /usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm-autoloads /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode-pkg hides /usr/= share/emacs/site-lisp/elpa/web-mode-17.0.2/web-mode-pkg /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode-autoloads hides= /usr/share/emacs/site-lisp/elpa/web-mode-17.0.2/web-mode-autoloads /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode hides /usr/shar= e/emacs/site-lisp/elpa/web-mode-17.0.2/web-mode /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor-pkg hides /= usr/share/emacs/site-lisp/elpa/with-editor-3.0.5/with-editor-pkg /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor hides /usr/= share/emacs/site-lisp/elpa/with-editor-3.0.5/with-editor /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor-autoloads h= ides /usr/share/emacs/site-lisp/elpa/with-editor-3.0.5/with-editor-autoloads /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc hides /usr/share/e= macs/site-lisp/elpa/xml-rpc-1.6.16/xml-rpc /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc-pkg hides /usr/sha= re/emacs/site-lisp/elpa/xml-rpc-1.6.16/xml-rpc-pkg /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc-autoloads hides /u= sr/share/emacs/site-lisp/elpa/xml-rpc-1.6.16/xml-rpc-autoloads /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet-autoloads hide= s /usr/share/emacs/site-lisp/elpa/yasnippet-0.14.0/yasnippet-autoloads /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet-pkg hides /usr= /share/emacs/site-lisp/elpa/yasnippet-0.14.0/yasnippet-pkg /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet hides /usr/sha= re/emacs/site-lisp/elpa/yasnippet-0.14.0/yasnippet /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets hides /usr/share/emacs/site-lisp/elpa/yasnippet-snippets-2022071= 3/yasnippet-snippets /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets-pkg hides /usr/share/emacs/site-lisp/elpa/yasnippet-snippets-202= 20713/yasnippet-snippets-pkg /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets-autoloads hides /usr/share/emacs/site-lisp/elpa/yasnippet-snippe= ts-20220713/yasnippet-snippets-autoloads /usr/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window-autoloads hide= s /usr/share/emacs/site-lisp/elpa-src/ace-window-0.10.0/ace-window-autoloads /usr/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window-pkg hides /usr= /share/emacs/site-lisp/elpa-src/ace-window-0.10.0/ace-window-pkg /usr/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window hides /usr/sha= re/emacs/site-lisp/elpa-src/ace-window-0.10.0/ace-window /usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode-autoloads hid= es /usr/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode-autolo= ads /usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode-pkg hides /us= r/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode-pkg /usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode hides /usr/sh= are/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode /usr/share/emacs/site-lisp/elpa/avy-0.5.0/avy hides /usr/share/emacs/site-l= isp/elpa-src/avy-0.5.0/avy /usr/share/emacs/site-lisp/elpa/avy-0.5.0/avy-autoloads hides /usr/share/em= acs/site-lisp/elpa-src/avy-0.5.0/avy-autoloads /usr/share/emacs/site-lisp/elpa/avy-0.5.0/avy-pkg hides /usr/share/emacs/si= te-lisp/elpa-src/avy-0.5.0/avy-pkg /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote hides /usr/share/em= acs/site-lisp/elpa-src/boxquote-2.2/boxquote /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-autoloads hides /us= r/share/emacs/site-lisp/elpa-src/boxquote-2.2/boxquote-autoloads /home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-pkg hides /usr/shar= e/emacs/site-lisp/elpa-src/boxquote-2.2/boxquote-pkg /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode hides /usr/sh= are/emacs/site-lisp/elpa-src/cmake-mode-3.25.1/cmake-mode /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode-autoloads hid= es /usr/share/emacs/site-lisp/elpa-src/cmake-mode-3.25.1/cmake-mode-autoloa= ds /home/xiyueden/.config/emacs/elpa/cmake-mode-4.0.2/cmake-mode-pkg hides /us= r/share/emacs/site-lisp/elpa-src/cmake-mode-3.25.1/cmake-mode-pkg /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-dabbrev hides /usr/= share/emacs/site-lisp/elpa-src/company-0.9.13/company-dabbrev /usr/share/emacs/site-lisp/elpa/company-0.9.13/async-tests hides /usr/share= /emacs/site-lisp/elpa-src/company-0.9.13/async-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-capf hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-capf /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-yasnippet hides /us= r/share/emacs/site-lisp/elpa-src/company-0.9.13/company-yasnippet /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-ispell hides /usr/s= hare/emacs/site-lisp/elpa-src/company-0.9.13/company-ispell /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-etags hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-etags /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-template hides /usr= /share/emacs/site-lisp/elpa-src/company-0.9.13/company-template /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-abbrev hides /usr/s= hare/emacs/site-lisp/elpa-src/company-0.9.13/company-abbrev /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-files hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-files /usr/share/emacs/site-lisp/elpa/company-0.9.13/template-tests hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/template-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-xcode hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-xcode /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-css hides /usr/shar= e/emacs/site-lisp/elpa-src/company-0.9.13/company-css /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-tests hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/bbdb-tests hides /usr/share/= emacs/site-lisp/elpa-src/company-0.9.13/bbdb-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-dabbrev-code hides = /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-dabbrev-code /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-pkg hides /usr/shar= e/emacs/site-lisp/elpa-src/company-0.9.13/company-pkg /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-oddmuse hides /usr/= share/emacs/site-lisp/elpa-src/company-0.9.13/company-oddmuse /usr/share/emacs/site-lisp/elpa/company-0.9.13/clang-tests hides /usr/share= /emacs/site-lisp/elpa-src/company-0.9.13/clang-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-bbdb hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-bbdb /usr/share/emacs/site-lisp/elpa/company-0.9.13/transformers-tests hides /us= r/share/emacs/site-lisp/elpa-src/company-0.9.13/transformers-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/frontends-tests hides /usr/s= hare/emacs/site-lisp/elpa-src/company-0.9.13/frontends-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/core-tests hides /usr/share/= emacs/site-lisp/elpa-src/company-0.9.13/core-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company hides /usr/share/em= acs/site-lisp/elpa-src/company-0.9.13/company /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-clang hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-clang /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-nxml hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-nxml /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-gtags hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-gtags /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-tempo hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-tempo /usr/share/emacs/site-lisp/elpa/company-0.9.13/capf-tests hides /usr/share/= emacs/site-lisp/elpa-src/company-0.9.13/capf-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-autoloads hides /us= r/share/emacs/site-lisp/elpa-src/company-0.9.13/company-autoloads /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-cmake hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/company-cmake /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-tng hides /usr/shar= e/emacs/site-lisp/elpa-src/company-0.9.13/company-tng /usr/share/emacs/site-lisp/elpa/company-0.9.13/keywords-tests hides /usr/sh= are/emacs/site-lisp/elpa-src/company-0.9.13/keywords-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-elisp hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-elisp /usr/share/emacs/site-lisp/elpa/company-0.9.13/all hides /usr/share/emacs/s= ite-lisp/elpa-src/company-0.9.13/all /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-semantic hides /usr= /share/emacs/site-lisp/elpa-src/company-0.9.13/company-semantic /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-eclim hides /usr/sha= re/emacs/site-lisp/elpa-src/company-0.9.13/company-eclim /usr/share/emacs/site-lisp/elpa/company-0.9.13/files-tests hides /usr/share= /emacs/site-lisp/elpa-src/company-0.9.13/files-tests /usr/share/emacs/site-lisp/elpa/company-0.9.13/elisp-tests hides /usr/share= /emacs/site-lisp/elpa-src/company-0.9.13/elisp-tests /home/xiyueden/.config/emacs/elpa/company-1.0.2/company-keywords hides /usr= /share/emacs/site-lisp/elpa-src/company-0.9.13/company-keywords /usr/share/emacs/site-lisp/elpa/company-0.9.13/cmake-tests hides /usr/share= /emacs/site-lisp/elpa-src/company-0.9.13/cmake-tests /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-autoloads hides /u= sr/share/emacs/site-lisp/elpa-src/csv-mode-1.22/csv-mode-autoloads /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode hides /usr/share/e= macs/site-lisp/elpa-src/csv-mode-1.22/csv-mode /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-tests hides /usr/s= hare/emacs/site-lisp/elpa-src/csv-mode-1.22/csv-mode-tests /home/xiyueden/.config/emacs/elpa/csv-mode-1.27/csv-mode-pkg hides /usr/sha= re/emacs/site-lisp/elpa-src/csv-mode-1.22/csv-mode-pkg /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash hides /usr/share/emacs/s= ite-lisp/elpa-src/dash-2.19.1/dash /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash-pkg hides /usr/share/ema= cs/site-lisp/elpa-src/dash-2.19.1/dash-pkg /home/xiyueden/.config/emacs/elpa/dash-2.20.0/dash-autoloads hides /usr/sha= re/emacs/site-lisp/elpa-src/dash-2.19.1/dash-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el-autoloads hides /= usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-el-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-sources hides /usr/shar= e/emacs/site-lisp/elpa-src/debian-el-37.19/apt-sources /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-bug hides /usr/share= /emacs/site-lisp/elpa-src/debian-el-37.19/debian-bug /usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-utils hides /usr/share/= emacs/site-lisp/elpa-src/debian-el-37.19/apt-utils /usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-deb822-sources hides /u= sr/share/emacs/site-lisp/elpa-src/debian-el-37.19/apt-deb822-sources /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el-pkg hides /usr/sh= are/emacs/site-lisp/elpa-src/debian-el-37.19/debian-el-pkg /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr= /share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/gnus-BTS hides /usr/share/e= macs/site-lisp/elpa-src/debian-el-37.19/gnus-BTS /usr/share/emacs/site-lisp/elpa/debian-el-37.19/deb-view hides /usr/share/e= macs/site-lisp/elpa-src/debian-el-37.19/deb-view /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el hides /usr/share/= emacs/site-lisp/elpa-src/debian-el-37.19/debian-el /usr/share/emacs/site-lisp/elpa/debian-el-37.19/preseed hides /usr/share/em= acs/site-lisp/elpa-src/debian-el-37.19/preseed /usr/share/emacs/site-lisp/elpa/debpaste-0.1.5/debpaste hides /usr/share/em= acs/site-lisp/elpa-src/debpaste-0.1.5/debpaste /usr/share/emacs/site-lisp/elpa/debpaste-0.1.5/debpaste-pkg hides /usr/shar= e/emacs/site-lisp/elpa-src/debpaste-0.1.5/debpaste-pkg /usr/share/emacs/site-lisp/elpa/debpaste-0.1.5/debpaste-autoloads hides /us= r/share/emacs/site-lisp/elpa-src/debpaste-0.1.5/debpaste-autoloads /usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts hides /usr/share/e= macs/site-lisp/elpa-src/devscripts-40/devscripts /usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts-autoloads hides /u= sr/share/emacs/site-lisp/elpa-src/devscripts-40/devscripts-autoloads /usr/share/emacs/site-lisp/elpa/devscripts-40/pbuilder-mode hides /usr/shar= e/emacs/site-lisp/elpa-src/devscripts-40/pbuilder-mode /usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts-pkg hides /usr/sha= re/emacs/site-lisp/elpa-src/devscripts-40/devscripts-pkg /usr/share/emacs/site-lisp/elpa/devscripts-40/pbuilder-log-view-mode hides = /usr/share/emacs/site-lisp/elpa-src/devscripts-40/pbuilder-log-view-mode /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode hides= /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfile-mode /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode-autol= oads hides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfi= le-mode-autoloads /home/xiyueden/.config/emacs/elpa/dockerfile-mode-1.9/dockerfile-mode-pkg h= ides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfile-mod= e-pkg /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-bts-control hides = /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-bts-control /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-changelog-mode hid= es /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-changelog-m= ode /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-autopkgtest-contro= l-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-a= utopkgtest-control-mode /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-el-autoloads hid= es /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-el-autolo= ads /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-el-pkg hides /us= r/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-el-pkg /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-el hides /usr/sh= are/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-el /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-control-mode hides= /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-control-mode /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-copyright hides /u= sr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-copyright /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-common-utils hid= es /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-common-ut= ils /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/readme-debian hides /usr/= share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/readme-debian /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-search hides /usr/sha= re/emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-search /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-lib hides /usr/share/= emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-lib /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-log hides /usr/share/= emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-log /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-db hides /usr/share/e= macs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-db /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/xml-query hides /usr/share/e= macs/site-lisp/elpa-src/elfeed-3.4.1/xml-query /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-csv hides /usr/share/= emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-csv /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-pkg hides /usr/share/= emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-pkg /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed hides /usr/share/emac= s/site-lisp/elpa-src/elfeed-3.4.1/elfeed /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-curl hides /usr/share= /emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-curl /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-link hides /usr/share= /emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-link /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-autoloads hides /usr/= share/emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-autoloads /home/xiyueden/.config/emacs/elpa/elfeed-3.4.2/elfeed-show hides /usr/share= /emacs/site-lisp/elpa-src/elfeed-3.4.1/elfeed-show /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-repeat hides /usr/share/= emacs/site-lisp/elpa-src/evil-1.14.2/evil-repeat /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-vars hides /usr/share/em= acs/site-lisp/elpa-src/evil-1.14.2/evil-vars /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-states hides /usr/share/= emacs/site-lisp/elpa-src/evil-1.14.2/evil-states /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-keybindings hides /usr/s= hare/emacs/site-lisp/elpa-src/evil-1.14.2/evil-keybindings /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-pkg hides /usr/share/ema= cs/site-lisp/elpa-src/evil-1.14.2/evil-pkg /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-search hides /usr/share/= emacs/site-lisp/elpa-src/evil-1.14.2/evil-search /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-integration hides /usr/s= hare/emacs/site-lisp/elpa-src/evil-1.14.2/evil-integration /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-digraphs hides /usr/shar= e/emacs/site-lisp/elpa-src/evil-1.14.2/evil-digraphs /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-commands hides /usr/shar= e/emacs/site-lisp/elpa-src/evil-1.14.2/evil-commands /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil hides /usr/share/emacs/s= ite-lisp/elpa-src/evil-1.14.2/evil /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-jumps hides /usr/share/e= macs/site-lisp/elpa-src/evil-1.14.2/evil-jumps /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-autoloads hides /usr/sha= re/emacs/site-lisp/elpa-src/evil-1.14.2/evil-autoloads /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-types hides /usr/share/e= macs/site-lisp/elpa-src/evil-1.14.2/evil-types /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-core hides /usr/share/em= acs/site-lisp/elpa-src/evil-1.14.2/evil-core /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-macros hides /usr/share/= emacs/site-lisp/elpa-src/evil-1.14.2/evil-macros /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-maps hides /usr/share/em= acs/site-lisp/elpa-src/evil-1.14.2/evil-maps /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-common hides /usr/share/= emacs/site-lisp/elpa-src/evil-1.14.2/evil-common /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-command-window hides /us= r/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-command-window /home/xiyueden/.config/emacs/elpa/evil-1.15.0/evil-ex hides /usr/share/emac= s/site-lisp/elpa-src/evil-1.14.2/evil-ex /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell hides /usr/share/emacs/site-lisp/elpa-src/exec-path-from-shell-1.12/ex= ec-path-from-shell /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell-autoloads hides /usr/share/emacs/site-lisp/elpa-src/exec-path-from-she= ll-1.12/exec-path-from-shell-autoloads /home/xiyueden/.config/emacs/elpa/exec-path-from-shell-2.2/exec-path-from-s= hell-pkg hides /usr/share/emacs/site-lisp/elpa-src/exec-path-from-shell-1.1= 2/exec-path-from-shell-pkg /home/xiyueden/.config/emacs/elpa/magit-4.3.6/git-commit hides /usr/share/e= macs/site-lisp/elpa-src/git-commit-3.3.0/git-commit /usr/share/emacs/site-lisp/elpa/git-commit-3.3.0/git-commit-autoloads hides= /usr/share/emacs/site-lisp/elpa-src/git-commit-3.3.0/git-commit-autoloads /usr/share/emacs/site-lisp/elpa/git-commit-3.3.0/git-commit-pkg hides /usr/= share/emacs/site-lisp/elpa-src/git-commit-3.3.0/git-commit-pkg /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes hides /usr/shar= e/emacs/site-lisp/elpa-src/git-modes-1.4.0/git-modes /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes-pkg hides /usr/= share/emacs/site-lisp/elpa-src/git-modes-1.4.0/git-modes-pkg /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/git-modes-autoloads hides= /usr/share/emacs/site-lisp/elpa-src/git-modes-1.4.0/git-modes-autoloads /usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.0/gitattributes-mode= -pkg hides /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4.0/git= attributes-mode-pkg /usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.0/gitattributes-mode= -autoloads hides /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4= .0/gitattributes-mode-autoloads /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitattributes-mode hides = /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4.0/gitattributes-= mode /usr/share/emacs/site-lisp/elpa/gitconfig-mode-1.4.0/gitconfig-mode-autoloa= ds hides /usr/share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.0/gitconfig= -mode-autoloads /usr/share/emacs/site-lisp/elpa/gitconfig-mode-1.4.0/gitconfig-mode-pkg hid= es /usr/share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.0/gitconfig-mode-= pkg /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitconfig-mode hides /usr= /share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.0/gitconfig-mode /usr/share/emacs/site-lisp/elpa/gitignore-mode-1.4.0/gitignore-mode-pkg hid= es /usr/share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.0/gitignore-mode-= pkg /usr/share/emacs/site-lisp/elpa/gitignore-mode-1.4.0/gitignore-mode-autoloa= ds hides /usr/share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.0/gitignore= -mode-autoloads /home/xiyueden/.config/emacs/elpa/git-modes-1.4.5/gitignore-mode hides /usr= /share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.0/gitignore-mode /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot hides /usr/share/ema= cs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-autoloads hides /usr= /share/emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr= /share/emacs/site-lisp/elpa-src/gnuplot-0.8.0/debian-autoloads /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-pkg hides /usr/share= /emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-pkg /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-context hides /usr/s= hare/emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-context /home/xiyueden/.config/emacs/elpa/gnuplot-0.10/gnuplot-gui hides /usr/share= /emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-gui /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode hides /usr/share/emac= s/site-lisp/elpa-src/go-mode-1.6.0/go-mode /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-guru hides /usr/share/emac= s/site-lisp/elpa-src/go-mode-1.6.0/go-guru /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode-pkg hides /usr/share/= emacs/site-lisp/elpa-src/go-mode-1.6.0/go-mode-pkg /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode-autoloads hides /usr/= share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-mode-autoloads /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-rename hides /usr/share/em= acs/site-lisp/elpa-src/go-mode-1.6.0/go-rename /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg hides /usr/share/= emacs/site-lisp/elpa-src/goto-chg-1.7.3/goto-chg /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg-pkg hides /usr/sh= are/emacs/site-lisp/elpa-src/goto-chg-1.7.3/goto-chg-pkg /home/xiyueden/.config/emacs/elpa/goto-chg-1.7.5/goto-chg-autoloads hides /= usr/share/emacs/site-lisp/elpa-src/goto-chg-1.7.3/goto-chg-autoloads /usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode-a= utoloads hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/= graphviz-dot-mode-autoloads /usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/company-graphviz-do= t hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/company= -graphviz-dot /usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode-p= kg hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphv= iz-dot-mode-pkg /usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode h= ides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphviz-d= ot-mode /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode hides /usr/sha= re/emacs/site-lisp/elpa-src/lua-mode-20210802/lua-mode /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode-autoloads hide= s /usr/share/emacs/site-lisp/elpa-src/lua-mode-20210802/lua-mode-autoloads /usr/share/emacs/site-lisp/elpa/lua-mode-20210802/init-tryout hides /usr/sh= are/emacs/site-lisp/elpa-src/lua-mode-20210802/init-tryout /home/xiyueden/.config/emacs/elpa/lua-mode-20221027/lua-mode-pkg hides /usr= /share/emacs/site-lisp/elpa-src/lua-mode-20210802/lua-mode-pkg /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-remote hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-remote /home/xiyueden/.config/emacs/elpa/magit-4.3.6/git-rebase hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/git-rebase /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-bisect hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-bisect /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-margin hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-margin /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-merge hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-merge /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section hides /= usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-section /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-patch hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-patch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-commit hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-commit /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-autoloads hides /usr/sh= are/emacs/site-lisp/elpa-src/magit-3.3.0/magit-autoloads /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-files hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-files /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-stash hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-stash /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-bookmark hides /usr/sha= re/emacs/site-lisp/elpa-src/magit-3.3.0/magit-bookmark /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-submodule hides /usr/sh= are/emacs/site-lisp/elpa-src/magit-3.3.0/magit-submodule /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-apply hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-apply /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-repos hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-repos /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-core hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-core /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-subtree hides /usr/shar= e/emacs/site-lisp/elpa-src/magit-3.3.0/magit-subtree /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-autorevert hides /usr/s= hare/emacs/site-lisp/elpa-src/magit-3.3.0/magit-autorevert /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-gitignore hides /usr/sh= are/emacs/site-lisp/elpa-src/magit-3.3.0/magit-gitignore /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-transient hides /usr/sh= are/emacs/site-lisp/elpa-src/magit-3.3.0/magit-transient /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-extras hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-extras /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-git hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-git /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-notes hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-notes /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-reflog hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-reflog /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-mode hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-mode /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-push hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-push /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-tag hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-tag /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-process hides /usr/shar= e/emacs/site-lisp/elpa-src/magit-3.3.0/magit-process /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-ediff hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-ediff /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit hides /usr/share/emacs/= site-lisp/elpa-src/magit-3.3.0/magit /usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-imenu hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-imenu /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-diff hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-diff /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-clone hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-clone /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-log hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-log /usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-utils hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-utils /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-wip hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-wip /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-branch hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-branch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-pull hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-pull /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-reset hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-reset /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-sequence hides /usr/sha= re/emacs/site-lisp/elpa-src/magit-3.3.0/magit-sequence /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-status hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-status /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-refs hides /usr/share/e= macs/site-lisp/elpa-src/magit-3.3.0/magit-refs /usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-obsolete hides /usr/share= /emacs/site-lisp/elpa-src/magit-3.3.0/magit-obsolete /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-fetch hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-fetch /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-worktree hides /usr/sha= re/emacs/site-lisp/elpa-src/magit-3.3.0/magit-worktree /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-blame hides /usr/share/= emacs/site-lisp/elpa-src/magit-3.3.0/magit-blame /home/xiyueden/.config/emacs/elpa/magit-4.3.6/magit-pkg hides /usr/share/em= acs/site-lisp/elpa-src/magit-3.3.0/magit-pkg /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section-autoloa= ds hides /usr/share/emacs/site-lisp/elpa-src/magit-section-3.3.0/magit-sect= ion-autoloads /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section hides /= usr/share/emacs/site-lisp/elpa-src/magit-section-3.3.0/magit-section /home/xiyueden/.config/emacs/elpa/magit-section-4.3.6/magit-section-pkg hid= es /usr/share/emacs/site-lisp/elpa-src/magit-section-3.3.0/magit-section-pkg /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode hides /usr/shar= e/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/utils hides /usr/share/ema= cs/site-lisp/elpa-src/meson-mode-0.2/utils /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-autoloads hides= /usr/share/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode-autoloads /home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-pkg hides /usr/= share/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode-pkg /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode-autoloads hi= des /usr/share/emacs/site-lisp/elpa-src/nginx-mode-1.1.9/nginx-mode-autoloa= ds /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode-pkg hides /u= sr/share/emacs/site-lisp/elpa-src/nginx-mode-1.1.9/nginx-mode-pkg /home/xiyueden/.config/emacs/elpa/nginx-mode-1.1.10/nginx-mode hides /usr/s= hare/emacs/site-lisp/elpa-src/nginx-mode-1.1.9/nginx-mode /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-query hides /usr/share= /emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-query /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-jump hides /usr/share/= emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-jump /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-autoloads hides /usr/s= hare/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-autoloads /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-show hides /usr/share/= emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-show /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-maildir-fcc hides /usr= /share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-maildir-fcc /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-wash hides /usr/share/= emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-wash /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-draft hides /usr/share= /emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-draft /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-mua hides /usr/share/e= macs/site-lisp/elpa-src/notmuch-0.39/notmuch-mua /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-compat hides /usr/shar= e/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-compat /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-parser hides /usr/shar= e/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-parser /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-tree hides /usr/share/= emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-tree /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-pkg hides /usr/share/e= macs/site-lisp/elpa-src/notmuch-0.39/notmuch-pkg /usr/share/emacs/site-lisp/elpa/notmuch-0.39/coolj hides /usr/share/emacs/s= ite-lisp/elpa-src/notmuch-0.39/coolj /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-message hides /usr/sha= re/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-message /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-address hides /usr/sha= re/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-address /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-version hides /usr/sha= re/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-version /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-tag hides /usr/share/e= macs/site-lisp/elpa-src/notmuch-0.39/notmuch-tag /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch hides /usr/share/emacs= /site-lisp/elpa-src/notmuch-0.39/notmuch /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-crypto hides /usr/shar= e/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-crypto /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-lib hides /usr/share/e= macs/site-lisp/elpa-src/notmuch-0.39/notmuch-lib /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-print hides /usr/share= /emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-print /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-hello hides /usr/share= /emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-hello /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-company hides /usr/sha= re/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-company /usr/share/emacs/site-lisp/elpa/oauth2-0.17/oauth2 hides /usr/share/emacs/s= ite-lisp/elpa-src/oauth2-0.17/oauth2 /usr/share/emacs/site-lisp/elpa/oauth2-0.17/oauth2-autoloads hides /usr/sha= re/emacs/site-lisp/elpa-src/oauth2-0.17/oauth2-autoloads /usr/share/emacs/site-lisp/elpa/oauth2-0.17/oauth2-pkg hides /usr/share/ema= cs/site-lisp/elpa-src/oauth2-0.17/oauth2-pkg /usr/share/emacs/site-lisp/elpa/paredit-26/paredit-autoloads hides /usr/sha= re/emacs/site-lisp/elpa-src/paredit-26/paredit-autoloads /usr/share/emacs/site-lisp/elpa/paredit-26/paredit-pkg hides /usr/share/ema= cs/site-lisp/elpa-src/paredit-26/paredit-pkg /usr/share/emacs/site-lisp/elpa/paredit-26/paredit hides /usr/share/emacs/s= ite-lisp/elpa-src/paredit-26/paredit /usr/share/emacs/site-lisp/elpa/po-mode-0.21/po-mode-pkg hides /usr/share/e= macs/site-lisp/elpa-src/po-mode-0.21/po-mode-pkg /usr/share/emacs/site-lisp/elpa/po-mode-0.21/po-mode-autoloads hides /usr/s= hare/emacs/site-lisp/elpa-src/po-mode-0.21/po-mode-autoloads /usr/share/emacs/site-lisp/elpa/po-mode-0.21/po-mode hides /usr/share/emacs= /site-lisp/elpa-src/po-mode-0.21/po-mode /usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort hides /usr/share/e= macs/site-lisp/elpa-src/py-isort-2016.1/py-isort /usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort-autoloads hides /u= sr/share/emacs/site-lisp/elpa-src/py-isort-2016.1/py-isort-autoloads /usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort-pkg hides /usr/sha= re/emacs/site-lisp/elpa-src/py-isort-2016.1/py-isort-pkg /usr/share/emacs/site-lisp/elpa/pyvenv-1.21/pyvenv hides /usr/share/emacs/s= ite-lisp/elpa-src/pyvenv-1.21/pyvenv /usr/share/emacs/site-lisp/elpa/pyvenv-1.21/pyvenv-pkg hides /usr/share/ema= cs/site-lisp/elpa-src/pyvenv-1.21/pyvenv-pkg /usr/share/emacs/site-lisp/elpa/pyvenv-1.21/pyvenv-autoloads hides /usr/sha= re/emacs/site-lisp/elpa-src/pyvenv-1.21/pyvenv-autoloads /usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm-load-path hides /usr/shar= e/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-load-path /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm hides /usr/share= /emacs/site-lisp/elpa-src/vterm-0.0.2/vterm /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm-pkg hides /usr/s= hare/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-pkg /home/xiyueden/.config/emacs/elpa/vterm-20241218.331/vterm-autoloads hides = /usr/share/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-autoloads /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode-pkg hides /usr/= share/emacs/site-lisp/elpa-src/web-mode-17.0.2/web-mode-pkg /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode-autoloads hides= /usr/share/emacs/site-lisp/elpa-src/web-mode-17.0.2/web-mode-autoloads /home/xiyueden/.config/emacs/elpa/web-mode-17.3.21/web-mode hides /usr/shar= e/emacs/site-lisp/elpa-src/web-mode-17.0.2/web-mode /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor-pkg hides /= usr/share/emacs/site-lisp/elpa-src/with-editor-3.0.5/with-editor-pkg /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor-autoloads h= ides /usr/share/emacs/site-lisp/elpa-src/with-editor-3.0.5/with-editor-auto= loads /home/xiyueden/.config/emacs/elpa/with-editor-3.4.4/with-editor hides /usr/= share/emacs/site-lisp/elpa-src/with-editor-3.0.5/with-editor /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc hides /usr/share/e= macs/site-lisp/elpa-src/xml-rpc-1.6.16/xml-rpc /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc-pkg hides /usr/sha= re/emacs/site-lisp/elpa-src/xml-rpc-1.6.16/xml-rpc-pkg /home/xiyueden/.config/emacs/elpa/xml-rpc-1.6.17/xml-rpc-autoloads hides /u= sr/share/emacs/site-lisp/elpa-src/xml-rpc-1.6.16/xml-rpc-autoloads /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet-autoloads hide= s /usr/share/emacs/site-lisp/elpa-src/yasnippet-0.14.0/yasnippet-autoloads /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet-pkg hides /usr= /share/emacs/site-lisp/elpa-src/yasnippet-0.14.0/yasnippet-pkg /home/xiyueden/.config/emacs/elpa/yasnippet-0.14.3/yasnippet hides /usr/sha= re/emacs/site-lisp/elpa-src/yasnippet-0.14.0/yasnippet /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-snippets-202= 20713/yasnippet-snippets /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets-pkg hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-snippets= -20220713/yasnippet-snippets-pkg /home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20250507.2002/yasnippe= t-snippets-autoloads hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-sn= ippets-20220713/yasnippet-snippets-autoloads /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.8.0/zenburn-theme hides /us= r/share/emacs/site-lisp/elpa-src/zenburn-theme-2.8.0/zenburn-theme /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.8.0/zenburn-theme-pkg hides= /usr/share/emacs/site-lisp/elpa-src/zenburn-theme-2.8.0/zenburn-theme-pkg /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.8.0/zenburn-theme-autoloads= hides /usr/share/emacs/site-lisp/elpa-src/zenburn-theme-2.8.0/zenburn-them= e-autoloads /home/xiyueden/.config/emacs/elpa/transient-0.9.1/transient hides /usr/shar= e/emacs/30.1/lisp/transient /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-julia hides /usr/share/emac= s/30.1/lisp/org/ob-julia /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-entities hides /usr/share/= emacs/30.1/lisp/org/org-entities /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-w3m hides /usr/share/emacs/= 30.1/lisp/org/ol-w3m /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-publish hides /usr/share/em= acs/30.1/lisp/org/ox-publish /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-faces hides /usr/share/ema= cs/30.1/lisp/org/org-faces /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-docview hides /usr/share/em= acs/30.1/lisp/org/ol-docview /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-haskell hides /usr/share/em= acs/30.1/lisp/org/ob-haskell /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc-biblatex hides /usr/share/e= macs/30.1/lisp/org/oc-biblatex /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-odt hides /usr/share/emacs/= 30.1/lisp/org/ox-odt /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-forth hides /usr/share/emac= s/30.1/lisp/org/ob-forth /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-element-ast hides /usr/sha= re/emacs/30.1/lisp/org/org-element-ast /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-feed hides /usr/share/emac= s/30.1/lisp/org/org-feed /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-clojure hides /usr/share/em= acs/30.1/lisp/org/ob-clojure /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-refile hides /usr/share/em= acs/30.1/lisp/org/org-refile /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-cycle hides /usr/share/ema= cs/30.1/lisp/org/org-cycle /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-icalendar hides /usr/share/= emacs/30.1/lisp/org/ox-icalendar /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-C hides /usr/share/emacs/30= .1/lisp/org/ob-C /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-calc hides /usr/share/emacs= /30.1/lisp/org/ob-calc /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-mouse hides /usr/share/ema= cs/30.1/lisp/org/org-mouse /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-goto hides /usr/share/emac= s/30.1/lisp/org/org-goto /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-rmail hides /usr/share/emac= s/30.1/lisp/org/ol-rmail /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-eshell hides /usr/share/ema= cs/30.1/lisp/org/ol-eshell /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-comint hides /usr/share/ema= cs/30.1/lisp/org/ob-comint /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-id hides /usr/share/emacs/= 30.1/lisp/org/org-id /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-crypt hides /usr/share/ema= cs/30.1/lisp/org/org-crypt /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-emacs-lisp hides /usr/share= /emacs/30.1/lisp/org/ob-emacs-lisp /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-html hides /usr/share/emacs= /30.1/lisp/org/ox-html /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-indent hides /usr/share/em= acs/30.1/lisp/org/org-indent /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-ascii hides /usr/share/emac= s/30.1/lisp/org/ox-ascii /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc-csl hides /usr/share/emacs/= 30.1/lisp/org/oc-csl /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-latex hides /usr/share/emac= s/30.1/lisp/org/ob-latex /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-lisp hides /usr/share/emacs= /30.1/lisp/org/ob-lisp /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-beamer hides /usr/share/ema= cs/30.1/lisp/org/ox-beamer /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-macs hides /usr/share/emac= s/30.1/lisp/org/org-macs /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-perl hides /usr/share/emacs= /30.1/lisp/org/ob-perl /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc-bibtex hides /usr/share/ema= cs/30.1/lisp/org/oc-bibtex /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-colview hides /usr/share/e= macs/30.1/lisp/org/org-colview /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-lilypond hides /usr/share/e= macs/30.1/lisp/org/ob-lilypond /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-eshell hides /usr/share/ema= cs/30.1/lisp/org/ob-eshell /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-protocol hides /usr/share/= emacs/30.1/lisp/org/org-protocol /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-timer hides /usr/share/ema= cs/30.1/lisp/org/org-timer /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-table hides /usr/share/ema= cs/30.1/lisp/org/org-table /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-mobile hides /usr/share/em= acs/30.1/lisp/org/org-mobile /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-latex hides /usr/share/emac= s/30.1/lisp/org/ox-latex /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-lob hides /usr/share/emacs/= 30.1/lisp/org/ob-lob /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-maxima hides /usr/share/ema= cs/30.1/lisp/org/ob-maxima /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-sed hides /usr/share/emacs/= 30.1/lisp/org/ob-sed /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-octave hides /usr/share/ema= cs/30.1/lisp/org/ob-octave /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox hides /usr/share/emacs/30.1= /lisp/org/ox /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-lint hides /usr/share/emac= s/30.1/lisp/org/org-lint /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-doi hides /usr/share/emacs/= 30.1/lisp/org/ol-doi /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-sqlite hides /usr/share/ema= cs/30.1/lisp/org/ob-sqlite /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-persist hides /usr/share/e= macs/30.1/lisp/org/org-persist /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-plot hides /usr/share/emac= s/30.1/lisp/org/org-plot /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-list hides /usr/share/emac= s/30.1/lisp/org/org-list /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-pcomplete hides /usr/share= /emacs/30.1/lisp/org/org-pcomplete /home/xiyueden/.config/emacs/elpa/org-9.7.30/org hides /usr/share/emacs/30.= 1/lisp/org/org /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-element hides /usr/share/e= macs/30.1/lisp/org/org-element /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-clock hides /usr/share/ema= cs/30.1/lisp/org/org-clock /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-exp hides /usr/share/emacs/= 30.1/lisp/org/ob-exp /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-inlinetask hides /usr/shar= e/emacs/30.1/lisp/org/org-inlinetask /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-ref hides /usr/share/emacs/= 30.1/lisp/org/ob-ref /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-attach hides /usr/share/em= acs/30.1/lisp/org/org-attach /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-lua hides /usr/share/emacs/= 30.1/lisp/org/ob-lua /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-core hides /usr/share/emacs= /30.1/lisp/org/ob-core /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-koma-letter hides /usr/shar= e/emacs/30.1/lisp/org/ox-koma-letter /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-awk hides /usr/share/emacs/= 30.1/lisp/org/ob-awk /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-matlab hides /usr/share/ema= cs/30.1/lisp/org/ob-matlab /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-src hides /usr/share/emacs= /30.1/lisp/org/org-src /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-groovy hides /usr/share/ema= cs/30.1/lisp/org/ob-groovy /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol hides /usr/share/emacs/30.1= /lisp/org/ol /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-fold-core hides /usr/share= /emacs/30.1/lisp/org/org-fold-core /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc hides /usr/share/emacs/30.1= /lisp/org/oc /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-gnus hides /usr/share/emacs= /30.1/lisp/org/ol-gnus /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-loaddefs hides /usr/share/= emacs/30.1/lisp/org/org-loaddefs /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-fortran hides /usr/share/em= acs/30.1/lisp/org/ob-fortran /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-org hides /usr/share/emacs/= 30.1/lisp/org/ox-org /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-version hides /usr/share/e= macs/30.1/lisp/org/org-version /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-python hides /usr/share/ema= cs/30.1/lisp/org/ob-python /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc-basic hides /usr/share/emac= s/30.1/lisp/org/oc-basic /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-man hides /usr/share/emacs/= 30.1/lisp/org/ol-man /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-tempo hides /usr/share/ema= cs/30.1/lisp/org/org-tempo /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-bbdb hides /usr/share/emacs= /30.1/lisp/org/ol-bbdb /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-table hides /usr/share/emac= s/30.1/lisp/org/ob-table /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-keys hides /usr/share/emac= s/30.1/lisp/org/org-keys /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-java hides /usr/share/emacs= /30.1/lisp/org/ob-java /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-ditaa hides /usr/share/emac= s/30.1/lisp/org/ob-ditaa /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-man hides /usr/share/emacs/= 30.1/lisp/org/ox-man /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-tangle hides /usr/share/ema= cs/30.1/lisp/org/ob-tangle /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-fold hides /usr/share/emac= s/30.1/lisp/org/org-fold /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-css hides /usr/share/emacs/= 30.1/lisp/org/ob-css /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-agenda hides /usr/share/em= acs/30.1/lisp/org/org-agenda /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-ctags hides /usr/share/ema= cs/30.1/lisp/org/org-ctags /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-texinfo hides /usr/share/em= acs/30.1/lisp/org/ox-texinfo /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob hides /usr/share/emacs/30.1= /lisp/org/ob /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-archive hides /usr/share/e= macs/30.1/lisp/org/org-archive /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-eww hides /usr/share/emacs/= 30.1/lisp/org/ol-eww /home/xiyueden/.config/emacs/elpa/org-9.7.30/oc-natbib hides /usr/share/ema= cs/30.1/lisp/org/oc-natbib /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-ruby hides /usr/share/emacs= /30.1/lisp/org/ob-ruby /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-ocaml hides /usr/share/emac= s/30.1/lisp/org/ob-ocaml /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-mhe hides /usr/share/emacs/= 30.1/lisp/org/ol-mhe /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-screen hides /usr/share/ema= cs/30.1/lisp/org/ob-screen /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-processing hides /usr/share= /emacs/30.1/lisp/org/ob-processing /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-shell hides /usr/share/emac= s/30.1/lisp/org/ob-shell /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-num hides /usr/share/emacs= /30.1/lisp/org/org-num /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-eval hides /usr/share/emacs= /30.1/lisp/org/ob-eval /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-habit hides /usr/share/ema= cs/30.1/lisp/org/org-habit /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-compat hides /usr/share/em= acs/30.1/lisp/org/org-compat /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-info hides /usr/share/emacs= /30.1/lisp/org/ol-info /home/xiyueden/.config/emacs/elpa/org-9.7.30/ox-md hides /usr/share/emacs/3= 0.1/lisp/org/ox-md /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-plantuml hides /usr/share/e= macs/30.1/lisp/org/ob-plantuml /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-attach-git hides /usr/shar= e/emacs/30.1/lisp/org/org-attach-git /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-gnuplot hides /usr/share/em= acs/30.1/lisp/org/ob-gnuplot /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-irc hides /usr/share/emacs/= 30.1/lisp/org/ol-irc /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-org hides /usr/share/emacs/= 30.1/lisp/org/ob-org /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-datetree hides /usr/share/= emacs/30.1/lisp/org/org-datetree /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-footnote hides /usr/share/= emacs/30.1/lisp/org/org-footnote /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-dot hides /usr/share/emacs/= 30.1/lisp/org/ob-dot /home/xiyueden/.config/emacs/elpa/org-9.7.30/ol-bibtex hides /usr/share/ema= cs/30.1/lisp/org/ol-bibtex /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-sass hides /usr/share/emacs= /30.1/lisp/org/ob-sass /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-scheme hides /usr/share/ema= cs/30.1/lisp/org/ob-scheme /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-capture hides /usr/share/e= macs/30.1/lisp/org/org-capture /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-R hides /usr/share/emacs/30= .1/lisp/org/ob-R /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-duration hides /usr/share/= emacs/30.1/lisp/org/org-duration /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-makefile hides /usr/share/e= macs/30.1/lisp/org/ob-makefile /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-sql hides /usr/share/emacs/= 30.1/lisp/org/ob-sql /home/xiyueden/.config/emacs/elpa/org-9.7.30/org-macro hides /usr/share/ema= cs/30.1/lisp/org/org-macro /home/xiyueden/.config/emacs/elpa/org-9.7.30/ob-js hides /usr/share/emacs/3= 0.1/lisp/org/ob-js Features: (shadow emacsbug debian-bug js c-ts-common imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs shortdoc boxquote comp-run comp-common rect timezone mailalias qp ace-window avy sort company-oddmuse company-keywords company-etags etags fileloop xref company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb company mail-extr misearch multi-isearch cl-print package-x help-fns radix-tree smerge-mode diff mm-archive shr-color oc-basic org-element org-persist org-id org-refile org-element-ast ol-eww eww xdg mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader range ol-docview doc-view ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi ob-octave org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie executable ob-comint org-pcomplete pcomplete org-list org-footnote org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func org-version org-compat org-macs mule-util jka-compr mastodon-media textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check mastodon-profile mastodon-auth mastodon-client mastodon mastodon-transient tp transient compat mastodon-search mastodon-widget mastodon-tl image-mode exif url-cache mastodon-toot mastodon-iso mastodon-http notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser format-spec notmuch-wash coolj goto-addr icalendar diary-lib diary-loaddefs cal-menu calendar cal-loaddefs notmuch-tag crm notmuch-lib notmuch-version notmuch-compat mm-view mml-smime smime dig elfeed-show elfeed-search message yank-media rfc822 mml mml-sec gnus-util mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader shr pixel-fill kinsoku svg dom elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib avl-tree generator url-queue url-file xml-query xml matlab matlab-sections matlab-scan matlab-syntax matlab-org matlab-compat flyspell ispell gnutls network-stream epa-file epa derived rcirc parse-time iso8601 time-date term/xterm xterm server cap-words superword subword vc-hg vc-git diff-mode track-changes vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util vc vc-dispatcher bug-reference disp-table whitespace cus-start init zenburn-theme xclip treesit-auto treesit treemacs-project-follow-mode treemacs-follow-mode treemacs-rendering treemacs-annotations treemacs-async treemacs-visuals treemacs-fringe-indicator pulse color treemacs-workspaces treemacs-dom treemacs-icons treemacs-themes treemacs-scope treemacs-core-utils treemacs-logging treemacs-customization pfuture inline ht s hl-line dash auth-source-xoauth2-plugin smtpmail sendmail mail-utils oauth2 url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm puny plstore epg rfc6068 epg-config keychain-environment exec-path-from-shell activities-tabs activities persist bookmark edmacro kmacro advice cperl-mode facemenu icomplete flymake project compile text-property-search comint ansi-osc ansi-color ring warnings thingatpt cl-extra help-mode use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core display-line-numbers autorevert filenotify cus-edit pp cus-load wid-edit activities-autoloads auctex-autoloads tex-site auth-source-xoauth2-plugin-autoloads bazel-autoloads rx bison-mode-autoloads boxquote-autoloads clojure-mode-autoloads cmake-mode-autoloads company-autoloads corfu-terminal-autoloads corfu-autoloads csv-mode-autoloads dart-mode-autoloads dockerfile-mode-autoloads elfeed-autoloads evil-autoloads exec-path-from-shell-autoloads f-autoloads format-all-autoloads git-modes-autoloads gnuplot-autoloads goto-chg-autoloads gptel-autoloads inheritenv-autoloads keychain-environment-autoloads language-id-autoloads lua-mode-autoloads magit-autoloads pcase magit-section-autoloads llama-autoloads mastodon-autoloads matlab-mode-autoloads meson-mode-autoloads nginx-mode-autoloads ol-notmuch-autoloads org-autoloads persist-autoloads popon-autoloads rust-mode-autoloads scala-mode-autoloads tp-autoloads transient-autoloads treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads hydra-autoloads lv-autoloads pfuture-autoloads s-autoloads treesit-auto-autoloads vterm-autoloads web-mode-autoloads xclip-autoloads yaml-mode-autoloads yasnippet-snippets-autoloads yasnippet-autoloads xml-rpc-autoloads debian-el dired dired-loaddefs with-editor-autoloads info dash-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo gtk x-toolkit xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 3469436 539048) (symbols 48 53556 40) (strings 32 306314 27525) (string-bytes 1 13234730) (vectors 16 125736) (vector-slots 8 2425796 192394) (floats 8 7690 58762) (intervals 56 182460 4867) (buffers 992 40)) =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmiP97wSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTPyQP/1zF109iI8Im/D8suOmsQ0Nx6PpEfcOj Cfrzyq4iDor6VteoLN8+PggbNvUprn+OxgJs+5mY84H2voY4mQxY9BbqwC/3mTL0 B/ixhgmBXlDHHKN9m8To1BArX5Go/3lGa0btMfXPIoaMlGfK5LM5B1YnX4Uptol9 bYdXoiDuYVgumuzexcjA/ZAzY+fII1nsV9I6yiHAhZYAhP+7UtRzLV0+oCY+ZSxS 0KvOEi4gWysP0kxrNa9fBzAcmLb/bbulo7uxb8UJwFKmLLtFhYrem82QQQzXGewu oBsJ/T+xbRQYLpzA1xFcuOEx9epHr42cnYjJN1kMaQbL1ifAGu4PeF0wEBaO4EhS 8HvgHb6/ed5yIIr+4VdAlSrkm/b+26MNYlsm6L2fjlU3NhKm1fDAqCw8+SRxzkWJ PBjk+p+S54a5VycFJi8x7CaFQCKZZ/TrzZX6l4hZyjRJqegy+pgyZPMhxG6LMV5V og4Rl+Dg7b+ICpRGAuraV1GRdTlCqTWK+lGBg6eJgybdC/KYM4RRfEpO2W0BfUXu t/9UoqPs3zlURyX+qo3y/81960Kq9IfMYxKUMlJVqqp5541rra1oR4/w5UWMh+KS dvPsFLyQcNwyccA2TOuq5a7GCeJj9UG///Ue/F9UsbV4NBoRyjBGrDvVCGG2YN2e OwY7u8pT4t6a =tu6G -----END PGP SIGNATURE----- --=-=-=-- ------------=_1754731682-20088-1-- From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 03/11] Reorder code to put defcustom/defvar at the beginning part Resent-From: Robert Pluim Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 14:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Xiyue Deng Cc: 79168@debbugs.gnu.org Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.1754749029342 (code B ref 79168); Sat, 09 Aug 2025 14:18:02 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 14:17:09 +0000 Received: from localhost ([127.0.0.1]:42672 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukkNg-00005I-KR for submit@debbugs.gnu.org; Sat, 09 Aug 2025 10:17:09 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:46457) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukkNV-0008W5-NZ for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 10:17:04 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-3b7910123a0so2731620f8f.1 for <79168@debbugs.gnu.org>; Sat, 09 Aug 2025 07:16:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754749011; x=1755353811; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=syDQX5Zm1iARxe2G8eaXM/+9kHGBOHQmC4qVbFUp7Qk=; b=d5ZdPkuAeD1RKC2m7w8Ej5L+MHh9uTFZbYuKxNAjlH+L843DLgNK0+PJhjzCf4tfii OQcYyuCDWSKI8fbxGuewIB6kLaBEOWR0GAzSiGRMoYexqgys2oRp7Vu1Q8hGsKGL3P4Q dp+8CUdrkUfCqgNoHqK+F4ya+l4KVZSpw6e79Hkmbg+uygpqVI7QloYLTjRcFbMZ8+pt t33glBaqkprf/JXe/7wE+D2+/Gg7fOk94Eunjw1ykJjDXWkJcI4w1QGrfK0I4jD3fB1I tlmoMLm6t+IHn3htRdwmU4wmM+3ecH88BxZpmeWxGq+PY5NFAmi+r0OwUq9poLirx5kA ie1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754749011; x=1755353811; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=syDQX5Zm1iARxe2G8eaXM/+9kHGBOHQmC4qVbFUp7Qk=; b=P+ZYpAxn6ScL19GUtUKnAPEQrxNVb/tcJywptbyK4oYgziHweYHsMtT1j5MYVpBz2W Rj784jUebWrZ2b8NvAAfCZog1z7arYSkNXTjkV3VL5oTo5kYNsFkDo1Cm6Uz4wvBX5iN FwAcADPCY7JSoHQUO4ivUp9ST7GHyEIArF2b3BJgaqlmlwrpQDdT7ie0qCst15vHAPEA RZBR/ueEmrYFt5czbbRmyqbupzupGW/anKgdZvAUbATc+H+ZaWsRTlyA9vmD/Z2DK+51 1CPt+c2SqvidKhmuKFc1K/D3vk3RGyiJt5/fnXNmOyPPJgLfVt2Jv3QFkBo4XwmNF9h5 EMVw== X-Gm-Message-State: AOJu0YyJrAnJ04k+wI6mxXktDrrTqbDvTVySzfF6JMq0SKERpSoGImTs SjTHBB/om+/4ZpeNlWHqBer/4SzO0Bj19SacMqLL3LaAWQB1BiBlnIaXtu5+TQ== X-Gm-Gg: ASbGncshqplfFEe8BxSt8KHrX+bzoq6mMN+RXv6CgYMpe2SkzQolt0JiiJPKDS+yLar Av05KGE7xpF27P/D3WjFD9q8tx3b/M069eCccA5J2OdynzSvgJmPYjfnwhvplYbq2QTUjwNjNBW PHYR1LR4ALGUlpUHkrduDFirR9BS/TGxjLa3qYSyvncLmMcNwB1qksQdM3rlH45aN7aTofyjjnH BQTvF3mtk8Z2tIJRhp4MYRAmNi9X9PthGTwTjOUtCnIZ/r3iv+e2EAnXZU4OmsGf2+xItbhqN6O Sv1epfW/0TGhL90brH8lyZbx2dD06u+cwNnpI8I9tBkRZM0eg8PfHIcriWat/KMtBnxBpSyBdRS OlekN7sGvDg== X-Google-Smtp-Source: AGHT+IFFyRInwFL/O3BV5hyMAV70XQdtqLcOZbd66vHMAvShYStEcruHn0ZhOloF4hrcNA5oYKDHig== X-Received: by 2002:a5d:5f4a:0:b0:3b8:eb9f:e65 with SMTP id ffacd0b85a97d-3b900b4c2c6mr5441709f8f.5.1754749011204; Sat, 09 Aug 2025 07:16:51 -0700 (PDT) Received: from rltb ([2a01:e0a:3f3:fb51:6645:ccc8:8af9:a454]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-459de91ea4csm233130885e9.10.2025.08.09.07.16.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Aug 2025 07:16:48 -0700 (PDT) From: Robert Pluim In-Reply-To: <20250809064550.3751968-4-manphiz@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> <20250809064550.3751968-4-manphiz@gmail.com> Date: Sat, 09 Aug 2025 16:16:47 +0200 Message-ID: <875xew7f74.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >>>>> On Fri, 8 Aug 2025 23:45:42 -0700, Xiyue Deng said: Xiyue> (Adapted from bug#52476 by Aleksandr Vityazev.) Xiyue> * packages/oauth2/oauth2.el: Put oauth2-token-file, Xiyue> oauth2--url-advice, and oauth--token-data to the beginning part of the Xiyue> source code. Xiyue> --- Xiyue> oauth2.el | 16 ++++++++-------- Xiyue> 1 file changed, 8 insertions(+), 8 deletions(-) Xiyue> diff --git a/oauth2.el b/oauth2.el Xiyue> index c3aa45ed69..eccf439130 100644 Xiyue> --- a/oauth2.el Xiyue> +++ b/oauth2.el Xiyue> @@ -53,9 +53,17 @@ Xiyue> :link '(url-link :tag "Savannah" "https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/?h=externals/oauth2") Xiyue> :link '(url-link :tag "ELPA" "https://elpa.gnu.org/packages/oauth2.html")) Xiyue> +(defcustom oauth2-token-file (concat user-emacs-directory "oauth2.plstore") Xiyue> + "File path where store OAuth tokens." Xiyue> + :group 'oauth2 Xiyue> + :type 'file) Xiyue> + This should use `locate-user-emacs-file'. Robert -- From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: Proposed changes for oauth2 Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 21:17:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: 79168-done@debbugs.gnu.org Received: via spool by 79168-done@debbugs.gnu.org id=D79168.175477420610452 (code D ref 79168); Sat, 09 Aug 2025 21:17:01 +0000 Received: (at 79168-done) by debbugs.gnu.org; 9 Aug 2025 21:16:46 +0000 Received: from localhost ([127.0.0.1]:43158 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukqvm-0002iW-5o for submit@debbugs.gnu.org; Sat, 09 Aug 2025 17:16:46 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]:49506) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukqvh-0002iE-VF for 79168-done@debbugs.gnu.org; Sat, 09 Aug 2025 17:16:43 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-23fd91f2f8bso23247165ad.3 for <79168-done@debbugs.gnu.org>; Sat, 09 Aug 2025 14:16:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754774195; x=1755378995; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=ZKT5GDzQrzX/ANACAzJEi/KOkXEcaYlL15BUOjCPYm0=; b=Sp6Knd/yMnxPbBw0Fmg6Vk/Lhg6QZzH3WLi4tvdj/i+vE8J9cYb+d0t+MYZaXvNhoc WWhJNbJJCBVAT/hxyylxGL/2lspAP5avENL5vFSKaVVaoapENDt1oNEiNmDkH2lM9U4e WXQrPYqCOtLmkD87OigI7zm4YfE+e+UimuqRB7cVX1986MxE7xbLNb83C5tBoqitQGWE +QVW3omokHc6rsgp+xZOIM1UdC5NJrj1Bbu29jiZl8hziXEg1hxVK1uQ1+kGILbf6w9g HNE1/hnZk9tgrF9DdyuY5lXKTYmf11meuKci1wPbiDYDkJrmzDhobJCXQD+D/1uSnoBS CxhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754774195; x=1755378995; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ZKT5GDzQrzX/ANACAzJEi/KOkXEcaYlL15BUOjCPYm0=; b=agIsI7j5eDlZLa6G3PPYz9srZHbOC5yNM5SxTPSy/FH3nOMP9r6KMsb1hHkyXB0yQe Mu63gH/oA6e8CYcHmvRUJIUrV9d59SBXNmSFhRi78XajS6kNiP8wtDdmYe7KXU9qyNUd JC474aPfPhhXx1wyLhT5LngaNhz1Ug6KXgvn9i23KVifHOCC15H2dll1578w2XoVdVJm rQW8fm+Y/NXVlcz3Yr0JTZsyQJ7k5V1etf8TzihTCVlVKr9cWM4gR0gp+S57DZyy8sh4 6KajGoiRec7O0+7/CTyDz34VLPl00ZTPLtq6CvVIwvtG2SEqpXW8y7OqUM53HPwzcajF cI+Q== X-Gm-Message-State: AOJu0Ywp6dOCzVMDLj3Dks7rNQAi+Lj2iYz6zgzRO2M8ixB5/BlA/z7F 66+TbB1n9v8V/1/6vWqgccQLqQXU6YGGKaFMTIUfu7ualxS2bV/QKtSUpWGhmg== X-Gm-Gg: ASbGncseibKuIUWrrzXE6YND3d8MA2zWIaZ6qQkn3kC6XNFSBRkitVJ6E80cw8bWQBq hXMH2MrhhQK3z9Ca/hJRBY60dtUG6U/TIfdzFDhsG1KWVCPHoT4JnsyRgiLqZGLJ/FHKb5ZKjPS Pxscku0hFMsdfQWe+tY9WQjNeqErkNgF/ytc4XnWtIDa2be/OEo2x+Tqk2NcwNSQS2UTNu12zCU 7wBxS+hNym7/Fr9mjD95SZ3Ei/eRLrtRckLMFenglTU2hmkoM1DhJSdDG9MUdMIraEau1dlU5k+ qrpF3nDQlJdUoZce6h+e1HoVZpzvipl65krN45tm5h3mcYLeRhNL/X5oQdlWzhalvaxDxh2z6L7 fUFh59RgrjBsXcLrH1YNz3n59BAoiJNjlvbgsbxmEAL8Bog3tvd/HROUm X-Google-Smtp-Source: AGHT+IHgRUcOjRyuV6GC50PX7LVmXOyPZkbXIMOLosIIWO1dCBxIniODPQmz2V/fILe9sDXzTCdFMQ== X-Received: by 2002:a17:903:3b87:b0:242:460e:4ab8 with SMTP id d9443c01a7336-242c222b0ebmr107284485ad.46.1754774195154; Sat, 09 Aug 2025 14:16:35 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241e89a3acfsm236662935ad.146.2025.08.09.14.16.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Aug 2025 14:16:34 -0700 (PDT) From: Xiyue Deng In-Reply-To: <87ikiw26be.fsf@zephyr.silentflame.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <87ikiy3zdo.fsf@zephyr.silentflame.com> <87sei13s2q.fsf@debian-hx90.lan> <87ikiw26be.fsf@zephyr.silentflame.com> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Sat, 09 Aug 2025 14:16:31 -0700 Message-ID: <87cy948ac0.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Sean, Sean Whitton writes: > Hello, > > Sorry, Xiyue, this is an ELPA package, so I didn't need to ask you to > respin the commit messages. My apologies. > > In any case I made some stylistic changes to some of them, such as using > Co-authored-by instead of ad hoc notes. > > Patch 09/11 I'm not qualified to review, but based on your experience > using it for a while it seems okay to install it. > > Thank you for your efforts. Thanks Sean! Meanwhile I'll also keep an eye on any bug report. > > --=20 > Sean Whitton =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmiXuq8SHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTx6oQAJnr91CXdRuHenOhYC1QBcz5GKvT77Lx myHZR7fnE9zhgjgTuxowGecxSdL47eP1aERl2rF9fIWhhItLWZZrk0zmNdrP03yM f998gFPeS1VgegtTC4WmbaD1xtp8StzDvydp4D5/QAMuDNWfkWB/GD1JxPYfym1Z uXGFa7ZcO5PmrjC7zGAH4hxrtUmE2IWY+jEcQD4WS6laThdY3HgdlYw3XRoXVmAv hCV7CTYhFPM0GSmfOPr4ZZeaEpmfCQSIY+6hYGAFvtf+uRwnfwjtaP6kgWi3Pezh bHAIJmp3JLM37L5uNCjQO1AIbX1wxgUnpXdoTPfpZ65tPsYPOh15R+22cP//lzg5 zN1IQFm1zoiCKYxXDJiALr7+2JD3Xnb5djGac469rkWN0GkJtmztWt6m9ATXk4F3 kVOo3AxyZLp9onvTZA07WJwdPfODEy8YJkmrATBZrqbqCtxnn/euCHPHrnW4+I2w vtrg24aFlCt8W7vx0setj0W7XDf9SKjUtOXnPdJpQcvbmcrbdYBinnpzpGZasSRr 68VOpwHKfUBZ11mMJx0DouVD5lKMGia2WOYXOlSJxt9Rbp61wk7Ka1Ybejd/ARCk YWAhT58ccd8D8Duq6iQGX53jQ0szarVZx2fOs4v15UtPuS6cudzkdYgMHtBgSXLY c3Ut2UksEe3k =VvHw -----END PGP SIGNATURE----- --=-=-=-- From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: [PATCH 03/11] Reorder code to put defcustom/defvar at the beginning part Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 22:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Robert Pluim Cc: 79168@debbugs.gnu.org Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175477824121928 (code B ref 79168); Sat, 09 Aug 2025 22:24:01 +0000 Received: (at 79168) by debbugs.gnu.org; 9 Aug 2025 22:24:01 +0000 Received: from localhost ([127.0.0.1]:43213 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukryq-0005hc-IB for submit@debbugs.gnu.org; Sat, 09 Aug 2025 18:24:00 -0400 Received: from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b]:42359) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukrym-0005hG-84 for 79168@debbugs.gnu.org; Sat, 09 Aug 2025 18:23:57 -0400 Received: by mail-pf1-x42b.google.com with SMTP id d2e1a72fcca58-7682560a2f2so3342163b3a.1 for <79168@debbugs.gnu.org>; Sat, 09 Aug 2025 15:23:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754778229; x=1755383029; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=LqvaljXbOO23tTtjonZ90sRFlvNgI3H+R4ImZm//GT4=; b=gKgUmuC8hE1tDWfLcPPafEoTSz+8G3j5fe2/wlEuq1hgsWpNUtG2iOuocuCMNXCjid FHuYyv1UF0L8iADhhQyFdBnqOkbFqpKwt7Vhgc7oY9SflOfUzsAHDb4iQkZK7y/mQ2mh l73otHRMcwVOmuXZSYqHBk3MgXvdt1PKfg+iudQoGDDO99KcBXsmBjwLP2hPUDFwJ4tY 4WD2SgDciPgWg0xaypiZB/9wEzMxz+fj92ovU7hYYurXT8PwTVMKfcg08MBdEXMuqK3P HNHFB6ZB3ioL2sdxtc8FuNXVG9jDeZ0L6FIMMB7qHXJApsDuKeffONjvAVeJfajdfA4V CG0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754778229; x=1755383029; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=LqvaljXbOO23tTtjonZ90sRFlvNgI3H+R4ImZm//GT4=; b=kyqInsF1u2i8tVafis+LoSfMU/q+6X3QLHkB1dxD7TuuqWTuuT1ETedTikQRKcI17+ Zdeqon42xkr5YOGHNtP5LcczafIhcO1Yw5oJ6//TZAjiI0HwT7pF8+KcmZbNJvyPMVX0 ZtHV0LUcYMcCMX4jKZJ7aOEHu8ZQEIFkCCJ8/hCsQLms9LlfQCbJsg5S32GFDAXpYnf9 kZQznPCPo+rjxF3NFJVeSPzmVsGPoD0SWIzdU37h9EUymV7lhjWhYgAe9yP8K4uoHLDP yrX8CZXSFd+DdZ1zYA2vh/0bMN2z3jbtdoUtyeXjcgeROuIZTjRplD9/oc67EmE7nuzl OLyA== X-Gm-Message-State: AOJu0Ywc/W4qhnyYsadCU1DIUko6vav4DFZOi6OXr2GqE/0YR/wmWqEi QNe06OwKXMMxNzA99ww9NBQ/PohQUoQsxJuueI06VNsjWO85PRwXa5a/+MSHJQ== X-Gm-Gg: ASbGncsRRT9wERe/Y6qXhVq7+ZV1uLmOpIf3v5Zq593kjf3YFaMbuojkcoEMMDm0VhM IkylivOUJ/XZQio3DTcSvA0b1nGODlDw9ZKC+HRcabaKEKGvk52Ax9YnYCNljiunKuKyiEibtYr /Mamr/nQWOdRnqTRXVJGGoGyx624HQHsjnSCqgbiOC2hDC1P9rtLnVkpjHBy4J4rXSzGnRejq/K hK/pizCRB4+of0eXVTVPN1qmmXDRS+JwwvPOa+4PXLsMWmv6bQjcObUFE1rqDQcpZRewYkP8xkA WJoWF+K3onUjifJGOMJG8QDFg54sG3WTxEvGrj9GMFppiVTmNnxpbSixT8NF+lCApaK9bgJIgut cqiVgPtr7ZGp1wy37MFf+UHIOWx2eB4WNyiC2ZrjeIGaLLnhiKqG2W554Y6qkbPSxqHc= X-Google-Smtp-Source: AGHT+IFyKjsvNehRl+AJhi2AULABahQJJ+MuAgNsZmvyed5kJPFpw3kBSLC+TkqIPW3CbVBz8AMyyA== X-Received: by 2002:a05:6a00:8589:b0:746:195b:bf1c with SMTP id d2e1a72fcca58-76c3739e530mr16456608b3a.10.1754778229474; Sat, 09 Aug 2025 15:23:49 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bccfbd98csm23049224b3a.67.2025.08.09.15.23.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Aug 2025 15:23:48 -0700 (PDT) From: Xiyue Deng In-Reply-To: <875xew7f74.fsf@gmail.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <20250809064550.3751968-1-manphiz@gmail.com> <20250809064550.3751968-4-manphiz@gmail.com> <875xew7f74.fsf@gmail.com> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Sat, 09 Aug 2025 15:23:45 -0700 Message-ID: <878qjs877y.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Robert, Robert Pluim writes: >>>>>> On Fri, 8 Aug 2025 23:45:42 -0700, Xiyue Deng s= aid: > > Xiyue> (Adapted from bug#52476 by Aleksandr Vityazev.) > Xiyue> * packages/oauth2/oauth2.el: Put oauth2-token-file, > Xiyue> oauth2--url-advice, and oauth--token-data to the beginning par= t of the > Xiyue> source code. > Xiyue> --- > Xiyue> oauth2.el | 16 ++++++++-------- > Xiyue> 1 file changed, 8 insertions(+), 8 deletions(-) > > Xiyue> diff --git a/oauth2.el b/oauth2.el > Xiyue> index c3aa45ed69..eccf439130 100644 > Xiyue> --- a/oauth2.el > Xiyue> +++ b/oauth2.el > Xiyue> @@ -53,9 +53,17 @@ > Xiyue> :link '(url-link :tag "Savannah" "https://git.savannah.gnu.= org/cgit/emacs/elpa.git/tree/?h=3Dexternals/oauth2") > Xiyue> :link '(url-link :tag "ELPA" "https://elpa.gnu.org/packages= /oauth2.html")) >=20=20 > Xiyue> +(defcustom oauth2-token-file (concat user-emacs-directory "oa= uth2.plstore") > Xiyue> + "File path where store OAuth tokens." > Xiyue> + :group 'oauth2 > Xiyue> + :type 'file) > Xiyue> + > > This should use `locate-user-emacs-file'. Ah indeed. Please see the attached patch. > > > Robert > --=20 =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Use-locate-user-emacs-file-instead-of-concat-user-em.patch Content-Transfer-Encoding: quoted-printable From=201b96330d9ff013a8e73c4805f89f0b518c070673 Mon Sep 17 00:00:00 2001 From: Xiyue Deng Date: Sat, 9 Aug 2025 14:51:16 -0700 Subject: [PATCH] Use `locate-user-emacs-file' instead of concat user-emacs-directory * packages/oauth2/oauth2.el (oauth2-token-file): Use locate-user-emacs-file. =2D-- oauth2.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oauth2.el b/oauth2.el index 8c36d10eea..25458911d2 100644 =2D-- a/oauth2.el +++ b/oauth2.el @@ -56,7 +56,7 @@ "https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/= ?h=3Dexternals/oauth2") :link '(url-link :tag "ELPA" "https://elpa.gnu.org/packages/oauth2.html"= )) =20 =2D(defcustom oauth2-token-file (concat user-emacs-directory "oauth2.plstor= e") +(defcustom oauth2-token-file (locate-user-emacs-file "oauth2.plstore") "File path where store OAuth tokens." :group 'oauth2 :type 'file) =2D-=20 2.50.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmiXynESHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTmlMP/1btqy55rC1zoOy83ablkM/xG5Vb2yet vzp0soRcero+uD8/7uE+9Yv5AykCQV7UPOlbewuwzV/a/faJ56mGbY+mZTquLa/m EVvkbHGMTYkwGatulvI2OCwoETpyZQCcuAcQZVYMXcsoNEjVj1rIlVs0siXVyaaI C4n6kik5EzeyiKdN/ZcNys/i+4OYNjEj/I1GBFom1l76zWR9d2GrJpmo8VH5ucGP Eh2kqXRX8ckUtSbOx0uDelhmtzJo3BwC5oJQ6B3Xb9S/febMpKoMOaroJM9ooa7J OO70FUadmtVatKgusd1amdhHeT8i2fYOmK4CgSxoa+RIQr5knjgkL2zsYl+W7nja hNmSwQobK5xzAzF9s5ZUfU3PtTf3WJIvjfupeLevMf5PVNVsSgalDqu0HXSCA3p3 eZIf23vp34cN7kN0Pa9K1eJxukDhAByiMzSNSuPdQtS+bx88VrQc4uZfBikYvdCO yeoHpScLPGHvFajI4Xfn9CsmNSRyxI7d71bjm+tJVwTJFoDV6rDcNVIVLqEZuX+/ VYsBAK/WoakVZi9NtYx/MMeHCZqMsoAt3ZQ5oFO2kiicCDFtoA8bnha+g8yGwI93 iOmVOjLlwQocHXNsvqBmlk+JK4ywsV6zfhqCUTXGkw6r8zGnAVaSQ23WVQqra6Op +4dBwXOhp2fc =HIUM -----END PGP SIGNATURE----- --==-=-=-- From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: Proposed changes for oauth2 Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 22:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: 79168-done@debbugs.gnu.org Received: via spool by 79168-done@debbugs.gnu.org id=D79168.175477969826337 (code D ref 79168); Sat, 09 Aug 2025 22:49:02 +0000 Received: (at 79168-done) by debbugs.gnu.org; 9 Aug 2025 22:48:18 +0000 Received: from localhost ([127.0.0.1]:43240 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uksML-0006qj-V5 for submit@debbugs.gnu.org; Sat, 09 Aug 2025 18:48:18 -0400 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]:47183) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uksMH-0006qR-OX for 79168-done@debbugs.gnu.org; Sat, 09 Aug 2025 18:48:16 -0400 Received: by mail-pg1-x52d.google.com with SMTP id 41be03b00d2f7-879d2e419b9so2253498a12.2 for <79168-done@debbugs.gnu.org>; Sat, 09 Aug 2025 15:48:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754779687; x=1755384487; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=hawJabnRlRSMr1VxBOJRNk/1Yv4EAtYVIMAS4M81JEc=; b=nVg61Mou+0f4EbB36op97NSZ/lVO0ktfWLkCMdHSBFg8hGV5VsVnFotxYRdzgulHEY T/AAYofXZf9Cc0oEHi6KR1pRi4JuaA16lDGNs+8QzlWTohL8Jarr38R8qFG+WuJQjzGN 2HTLBWUZfZN5oOuGvSMKypz0KcOlAD9YnnBeMI8NOt4iaHXZy/y3gYMksDgtb0DlVNqv r+PJsvx0wFo70bhBfh6sgzx004+tMZK+1Gfe5nvcYrDfgFEeySbO63kNrO+BqhPET/ol 3QVF1X/+awmn9L4Wr6BB2WV5wDtAjuUGm02rHb9xKA2nC+RuX/MvXlOuj6t4VzTs2RG5 BY2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754779687; x=1755384487; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=hawJabnRlRSMr1VxBOJRNk/1Yv4EAtYVIMAS4M81JEc=; b=GLUT0Nf8jkoooxiew7GMmOb9Zv3o1uuwAzpTKa+iaMjI7leDpMOrCaimg3HDUJgb4u VG25KktKLBC89aLl1l+x9tELRa1blfes3No5hXg2txcuRHdtBfEUDZ0JeLZXwgbKfoe+ XqnLMP80w7OG4xM/OlDuVteZMYvhpGCFtMejQUdbMmMWY4G9spfpFVl0bK98c2/Hs9w+ GFDC7jURcy6UquHzpzo1N1zvBCnbBm9YurPOQtK5kEotoRpzdvEfVxu4DhSftaLp1pIr BkVh6+N+xE5z+TqoKXtE/I4ouH39Cb3ETXOG6/tH52S2LaPMeTALd88v5db/tY47c0OD HH8Q== X-Gm-Message-State: AOJu0YxQk0F8jUa30SBL5jgbpUM/5F4pVmB/0sOeQFma4FNDf8HFjFxE ZTXca0F/Q6lixB0Fxe+byhQd3EXntr5xuccC/N5XC7UKqft4MYoMZod4i2Cm4Q== X-Gm-Gg: ASbGncuRaByCXd8wQPCHm7cvllIQCICBJmBsDryqD1WPWbEUH33fGYt878silMt9XCp U64nX2p8taQ6lDuNVv/s9XLzw9I+6D79oQyqigkwM0yUzOV2GuwIxVX92j0gBDGVlIg2exEMDhP UhKJKhojV7hHGAmE5hI0K0NMwd1llxOsgfBZEtBEGwYAV1AVxEWAOEpFCEdq8K8r9lsAlmLzMu5 +iY9vhfWVAhNDyNsYA0C48Ah7KpqGeUv9i1tVBwOcV+YrUf68AYOhKdhs27QHe+q93m/L27yTbV wyQlbhQKHTeOGoIwIvLTbG/VMb9HzbmBm/DbmtE1OGL4QvuYsI7TA+QYmHgkO06cYhMfViUPsr6 EsqUIyI3Lq5VIJMnfIciCJEl6iuv0MgrhZYQSC7hChPv8XM7K7hjSE0vF X-Google-Smtp-Source: AGHT+IFfoqP+YV4ilwQmpgbD2r1csT7yrXbGpgzJNRWq72AwOgpbbfSTDxprrTSQo9M4CclCKqbk9Q== X-Received: by 2002:a17:903:110f:b0:240:3584:6174 with SMTP id d9443c01a7336-242c205e73cmr115293235ad.21.1754779687013; Sat, 09 Aug 2025 15:48:07 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241e8aaafefsm239296895ad.160.2025.08.09.15.48.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Aug 2025 15:48:06 -0700 (PDT) From: Xiyue Deng In-Reply-To: <87cy948ac0.fsf@debian-hx90.lan> References: <20250804002049.2462665-1-manphiz@gmail.com> <87ikiy3zdo.fsf@zephyr.silentflame.com> <87sei13s2q.fsf@debian-hx90.lan> <87ikiw26be.fsf@zephyr.silentflame.com> <87cy948ac0.fsf@debian-hx90.lan> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Sat, 09 Aug 2025 15:48:05 -0700 Message-ID: <875xew863e.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Xiyue Deng writes: > Hi Sean, > > Sean Whitton writes: > >> Hello, >> >> Sorry, Xiyue, this is an ELPA package, so I didn't need to ask you to >> respin the commit messages. My apologies. >> >> In any case I made some stylistic changes to some of them, such as using >> Co-authored-by instead of ad hoc notes. >> >> Patch 09/11 I'm not qualified to review, but based on your experience >> using it for a while it seems okay to install it. >> >> Thank you for your efforts. > > Thanks Sean! > > Meanwhile I'll also keep an eye on any bug report. Didn't expect to find one this quick: there is a missing `scope' parameter in oauth2-auth. Please see the attached patch for fix. > >> >> --=20 >> Sean Whitton > > --=20 > Regards, > Xiyue Deng =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Fix-missing-parameter.patch Content-Transfer-Encoding: quoted-printable From=2077d94954edda971da34d19d421fc295086cd7460 Mon Sep 17 00:00:00 2001 From: Xiyue Deng Date: Sat, 9 Aug 2025 15:43:28 -0700 Subject: [PATCH] Fix missing parameter * packages/oauth2/oauth2.el (oauth2-auth): Add missing scope parameter. * packages/oauth2/oauth2.el (oauth2-auth-and-store): Pass scope to oauth2-auth. =2D-- oauth2.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oauth2.el b/oauth2.el index 25458911d2..de9558529e 100644 =2D-- a/oauth2.el +++ b/oauth2.el @@ -247,7 +247,7 @@ TOKEN should be obtained with `oauth2-request-access'." =20 ;;;###autoload (defun oauth2-auth (auth-url token-url client-id client-secret =2D &optional state redirect-uri) + &optional scope state redirect-uri) "Authenticate application via OAuth2." (oauth2-request-access auth-url @@ -293,7 +293,7 @@ Returns an `oauth2-token'." :token-url token-url :access-response (plist-get plist :access-resp= onse)) (let ((token (oauth2-auth auth-url token-url =2D client-id client-secret state + client-id client-secret scope state redirect-uri))) ;; Set the plstore (setf (oauth2-token-plstore-id token) plstore-id) =2D-=20 2.50.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmiX0CUSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTsKkP/20NSeDsFuWoH36pIU4WmbQmk8slR7W9 bOTJ/QfcPSlLDX06qbDcH4KbfPJuuRyPhj8mBZCL3z44yPXRB8MR1GvSWSp8p17k 2rSaGjvGkCvz8E2ToDJVUAFQlNnCWK7QEl+tzjtW9I6HgqIMIzA4coFNHu2oW4UT Gz99aN7envopdBw/iMjn5a2uc3XeFIQkBZA6PZLAQPc5cp7HPwWkLo51nW3xmCTt 9rNJmpqXHt3wZQey7YgFIhm/uNklfg4/1vnz5grjnaacFiBKwS836nIG5NrRA12Q Q/Hn4VnPVSUTuCfD8wwAfz6CGN4lFiIRYoYBQPwfPFhWPweRLOmP9ccj01fs5Gi6 tCGK+kg+bi+1HYMTXeRCbCYIsL9+JSLK8HJz8sE1BrD/sX5BYGFSHsZ0t/ufSfPN NjA2IoKXC6LbI/w9hI6y2t+8xh7eOv8qTIELkCIMw4dtHF0CCrjG8r3n/rrfOCR5 zk0mPrO65pTOTgxEqXaEIESZ6ez+rM6zQdwHHKCujmyCsPgd0QGaK2YrNgZ7Fx4o mqTZjLl5wq+myRPt342jVoa66ENfmv7nwZmhDbEif/+RIgQ5xGlFAFw5hRR8ZJGa jzHUz7/jNHREO6rZBUOWmoLDlNeewqYxC6RVIV7Q4fRZbfodZqelMObFTGSpkOfK 85Z/QS9EkIyS =fzes -----END PGP SIGNATURE----- --==-=-=-- From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: Proposed changes for oauth2 Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 23:28:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: 79168-done@debbugs.gnu.org Received: via spool by 79168-done@debbugs.gnu.org id=D79168.1754782023660 (code D ref 79168); Sat, 09 Aug 2025 23:28:02 +0000 Received: (at 79168-done) by debbugs.gnu.org; 9 Aug 2025 23:27:03 +0000 Received: from localhost ([127.0.0.1]:43276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uksxq-0000AZ-MU for submit@debbugs.gnu.org; Sat, 09 Aug 2025 19:27:03 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]:44042) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uksxn-0000A0-Gv for 79168-done@debbugs.gnu.org; Sat, 09 Aug 2025 19:27:00 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b4255b4d8f9so2102381a12.0 for <79168-done@debbugs.gnu.org>; Sat, 09 Aug 2025 16:26:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754782013; x=1755386813; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=2zY1AWlpvDIxqZ6blK5pT/fUKLkMNolbynrIpvkteV8=; b=Fjcm6sffW5Drwg0CAWkRv0D4iQMHXlOoY4dy30IdMv8H3JN8KBJT2v0aBa2Bwql+RB mDcZIZeE23lRtpgGrlyOCSwEpjCIiA+TD00Jwl/h+VDqwzsENlhXNiBPZMHVp/UOaQO5 McJxZ5z6JiPRAFyhIM8xkeYuJni3hrmzQKtFGkHT6/81ji0wSJPRrNiTMMDhC0EHPBPT KMet5yKUk2NVJj3D+oFpvzCZiQ04EQWhoWeTWFk/b5MKy1Gu8RoXgkTccqMeZZB2PcDt RPwbbVijnsrTSH3GhYj/GaHk1XTm/ukQMu+2QMN6hJl/9OP+V0NPKZnOOJzVhqZWQ6kI gXpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754782013; x=1755386813; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=2zY1AWlpvDIxqZ6blK5pT/fUKLkMNolbynrIpvkteV8=; b=Dob8MWZhY2Q1zR9WWnjYa3zGtbgP86nqDJfVqgrNm6hLjiL474ZhAe2xW3XtovzTxC xtB05Rb0Qph324aW0jWDyvMgwHMH4w17MSnjmCrKM5f5GOn5qQtzgrruibg5OHpj2hJt 635MXTM45Mm4lttPZ5F4rPuBZanTBq6jO+Krl6nJGP0Oq9mzw6HshWN/CN7IHW3DbDIx DA8j3sSfgn8Ef13LlWhGPNfpCaUu9md3N68Lpi//C4SCISlnIYpYZQp23Z5UGZFGhgZX vtm5npboEgnNGq88Nn1NyV9RezQjSLY+8eCgpFCNCHkE8iutcw3MzJ8gKTR9LcfOhB38 uTng== X-Gm-Message-State: AOJu0YybmpKFvGyiC61jmUXmtdlzM7Lpodh9be2z5c2+BSk80FiuI2B2 udDV+z8Z0CwBXNPyAXYmlf7DoLrGDHR8RYW6eGdhfkx/WBzD0Z4z45Y5gb1ayA== X-Gm-Gg: ASbGncsE0h9HQpRok0mpYSkOpKg1iQIjz/cvgt7McrypCDaFpx539XXnymbIBSo+AOv ar6rRtM1gCc3vtznwJQAoluu6jDc7wyczzTw/A5qUqSu6Ku4lVxiaEwUqpljs2JAhqwq6f8Dg1k DlWYXeQmaaY1r3D0jTmxthFdKsqXJCqhne7/RpTCSU7PENhJDdWVC1JXxOpOA8ArUBN0CfvG0CR PnO5QCW6b/GepDXorLSswR/kErYu5Eh4MydJhHwylBrDRROkKU6mCXEFkJlOEPLD8pnduLf1TNV OhgOAW8joFsyOo49PkvDbfhPZCY69as8QplHtv2xKIw4ZlvcfyuPg+Sp3OFmCirFMbC/nXPO1dV MlwgZGsAn9lQgArBgy/EltWDvIJ5OatViovIyfBv2XmYf8UIyyogVCwBO X-Google-Smtp-Source: AGHT+IEUdeDUqp+Jku9KisD5OGKIVTqiWCRB2z+iJV4ak1p0Kth8WAdnkhyjqISKGyCPizXN71gYfg== X-Received: by 2002:a17:902:fc87:b0:23f:ade1:2227 with SMTP id d9443c01a7336-242c1fdb174mr118016335ad.12.1754782012987; Sat, 09 Aug 2025 16:26:52 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1f1efe8sm235902095ad.69.2025.08.09.16.26.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Aug 2025 16:26:52 -0700 (PDT) From: Xiyue Deng In-Reply-To: <875xew863e.fsf@debian-hx90.lan> References: <20250804002049.2462665-1-manphiz@gmail.com> <87ikiy3zdo.fsf@zephyr.silentflame.com> <87sei13s2q.fsf@debian-hx90.lan> <87ikiw26be.fsf@zephyr.silentflame.com> <87cy948ac0.fsf@debian-hx90.lan> <875xew863e.fsf@debian-hx90.lan> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Sat, 09 Aug 2025 16:26:49 -0700 Message-ID: <871ppk84au.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="===-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --===-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: multipart/mixed; boundary="==-=-=" --==-=-= Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Xiyue Deng writes: > Xiyue Deng writes: > >> Hi Sean, >> >> Sean Whitton writes: >> >>> Hello, >>> >>> Sorry, Xiyue, this is an ELPA package, so I didn't need to ask you to >>> respin the commit messages. My apologies. >>> >>> In any case I made some stylistic changes to some of them, such as using >>> Co-authored-by instead of ad hoc notes. >>> >>> Patch 09/11 I'm not qualified to review, but based on your experience >>> using it for a while it seems okay to install it. >>> >>> Thank you for your efforts. >> >> Thanks Sean! >> >> Meanwhile I'll also keep an eye on any bug report. > > Didn't expect to find one this quick: there is a missing `scope' > parameter in oauth2-auth. Please see the attached patch for fix. > And another one attached. Both should be applied. As of why I didn't find those bugs earlier, I was reusing my previously configure accounts, so the code path for requesting a new access-token was not really tested until I tried it on a new account. Sorry for about this. > [...] =2D-=20 Regards, Xiyue Deng --==-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Drop-accidentally-added-parameter.patch Content-Transfer-Encoding: quoted-printable From=20a44f77816319186b47aab347326581a8ad8a1671 Mon Sep 17 00:00:00 2001 From: Xiyue Deng Date: Sat, 9 Aug 2025 16:04:38 -0700 Subject: [PATCH] Drop accidentally added parameter * packages/oauth2/oauth2.el (oauth2-request-access): Drop unnecessary auth-url parameter when calling oauth2-make-access-request. Was accidentally added in 9c49b6c74a. =2D-- oauth2.el | 1 - 1 file changed, 1 deletion(-) diff --git a/oauth2.el b/oauth2.el index de9558529e..0da4883bc3 100644 =2D-- a/oauth2.el +++ b/oauth2.el @@ -187,7 +187,6 @@ Returns an `oauth2-token'." (let ((request-timestamp (oauth2--current-timestamp)) (result (oauth2-make-access-request =2D auth-url token-url (url-encode-url (concat =2D-=20 2.50.1 --==-=-=-- --=-=-=-- --===-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmiX2TkSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTk3AP/jN6SrgE70DGztQLw05LRkLhU1bo3QnM h4lpgQbegSoLeQUJHbubC0EOzVwuu7343wvLu0lxdK7nHjoMJiswvTiKkALlpnrM yS8ZwLjp6lHyrNblNa0/dujwvgUPxDPAkpg8djLDxScDdWNmi7GhCKfVyqcVIiPb TGBWfb9iuPKh6fssevGCiPjrFMDT32a+E94s0ImHWbk4UGWTYb6jefk+CPT8skZI 3RM51kdlFsy7obgDTjE3Nq2ML/dRZ8a5Qs11Bec9YViZXb3kxVYu71RrAYOIBlPH LQVxouoLcf969PmRvtCfApQYynKvHcKB3uojPPnG0nfT+psUER0KN2zY5CgVYmx9 gH1KcIc+PmLmDr42UkQnR+nSXzrJ5347QQptceocGCvJwpNbQ6T0DQWxz41sno71 7+RioTuXTnEljvpeGq/nYnMZrnlO12Sn9ECssC6DW44sfaatLUR/SzjIIz1cusam tkYmnFQOSPWqMBZoxbfFNrLKFn7bOteWmGR281reyLBy4TY4MLulWzdpjRSouvyJ CX0V9BTABgW/kkBBeUsdj6Htavw7sM49nnyGefX/FsT5KL4GV6IphTELNWxlLj1Y PCWTGa18gtjEapj3vFN3LriFnyJVxhetbh47YQbqmWXGa5W1aA9zF60c1fnsEaVL ZtOscItXb7c9 =SVkt -----END PGP SIGNATURE----- --===-=-=-- From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: Proposed changes for oauth2 Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Aug 2025 11:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Xiyue Deng Cc: 79168@debbugs.gnu.org Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.17548267754532 (code B ref 79168); Sun, 10 Aug 2025 11:53:02 +0000 Received: (at 79168) by debbugs.gnu.org; 10 Aug 2025 11:52:55 +0000 Received: from localhost ([127.0.0.1]:44213 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ul4bf-0001B1-5T for submit@debbugs.gnu.org; Sun, 10 Aug 2025 07:52:55 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:51318) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ul4ba-0001Ai-KP for 79168@debbugs.gnu.org; Sun, 10 Aug 2025 07:52:52 -0400 DKIM-Signature: a=rsa-sha256; b=d0RM5oxzxDSYfzT3EQWQxLD5Rz2uFhp5gLZlCSnGuhV1yMhl1DeWiMcibr768z3zm+k9qlpPd31nsGO9T4frBlGv6EHMxjINs286yy9pLp7RtgOKzaaxafnshk7T48YSS2qiUHkKq9PISpU8iIub/JRjFDcjhVOPStSPgrjs1ZVZNdnqRUYf9dKvDVEWz4xCKDi35a7LRxt2OQeD4otT4dvNpK4XGGSzBC6Sfc3iPquhWbXPhULnCiqZHhadRWCI6pKGqHHJdQA0LWQ+sJhYR3u8SnHjgc+UKJjBE/cxxrlo+Ivh9GsWILNtvTS3FlXI76rdsUvwSNJyG4r5hfVk0A==; s=purelymail1; d=spwhitton.name; v=1; bh=o/fMbxuJOidiVJJZ4iaGrtOxo2hzImMX6huk8FDH/ks=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=FZaHNj1rWgN9G4RNNsoVVz05hTEgpwyYUoCnnum2K97Wbi6RfUg+ZNy/KpgeyjV2n5ok53ru9AN74efyB3wT76rJaiF+gHfEo0r7yM3xpbEoDYDG2mMUkls74Wsksh9lbsyJdMQ00vlixmZiJU3wWnfSADHoDPzM7xx2hywSbvCRQBajjSW9aGFr+rU/gVl961dOx3NnpAiqhjEXtpXoWRhwWFQ9l5xpQcHNEFl04pFnoDsuX6jnskewO9tTkrvc5RdOdtT6oJ0duIi8vF9SOI5Ri8y1A14u+bB6RAtB31i4jBnjCjBbhmEqwRkOiMdlUvIPFtWBye+yQHj/fik/Yg==; s=purelymail1; d=purelymail.com; v=1; bh=o/fMbxuJOidiVJJZ4iaGrtOxo2hzImMX6huk8FDH/ks=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79168@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1863069054; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sun, 10 Aug 2025 11:52:42 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 3230A9404E5; Sun, 10 Aug 2025 12:52:42 +0100 (BST) From: Sean Whitton In-Reply-To: <871ppk84au.fsf@debian-hx90.lan> References: <20250804002049.2462665-1-manphiz@gmail.com> <87ikiy3zdo.fsf@zephyr.silentflame.com> <87sei13s2q.fsf@debian-hx90.lan> <87ikiw26be.fsf@zephyr.silentflame.com> <87cy948ac0.fsf@debian-hx90.lan> <875xew863e.fsf@debian-hx90.lan> <871ppk84au.fsf@debian-hx90.lan> Date: Sun, 10 Aug 2025 12:52:42 +0100 Message-ID: <87frdzv1f9.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, Installed those. Thanks. -- Sean Whitton From unknown Thu Aug 14 22:17:57 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79168: Proposed changes for oauth2 Resent-From: Xiyue Deng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Aug 2025 18:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: 79168@debbugs.gnu.org Received: via spool by 79168-submit@debbugs.gnu.org id=B79168.175485204828013 (code B ref 79168); Sun, 10 Aug 2025 18:55:01 +0000 Received: (at 79168) by debbugs.gnu.org; 10 Aug 2025 18:54:08 +0000 Received: from localhost ([127.0.0.1]:45949 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ulBBI-0007Hk-In for submit@debbugs.gnu.org; Sun, 10 Aug 2025 14:54:08 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]:45285) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ulBBE-0007H8-LG for 79168@debbugs.gnu.org; Sun, 10 Aug 2025 14:54:06 -0400 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-76bd041c431so3171343b3a.2 for <79168@debbugs.gnu.org>; Sun, 10 Aug 2025 11:54:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754852038; x=1755456838; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=vussmwvr7Kraz3RokAyHBxCNkP2hPCbNh/vv0+BSNHY=; b=gWLt4Z1rZ3lfUL9QgeCikTIo5elE9zwf/o9+ucJHMHN6y3+4vWVXLJzygpNmbP7DjM X/fbq4cnRqbFoGLXYny4oHncBXb3NjaPwlltTiUMKPf5R6LLlx3DUck1TNoC4DejKlwR gM9q3Z5fk2CzffTRfWjAw8MrpPMMZevDV2eQm8KIHtEKq/kGnVRKGB0INgOZmPeJmB5w k80epobgo/KfQyQtMolAhhqyGrVCAkmDtF14+Agfqi3+iqSkBsADOpoyJxxIGWs9qEt6 3JfhNw7+QKN1t9a2R1ahCgqzWPsscHXymR6bk2NvMwVQyvhB8Nx+oKVimZf6YF5qdUmi C91A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754852038; x=1755456838; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=vussmwvr7Kraz3RokAyHBxCNkP2hPCbNh/vv0+BSNHY=; b=ZsAY2UvBj3Zk89h+uFcwDPh6helQZgh6iq98tTVrzydWs2UHzqejXv6jg6F8EzIKxF WTAU2OemwxfdS1jq5VF1yk825RWOO8jEtDPPTcUywBT5Il/yadaNOEO4caX33Cbeshyy wFPf5zZ5z5qggLbRuE3NKnF8Gp0lrxxg7sGx1RcRldm9zQq9LHJvFtlIllc3wELa3Uuh l3wnTYVkTc/0OJ6tZsB6Mx0eChbtIxicOfTUA/Gu0EqjJXrJOFfOcSu5aRziBrjWg9+f omO8OBYM2mEp0ErarjcNqj0179UsFV/nkSf065nw5GbSdYhnu/Mgd72Y6tIhp+2tkVHU BYrw== X-Gm-Message-State: AOJu0YxT3OgU97hLr2ric4liXxg32uJ81hlTgwHuBU4f7N43Wdpx3UM9 BHVQXOmc8V7pk+cCKZbZLK1nYONDyUaUCMp+TEwNitBuMV0vP9vCVsuPSMQ2wQ== X-Gm-Gg: ASbGncturWOZI3DYtmWbEuyV8cy+rXRDicqxeh5EGgtZmLTJK6Leo4jWFgR1A6Gnm29 EC60LhenLNzYbp73r17Yhl0l34I/q9Z+AlEkP24k0UfQEIlDxL/JV1UoYjotJ649ElEu2UqFVew hI8A4N+q8osKDL5hxwE76eEr5wPd4Pgrjw//CC+Ge5GChlgx1ESlRo8BYcI3vVhadFYHAol3NAG j/rvFjyWREcvqrZm9ergxIkJ/lX9S5cknu+VHNvzBoH+G7c9HopB/NSj5KWfxr1JraEx9sA30Ja 8t2HlZp6Vc2uVuIfSWvkbm42KOJHZc6UXFyTuVg35H5A8GuWXVpjtw8hkC+ytLFzoSVLpifa5hP 9JGk5KYlNaaSFShPMjiUFbt+WFmGxyqNZzcnnlMqWjWSP1ewQHzOSj64R X-Google-Smtp-Source: AGHT+IGIxbpVf5b4Z5l1VTsk0UsysSvSfHDBRWpmooC3EbvfpaeJEsk3BO/7WbrjKoIbVxJxAJg6DA== X-Received: by 2002:a17:903:247:b0:240:3eb9:5363 with SMTP id d9443c01a7336-242c21e082fmr127441885ad.27.1754852037779; Sun, 10 Aug 2025 11:53:57 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241e8975c94sm254078275ad.93.2025.08.10.11.53.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 Aug 2025 11:53:56 -0700 (PDT) From: Xiyue Deng In-Reply-To: <87frdzv1f9.fsf@zephyr.silentflame.com> References: <20250804002049.2462665-1-manphiz@gmail.com> <87ikiy3zdo.fsf@zephyr.silentflame.com> <87sei13s2q.fsf@debian-hx90.lan> <87ikiw26be.fsf@zephyr.silentflame.com> <87cy948ac0.fsf@debian-hx90.lan> <875xew863e.fsf@debian-hx90.lan> <871ppk84au.fsf@debian-hx90.lan> <87frdzv1f9.fsf@zephyr.silentflame.com> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Sun, 10 Aug 2025 11:53:53 -0700 Message-ID: <87sehz6m9q.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Sean Whitton writes: > Hello, > > Installed those. Thanks. > Thanks a lot! > --=20 > Sean Whitton =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmiY6sESHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTKc4P+wSehYOv9qnn9aHxOm/v4vLmWq+MtwP1 zAem1LWX4TXajGpCaxFEXPc+6ak7Je1bY5Dx38r4N6uZlTOjtLD7VofDOL/iCuZ7 8YIv4wPx7dH+fjMZ979/hcOxgn4be88q+btFms1YVNMcGoWlIk6vqMmroSway9WN kgHVOyDGJ4ZttGbdjPhFLI70fmfnRJkOLJVw3/iNhoeySh5/RPy0wPAPvBbDIHy6 6Z0Y7hAyN96mVZi4pi8NlyMbUyVYaRiDekJ6+uVJR2fA1X4bNtZMCPGQVT2WXVjN fp8Sc7BpNHoYYtnZ4svfSpIEyJl04p4lDStsrGvxiUCQbysezda8Az13m95kd53m Mx76GiIi7lITpos6/Pi9QAjZMMNGcrqeU1Pe0pDbBkR9EVgk8hT0P2+CKrS0AFS3 R+4ThYMmbKief3DvEBrrcPawAK6ahNEIKygsifzZH1izMCAfVChGiwxpdMy9jIdh yT90wFhqw3U5cQvq4jgIYZpQ4QaIWgTR7YdwsFa9qeHn7x04g4sLTQ7qbkbBP9Us L1n8v7slBa8wm5dnrrTXNGaypB2G1IQq0YUyaYiiZhxQ+C52xvwRSQn5Fut0wtOs jAKMqyP4YeMPLqk8yQEOZw6YUTLyUpXRC96vF9FPayRD4ZpxJLf5eIE2VwN5LcDi AaXr1v/535+3 =Lmv+ -----END PGP SIGNATURE----- --=-=-=--