From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Reuben Thomas Newsgroups: gmane.emacs.bugs Subject: bug#13442: 24.1; Please add a function to hexify paths to url-util, e.g. the attached Date: Mon, 14 Jan 2013 22:29:20 +0000 Message-ID: <87fw23s8jj.fsf@sc3d.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1358202650 16384 80.91.229.3 (14 Jan 2013 22:30:50 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 14 Jan 2013 22:30:50 +0000 (UTC) To: 13442@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jan 14 23:31:07 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TusYb-0006Y6-PG for geb-bug-gnu-emacs@m.gmane.org; Mon, 14 Jan 2013 23:31:06 +0100 Original-Received: from localhost ([::1]:60458 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TusYL-0003xA-FY for geb-bug-gnu-emacs@m.gmane.org; Mon, 14 Jan 2013 17:30:49 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:46880) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TusYD-0003cu-8N for bug-gnu-emacs@gnu.org; Mon, 14 Jan 2013 17:30:43 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TusYB-0003Cg-Df for bug-gnu-emacs@gnu.org; Mon, 14 Jan 2013 17:30:41 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:54935) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TusYB-0003Cc-9l for bug-gnu-emacs@gnu.org; Mon, 14 Jan 2013 17:30:39 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TusYY-0007ID-Iw for bug-gnu-emacs@gnu.org; Mon, 14 Jan 2013 17:31:03 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Reuben Thomas Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 14 Jan 2013 22:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 13442 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.135820260427931 (code B ref -1); Mon, 14 Jan 2013 22:31:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 14 Jan 2013 22:30:04 +0000 Original-Received: from localhost ([127.0.0.1]:60399 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TusXb-0007GQ-Co for submit@debbugs.gnu.org; Mon, 14 Jan 2013 17:30:04 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:35098) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TusXY-0007FV-6I for submit@debbugs.gnu.org; Mon, 14 Jan 2013 17:30:02 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TusX6-0002c9-1Q for submit@debbugs.gnu.org; Mon, 14 Jan 2013 17:29:33 -0500 Original-Received: from lists.gnu.org ([208.118.235.17]:37291) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TusX5-0002c5-UU for submit@debbugs.gnu.org; Mon, 14 Jan 2013 17:29:31 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:46443) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TusX3-0001WP-3T for bug-gnu-emacs@gnu.org; Mon, 14 Jan 2013 17:29:31 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TusX0-0002bK-Pq for bug-gnu-emacs@gnu.org; Mon, 14 Jan 2013 17:29:29 -0500 Original-Received: from exprod7og108.obsmtp.com ([64.18.2.169]:59901) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1TusX0-0002bA-Cj for bug-gnu-emacs@gnu.org; Mon, 14 Jan 2013 17:29:26 -0500 Original-Received: from mail-la0-f72.google.com ([209.85.215.72]) (using TLSv1) by exprod7ob108.postini.com ([64.18.6.12]) with SMTP ID DSNKUPSGw+cM1GqrUXy2Msh9ztkEK4kRIZ3x@postini.com; Mon, 14 Jan 2013 14:29:25 PST Original-Received: by mail-la0-f72.google.com with SMTP id fp12so4595248lab.11 for ; Mon, 14 Jan 2013 14:29:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:x-received:from:to:subject:date:message-id:mime-version :content-type:x-gm-message-state; bh=FhnEtC0GimMg0fFX4So6NO+lU69i3zFEawssYU+XWNo=; b=h/jWU58RL5q0MEmOejcfRyK8hACcs9PxuQl/E65Y4233F3T354c3esbEXmM2v9KIrd aAfPBwPpILbulnYCFkad2nF3JxswXWzJ2wR6Pp14kTwci7pjr12Q4dj56wBIxQhl0Hzi TaH8KAevIovEJbsVjQnz4RJ/hSo97gAYX2TLt/1IUcpBm/wc8ZCKBQDyyBnJf0s4w+pO /NdH+xpNylQgdYA8Jqa3MU0n7CYhw1Vl1NXo6TpGMxRBrBxqr9GjHd33/ZUSaU/pFjkQ aJXnuOE5INrJTa2pOiTSlDiUEFdKFI8fOcMggkTDGo0fC4FgnfHpSz5gYMNFxIFUG912 oh9w== X-Received: by 10.180.82.41 with SMTP id f9mr93682wiy.25.1358202562829; Mon, 14 Jan 2013 14:29:22 -0800 (PST) X-Received: by 10.180.82.41 with SMTP id f9mr93676wiy.25.1358202562697; Mon, 14 Jan 2013 14:29:22 -0800 (PST) Original-Received: from skwd ([149.241.115.91]) by mx.google.com with ESMTPS id bd6sm762599wib.10.2013.01.14.14.29.21 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 14 Jan 2013 14:29:22 -0800 (PST) X-Gm-Message-State: ALoCoQkw2ZAmXAegmjK2dJh3P+MItxtsiLucPcFXx7cjzpOwzaUMTBqGcDNZnNsdjS3AYc/SRuR2YjYcq+Aqt9nEM8aj7+33mbORk6hb0R6hs4ANUmCp/3KQrcWdowUJwG/JI9Vc2Gj5xPs+KLdL0FFUVS2X7ORB+OxWEd4dKNvUBj/jSdEzRMg= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:69776 Archived-At: Sometimes, one needs to escape a path that will be made part of a URL. The code here: https://github.com/MassimoLauria/dotemacs/blob/master/init-latex.el shows a need for it, namely, escaping a filename to pass as part of a URL to DBus as part of the use of SyncTeX. As far as I can tell, there's no function that does this currently. Something like the code at the above-mentioned URL seems to work nicely, e.g.: (defun url-hexify-path (path) "Handle special characters for urlify. `/' is added temporarily to `url-unreserved-chars', so that `url-hexify-string' won't escape path separators." (let ((url-unreserved-chars (cons ?/ url-unreserved-chars))) (url-hexify-string path))) though I imagine this could be more neatly done. Since '/' is the only special character in paths that needs to be retained in URLs, the algorithm seems sound, at least. In GNU Emacs 24.1.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.12) of 2012-09-22 on batsu, modified by Debian Windowing system distributor `The X.Org Foundation', version 11.0.11300000 Configured using: `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.1/site-lisp:/usr/share/emacs/site-lisp' '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -O2' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: en_GB.UTF-8 value of $LC_NUMERIC: en_GB.UTF-8 value of $LC_TIME: en_GB.UTF-8 value of $LANG: en_GB.UTF-8 value of $XMODIFIERS: @im=none locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: Emacs-Lisp Minor modes in effect: shell-dirtrack-mode: t recentf-mode: t show-paren-mode: t server-mode: t savehist-mode: t minibuffer-electric-default-mode: t iswitchb-mode: t icomplete-mode: t global-auto-revert-mode: t desktop-save-mode: t TeX-PDF-mode: t TeX-source-correlate-mode: t tooltip-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-a C-SPC C-n C-n C-n C-x b C-x b C-s C-a C-SPC C-n C-n C-n C-n C-n C-n M-x r e p o r t - e m a c s - b u g Recent messages: Wrote /home/rrt/.emacs.d/funs.el url-hexify-path byte-code: End of buffer [16 times] TeX-evince-sync-view Auto-saving...done Auto-saving...done Saving file /home/rrt/.emacs.d/funs.el... Wrote /home/rrt/.emacs.d/funs.el Making completion list... Mark set [3 times] Load-path shadows: /home/rrt/local/share/emacs/site-lisp/browse-kill-ring hides /usr/share/emacs24/site-lisp/emacs-goodies-el/browse-kill-ring /home/rrt/local/share/emacs/site-lisp/dict hides /usr/share/emacs24/site-lisp/emacs-goodies-el/dict /home/rrt/.emacs.d/elpa/dictionary-1.8.7/dictionary-init hides /usr/share/emacs24/site-lisp/dictionary-el/dictionary-init /home/rrt/.emacs.d/elpa/dictionary-1.8.7/dictionary hides /usr/share/emacs24/site-lisp/dictionary-el/dictionary /home/rrt/.emacs.d/elpa/dictionary-1.8.7/link hides /usr/share/emacs24/site-lisp/dictionary-el/link /home/rrt/.emacs.d/elpa/dictionary-1.8.7/connection hides /usr/share/emacs24/site-lisp/dictionary-el/connection /usr/share/emacs24/site-lisp/auctex/tex-style hides /usr/share/emacs/site-lisp/auctex/tex-style /usr/share/emacs24/site-lisp/auctex/tex-mik hides /usr/share/emacs/site-lisp/auctex/tex-mik /usr/share/emacs24/site-lisp/auctex/multi-prompt hides /usr/share/emacs/site-lisp/auctex/multi-prompt /usr/share/emacs24/site-lisp/auctex/tex-jp hides /usr/share/emacs/site-lisp/auctex/tex-jp /usr/share/emacs24/site-lisp/auctex/tex-info hides /usr/share/emacs/site-lisp/auctex/tex-info /usr/share/emacs24/site-lisp/auctex/plain-tex hides /usr/share/emacs/site-lisp/auctex/plain-tex /usr/share/emacs24/site-lisp/auctex/latex hides /usr/share/emacs/site-lisp/auctex/latex /usr/share/emacs24/site-lisp/auctex/preview hides /usr/share/emacs/site-lisp/auctex/preview /usr/share/emacs24/site-lisp/auctex/tex hides /usr/share/emacs/site-lisp/auctex/tex /usr/share/emacs24/site-lisp/auctex/texmathp hides /usr/share/emacs/site-lisp/auctex/texmathp /usr/share/emacs24/site-lisp/auctex/context-nl hides /usr/share/emacs/site-lisp/auctex/context-nl /usr/share/emacs24/site-lisp/auctex/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-font /usr/share/emacs24/site-lisp/auctex/toolbar-x hides /usr/share/emacs/site-lisp/auctex/toolbar-x /usr/share/emacs24/site-lisp/auctex/tex-buf hides /usr/share/emacs/site-lisp/auctex/tex-buf /usr/share/emacs24/site-lisp/auctex/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite /usr/share/emacs24/site-lisp/auctex/context-en hides /usr/share/emacs/site-lisp/auctex/context-en /usr/share/emacs24/site-lisp/auctex/tex-fold hides /usr/share/emacs/site-lisp/auctex/tex-fold /usr/share/emacs24/site-lisp/auctex/tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar /usr/share/emacs24/site-lisp/auctex/context hides /usr/share/emacs/site-lisp/auctex/context /usr/share/emacs24/site-lisp/auctex/prv-emacs hides /usr/share/emacs/site-lisp/auctex/prv-emacs /usr/share/emacs24/site-lisp/auctex/font-latex hides /usr/share/emacs/site-lisp/auctex/font-latex /usr/share/emacs/site-lisp/golang-mode/go-mode-load hides /usr/share/emacs/24.1/site-lisp/golang-mode/go-mode-load /usr/share/emacs/site-lisp/golang-mode/go-mode hides /usr/share/emacs/24.1/site-lisp/golang-mode/go-mode /usr/share/emacs/24.1/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode /usr/share/emacs/24.1/site-lisp/cdargs hides /usr/share/emacs/site-lisp/cdargs /usr/share/emacs/site-lisp/rst hides /usr/share/emacs/24.1/lisp/textmodes/rst /usr/share/emacs24/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/24.1/lisp/textmodes/ispell /usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/24.1/lisp/textmodes/flyspell Features: (shadow sort mail-extr emacsbug message format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils newcomment url-util url-parse auth-source eieio gnus-util password-cache url-vars mm-util mail-prsvr shell pcomplete grep jka-compr find-func multi-isearch texmathp etags lua-mode cperl-mode vc-git python-21 python sh-script executable todoo help-mode view latexenc preview prv-emacs warnings noutline outline tex-buf font-latex byte-opt bytecomp byte-compile cconv macroexp latex tex-style flymake compile comint ansi-color ring face-remap flyspell ispell smart-quotes auto-dictionary-autoloads c-eldoc-autoloads dictionary-autoloads diff-git-autoloads dired-isearch-autoloads full-ack-autoloads guess-style-autoloads kill-ring-search-autoloads magit-autoloads mv-shell-autoloads tumble-autoloads http-post-simple-autoloads package tabulated-list completing-help recentf tree-widget wid-edit uniquify paren server savehist minibuf-eldef iswitchb icomplete autorevert desktop cus-start cus-load ropemacs pymacs tex dbus xml regexp-opt user-site-loaddefs advice advice-preload yasnippet help-fns derived edmacro kmacro easymenu assoc cl muse-autoloads go-mode-load emacs-goodies-el emacs-goodies-custom emacs-goodies-loaddefs easy-mmode preview-latex tex-site auto-loads time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) -- http://rrt.sc3d.org/