From unknown Sat Aug 09 01:09:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17949: 24.3; .dir-locals.el needs a way to construct paths relative to its own location Resent-From: Samuel Bronson Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Jul 2014 21:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 17949 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 17949@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.14045947883825 (code B ref -1); Sat, 05 Jul 2014 21:14:02 +0000 Received: (at submit) by debbugs.gnu.org; 5 Jul 2014 21:13:08 +0000 Received: from localhost ([127.0.0.1]:44367 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X3XGc-0000zb-W8 for submit@debbugs.gnu.org; Sat, 05 Jul 2014 17:13:08 -0400 Received: from eggs.gnu.org ([208.118.235.92]:54117) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X3XGZ-0000z6-66 for submit@debbugs.gnu.org; Sat, 05 Jul 2014 17:13:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X3XGR-0002Nn-K7 for submit@debbugs.gnu.org; Sat, 05 Jul 2014 17:12:57 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:44340) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X3XGR-0002Nj-Gh for submit@debbugs.gnu.org; Sat, 05 Jul 2014 17:12:55 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55833) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X3XGP-0002lV-6z for bug-gnu-emacs@gnu.org; Sat, 05 Jul 2014 17:12:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X3XGM-0002MP-Vj for bug-gnu-emacs@gnu.org; Sat, 05 Jul 2014 17:12:53 -0400 Received: from mail-qa0-x22a.google.com ([2607:f8b0:400d:c00::22a]:52299) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X3XGM-0002MD-OO for bug-gnu-emacs@gnu.org; Sat, 05 Jul 2014 17:12:50 -0400 Received: by mail-qa0-f42.google.com with SMTP id dc16so2313711qab.29 for ; Sat, 05 Jul 2014 14:12:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:mime-version:content-type; bh=d1GkN2lK/ntpXoSnaHrZRJfZF2yaEiIHUoHx0gyw9UQ=; b=F0AP1V/kZTD58DEyzg+DdW9Us6nj0bEbk8jXlZ7wmuHZO34GsiTSBpicZPgQ52G69P vZCyikkP8tew+96WJj+0EuJILWFkr1no+TYskplV69Q2Vc48K2Q5q2mJIMNFjFQW3sVe T8VMq1CFC6IamtXADNOUYRUtCAmp4rxuxX0k4kW7h8c6s7Jc+3KpElIA0AHEsDtt7ocu HMK30K7iASDs8iQaTpGHuhQj9+5yv1XsuUQy4wekWlHi3pObqS8Czay/0+Wx0bJIRJd+ N/4R3J6ev3wx9fbEXi/Rw/8CPHS0ME7v90vnopqcHNL4fzPLWTxa3+b7F+P12QaxcskB Q/xQ== X-Received: by 10.224.123.71 with SMTP id o7mr31643373qar.38.1404594770115; Sat, 05 Jul 2014 14:12:50 -0700 (PDT) Received: from hydrogen (naesten-pt.tunnel.tserv4.nyc4.ipv6.he.net. [2001:470:1f06:57::2]) by mx.google.com with ESMTPSA id i10sm63001472qaq.22.2014.07.05.14.12.48 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sat, 05 Jul 2014 14:12:49 -0700 (PDT) Received: from naesten by hydrogen with local (Exim 4.82) (envelope-from ) id 1X3XGI-0003vI-IR for bug-gnu-emacs@gnu.org; Sat, 05 Jul 2014 17:12:46 -0400 From: Samuel Bronson Date: Sat, 05 Jul 2014 17:12:46 -0400 Message-ID: <878uo7pl0x.fsf@naesten.mooo.com> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -4.0 (----) Sometimes, I want to use .dir-locals.el to set a variable to refer to a specific file within the tree in question, independantly of how deep in that tree the file in question actually is. Unfortunately, judging by and the manual, there is *no mechanism* to do this. (Unless you count the `eval' "variable". Which I don't.) Perhaps using a form something like: ,(expand-file-name "etc/foo.bar" dir-locals-directory) ? In GNU Emacs 24.3.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars) of 2014-06-06 on babin, modified by Debian Windowing system distributor `Colin Harrison', version 11.0.60900031 System Description: Debian GNU/Linux testing (jessie) Configured using: `configure '--build' 'i486-linux-gnu' '--build' 'i486-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.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp' '--with-crt-dir=/usr/lib/i386-linux-gnu' '--with-x=yes' '--with-x-toolkit=lucid' '--with-toolkit-scroll-bars' '--without-gconf' '--without-gsettings' 'build_alias=i486-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'' Important settings: value of $LC_COLLATE: C value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: CPerl Minor modes in effect: shell-dirtrack-mode: t diff-auto-refine-mode: t xterm-mouse-mode: t show-paren-mode: t recentf-mode: t tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t line-number-mode: t transient-mark-mode: t Recent input: SPC i n SPC t h e SPC u s u a SPC l SPC l SPC ` n o r m a l SPC - m o d e - ' SPC t e s t SPC p a s s i n g t h e SPC , SPC b e c a u s e SPC f o r SPC s o m e SPC r e a s o n SPC c p e r l - m o ` d e ' SPC w a s SPC f a i l i n g SPC t o SPC r e s e t SPC t h e SPC s t y l e SPC d u r i n g SPC r e i n i t i i z a i l l i z a t i o n SPC SPC SPC s o m e h o w M-q . ) M-q M-q C-c C-c y e s M-x Recent messages: Auto-saving...done Mark set Auto-saving...done Mark set [3 times] Auto-saving...done Mark set [2 times] Sending... Mark set [2 times] Sending via mail... Sending...done Load-path shadows: /home/naesten/system/emacs/dist/elpa/w3-4.0.49/ssl hides /usr/share/emacs24/site-lisp/wl/ssl /usr/share/emacs24/site-lisp/css-mode/css-mode hides /usr/share/emacs/site-lisp/css-mode/css-mode /usr/share/emacs/site-lisp/autoconf/autotest-mode hides /usr/share/emacs/site-lisp/autotest-mode /usr/share/emacs/24.3/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup /usr/share/emacs24/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode /usr/share/emacs24/site-lisp/flim/md4 hides /usr/share/emacs/24.3/lisp/md4 /home/naesten/system/emacs/dist/elisp/loaddefs hides /usr/share/emacs/24.3/lisp/loaddefs /usr/share/emacs24/site-lisp/flim/hex-util hides /usr/share/emacs/24.3/lisp/hex-util /home/naesten/system/emacs/dist/elpa/json-1.2/json hides /usr/share/emacs/24.3/lisp/json /home/naesten/system/emacs/dist/elisp/t-mouse hides /usr/share/emacs/24.3/lisp/t-mouse /usr/share/emacs24/site-lisp/html-helper-mode/tempo hides /usr/share/emacs/24.3/lisp/tempo /usr/share/emacs24/site-lisp/css-mode/css-mode hides /usr/share/emacs/24.3/lisp/textmodes/css-mode /usr/share/emacs/site-lisp/rst hides /usr/share/emacs/24.3/lisp/textmodes/rst /usr/share/emacs24/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/24.3/lisp/textmodes/ispell /usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/24.3/lisp/textmodes/flyspell /usr/share/emacs24/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.3/lisp/net/sasl-digest /usr/share/emacs24/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.3/lisp/net/sasl-cram /usr/share/emacs24/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.3/lisp/net/hmac-md5 /usr/share/emacs24/site-lisp/flim/hmac-def hides /usr/share/emacs/24.3/lisp/net/hmac-def /usr/share/emacs24/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.3/lisp/net/sasl-ntlm /usr/share/emacs24/site-lisp/flim/ntlm hides /usr/share/emacs/24.3/lisp/net/ntlm /usr/share/emacs24/site-lisp/flim/sasl hides /usr/share/emacs/24.3/lisp/net/sasl /usr/share/emacs24/site-lisp/wl/rfc2368 hides /usr/share/emacs/24.3/lisp/mail/rfc2368 /home/naesten/system/emacs/dist/elisp/package hides /usr/share/emacs/24.3/lisp/emacs-lisp/package /home/naesten/system/emacs/dist/elpa/tabulated-list-0/tabulated-list hides /usr/share/emacs/24.3/lisp/emacs-lisp/tabulated-list /usr/share/emacs24/site-lisp/auctex/toolbar-x hides /usr/share/emacs/site-lisp/auctex/toolbar-x /usr/share/emacs24/site-lisp/auctex/tex-style hides /usr/share/emacs/site-lisp/auctex/tex-style /usr/share/emacs24/site-lisp/auctex/tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar /usr/share/emacs24/site-lisp/auctex/tex-fold hides /usr/share/emacs/site-lisp/auctex/tex-fold /usr/share/emacs24/site-lisp/auctex/preview hides /usr/share/emacs/site-lisp/auctex/preview /usr/share/emacs24/site-lisp/auctex/context hides /usr/share/emacs/site-lisp/auctex/context /usr/share/emacs24/site-lisp/auctex/context-nl hides /usr/share/emacs/site-lisp/auctex/context-nl /usr/share/emacs24/site-lisp/auctex/prv-emacs hides /usr/share/emacs/site-lisp/auctex/prv-emacs /usr/share/emacs24/site-lisp/auctex/context-en hides /usr/share/emacs/site-lisp/auctex/context-en /usr/share/emacs24/site-lisp/auctex/tex-jp hides /usr/share/emacs/site-lisp/auctex/tex-jp /usr/share/emacs24/site-lisp/auctex/plain-tex hides /usr/share/emacs/site-lisp/auctex/plain-tex /usr/share/emacs24/site-lisp/auctex/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite /usr/share/emacs24/site-lisp/auctex/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-font /usr/share/emacs24/site-lisp/auctex/tex-mik hides /usr/share/emacs/site-lisp/auctex/tex-mik /usr/share/emacs24/site-lisp/auctex/font-latex hides /usr/share/emacs/site-lisp/auctex/font-latex /usr/share/emacs24/site-lisp/auctex/texmathp hides /usr/share/emacs/site-lisp/auctex/texmathp /usr/share/emacs24/site-lisp/auctex/tex-info hides /usr/share/emacs/site-lisp/auctex/tex-info /usr/share/emacs24/site-lisp/auctex/latex hides /usr/share/emacs/site-lisp/auctex/latex /usr/share/emacs24/site-lisp/auctex/multi-prompt hides /usr/share/emacs/site-lisp/auctex/multi-prompt /usr/share/emacs24/site-lisp/auctex/tex hides /usr/share/emacs/site-lisp/auctex/tex /usr/share/emacs24/site-lisp/auctex/tex-buf hides /usr/share/emacs/site-lisp/auctex/tex-buf /usr/share/emacs24/site-lisp/html-helper-mode/hhm-config hides /usr/share/emacs/site-lisp/html-helper-mode/hhm-config /usr/share/emacs24/site-lisp/html-helper-mode/visual-basic-mode hides /usr/share/emacs/site-lisp/html-helper-mode/visual-basic-mode /usr/share/emacs24/site-lisp/html-helper-mode/tempo hides /usr/share/emacs/site-lisp/html-helper-mode/tempo /usr/share/emacs24/site-lisp/html-helper-mode/html-helper-mode hides /usr/share/emacs/site-lisp/html-helper-mode/html-helper-mode /usr/share/emacs24/site-lisp/mailcrypt/mc-toplev hides /usr/share/emacs/site-lisp/mailcrypt/mc-toplev /usr/share/emacs24/site-lisp/mailcrypt/mc-remail hides /usr/share/emacs/site-lisp/mailcrypt/mc-remail /usr/share/emacs24/site-lisp/mailcrypt/mc-pgp6 hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp6 /usr/share/emacs24/site-lisp/mailcrypt/mc-pgp5 hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp5 /usr/share/emacs24/site-lisp/mailcrypt/mc-pgp hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp /usr/share/emacs24/site-lisp/mailcrypt/mc-gpg hides /usr/share/emacs/site-lisp/mailcrypt/mc-gpg /usr/share/emacs24/site-lisp/mailcrypt/mailcrypt hides /usr/share/emacs/site-lisp/mailcrypt/mailcrypt /usr/share/emacs24/site-lisp/mailcrypt/expect hides /usr/share/emacs/site-lisp/mailcrypt/expect /usr/share/emacs24/site-lisp/mailcrypt/mc-setversion hides /usr/share/emacs/site-lisp/mailcrypt/mc-setversion /usr/share/emacs24/site-lisp/psgml/psgml-edit hides /usr/share/emacs/site-lisp/psgml/psgml-edit /usr/share/emacs24/site-lisp/psgml/psgml-charent hides /usr/share/emacs/site-lisp/psgml/psgml-charent /usr/share/emacs24/site-lisp/psgml/psgml hides /usr/share/emacs/site-lisp/psgml/psgml /usr/share/emacs24/site-lisp/psgml/psgml-other hides /usr/share/emacs/site-lisp/psgml/psgml-other /usr/share/emacs24/site-lisp/psgml/psgml-api hides /usr/share/emacs/site-lisp/psgml/psgml-api /usr/share/emacs24/site-lisp/psgml/psgml-sysdep hides /usr/share/emacs/site-lisp/psgml/psgml-sysdep /usr/share/emacs24/site-lisp/psgml/psgml-init hides /usr/share/emacs/site-lisp/psgml/psgml-init /usr/share/emacs24/site-lisp/psgml/psgml-parse hides /usr/share/emacs/site-lisp/psgml/psgml-parse /usr/share/emacs24/site-lisp/psgml/psgml-info hides /usr/share/emacs/site-lisp/psgml/psgml-info /usr/share/emacs24/site-lisp/psgml/psgml-ids hides /usr/share/emacs/site-lisp/psgml/psgml-ids /usr/share/emacs24/site-lisp/psgml/psgml-dtd hides /usr/share/emacs/site-lisp/psgml/psgml-dtd /usr/share/emacs/24.3/lisp/gnus/.dir-locals hides /home/naesten/system/emacs/dist/elisp/magit/.dir-locals /usr/share/emacs/site-lisp/emacs-goodies-el/markdown-mode hides /home/naesten/system/emacs/dist/elisp/markdown-mode/markdown-mode Features: (shadow emacsbug descr-text shr nroff-mode two-column iso-transl dabbrev tabify nneething perlcritic loadhist vhdl-mode hippie-exp verilog-mode vera-mode tcl simula sieve sieve-mode sieve-manage sgml-mode ruby-mode python prolog pascal octave-mod rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok modula2 meta-mode m4-mode ld-script js json info-look idlwave idlwave-help idlw-help icon hideshow fortran f90 delphi dcl-mode css-mode cfengine cfengine3 antlr-mode ada-mode which-func align find-file sql ps-mode pde-util etags tabbar re-builder gud perldoc imenu-tree pde-project help-dwim template-simple tempo-x pde-vars windata tree-mode woman man pde-autoloads autoload tar-mode files-x debug info vc-rcs url-handlers nnweb nnregistry spam-report apropos bbdb-hooks flow-fill mm-archive gnus-html browse-url xml mm-url sort smiley gnus-cite gnus-async gnus-bcklg qp gnus-ml mailcrypt disp-table gnus-topic nndoc nndraft nnmh netrc gnutls nnfolder bbdb-gnus bbdb-snarf mail-extr nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache gnus-registry registry eieio-base spam spam-stat gnus-uu yenc gnus-msg gnus-art mm-uu mml2015 epg-config mm-view mml-smime smime dig gnus-sum nnoo gnus-group gnus-undo nnmail mail-source gnus-start gnus-spec gnus-int gnus-range message rfc822 mml mml-sec mm-decode mm-bodies mm-encode gmm-utils mailheader gnus-win gnus gnus-ems nnheader gitignore-mode perl-mode filladapt basic basic-mode cperl-mode jka-compr lisp-mnt mule-util network-stream starttls url-http tls mail-parse rfc2231 url-gw url-cache url-auth finder-inf wdired ls-lisp find-dired sh-script smie executable xmtn-dvc dvc-status xmtn-conflicts xmtn-ids xmtn-match xmtn-automate xmtn-compat parse-time xmtn-run xmtn-basic-io xmtn-base conf-mode tramp-cmds noutline outline tramp-cache tramp-sh rx tramp tramp-compat tramp-loaddefs shell pcomplete format-spec view magit-bisect magit-key-mode magit debian-copyright bbdb-com mailabbrev misearch multi-isearch dired-aux debian-bug debian-changelog-mode imenu cc-langs make-mode debian-control-mode dpkg-dev-el dpkg-dev-el-loaddefs thingatpt help-mode tla smerge-mode dvc-state dvc-config diff sendmail rfc2047 rfc2045 ietf-drums mail-utils tla-gnus dvc-gnus dvc-cmenu dvc-about dvc-version vc-git xgit-dvc xgit cus-edit xgit-annotate rect dvc-annotate xgit-log dvc-revlist dvc-diff uniquify dvc-fileinfo bzr-core tla-core pp tla-autoconf tla-defs dvc-log dvc-unified dvc-tips dired-x dired ffap commit-patch-buffer log-edit pcvs-util add-log vc vc-dispatcher diff-mode easy-mmode ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult ediff-init ediff xdarcs-core xgit-core xhg-core xmtn-minimal server derived xcscope arc-mode archive-mode asm-mode my-asm slime-autoloads dvc-autoloads dvc-core dvc-lisp dvc-buffers dvc-ui dvc-register dvc-utils dvc-emacs ewoc dvc-defs dvc-site cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs elisp-depend ps-print-bg-fixup bbdb timezone wgrep grep compile comint ansi-color ring edebug warnings trace xt-mouse paren recentf tree-widget wid-edit cus-start cus-load eldoc-eval-autoloads elisp-cache-autoloads erc-hl-nicks-autoloads fill-column-indicator-autoloads find-file-in-git-repo-autoloads gitconfig-mode-autoloads gitignore-mode-autoloads mo-git-blame-autoloads occur-x-autoloads smartparens-autoloads dash-autoloads synonyms-autoloads tabulated-list-autoloads w3-autoloads wgrep-autoloads yagist-autoloads json-autoloads yasnippet-bundle-autoloads yasnippet-bundle dropdown-list advice help-fns advice-preload yasnippet easymenu assoc package find-func cl-macs gv w3m-load psgml-init proof-site proof-autoloads pg-vars mmm-auto mmm-vars mmm-compat cl cl-lib mailcrypt-init haskell-mode-autoloads edmacro kmacro tempo url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util url-parse auth-source eieio byte-opt bytecomp byte-compile cconv gnus-util time-date mm-util mail-prsvr password-cache url-vars mailcap xml-parse doxymacs debian-el debian-el-loaddefs bbdb-autoloads preview-latex tex-site auto-loads tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment 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 macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind dynamic-setting font-render-setting x-toolkit x multi-tty emacs) -- Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread! From unknown Sat Aug 09 01:09:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17949: 24.3; .dir-locals.el needs a way to construct paths relative to its own location Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 08 Jul 2014 18:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17949 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Samuel Bronson Cc: 17949@debbugs.gnu.org Received: via spool by 17949-submit@debbugs.gnu.org id=B17949.140484347819002 (code B ref 17949); Tue, 08 Jul 2014 18:18:01 +0000 Received: (at 17949) by debbugs.gnu.org; 8 Jul 2014 18:17:58 +0000 Received: from localhost ([127.0.0.1]:47228 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X4Zxh-0004wM-JO for submit@debbugs.gnu.org; Tue, 08 Jul 2014 14:17:58 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:22300) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X4Zxb-0004w0-4r for 17949@debbugs.gnu.org; Tue, 08 Jul 2014 14:17:51 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArUGAIDvNVNLd+D9/2dsb2JhbABZgwaDSsA9gRcXdIIlAQEBAQIBViMFCwsOJhIUGA0kiAQI0hkXjnoHhDgEqRmBah2BVIFbIQ X-IPAS-Result: ArUGAIDvNVNLd+D9/2dsb2JhbABZgwaDSsA9gRcXdIIlAQEBAQIBViMFCwsOJhIUGA0kiAQI0hkXjnoHhDgEqRmBah2BVIFbIQ X-IronPort-AV: E=Sophos;i="4.97,753,1389762000"; d="scan'208";a="76890697" Received: from 75-119-224-253.dsl.teksavvy.com (HELO pastel.home) ([75.119.224.253]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 08 Jul 2014 14:17:41 -0400 Received: by pastel.home (Postfix, from userid 20848) id 2FA5A60337; Tue, 8 Jul 2014 14:17:41 -0400 (EDT) From: Stefan Monnier Message-ID: References: <878uo7pl0x.fsf@naesten.mooo.com> Date: Tue, 08 Jul 2014 14:17:41 -0400 In-Reply-To: <878uo7pl0x.fsf@naesten.mooo.com> (Samuel Bronson's message of "Sat, 05 Jul 2014 17:12:46 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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.3 (/) > Sometimes, I want to use .dir-locals.el to set a variable to refer to a > specific file within the tree in question, independantly of how deep in > that tree the file in question actually is. You could use something like: (eval (setq-local my-var (expand-file-name "etc/foo" (locate-dominating-file default-directory ".dir-locals.el")))) > Perhaps using a form something like: > ,(expand-file-name "etc/foo.bar" dir-locals-directory) Problem is security: the .dir-local.el file might not be under your control, so we don't want to run arbitrary code. The "eval" option above of course suffers from the same problem, but at least it's the official existing way to run arbitrary code, which means it doesn't run that code silently unless you've previous accepted it as "safe". This said, it might indeed be handy to be able to use , like you suggest (tho it too would need to go though some "security check", of course). Stefan From unknown Sat Aug 09 01:09:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17949: 24.3; .dir-locals.el needs a way to construct paths relative to its own location Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 29 May 2021 05:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17949 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Stefan Monnier Cc: Samuel Bronson , 17949@debbugs.gnu.org Received: via spool by 17949-submit@debbugs.gnu.org id=B17949.162226496129709 (code B ref 17949); Sat, 29 May 2021 05:10:02 +0000 Received: (at 17949) by debbugs.gnu.org; 29 May 2021 05:09:21 +0000 Received: from localhost ([127.0.0.1]:55722 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmrDt-0007j7-FM for submit@debbugs.gnu.org; Sat, 29 May 2021 01:09:21 -0400 Received: from quimby.gnus.org ([95.216.78.240]:34938) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmrDq-0007im-SD for 17949@debbugs.gnu.org; Sat, 29 May 2021 01:09:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=MN64S79vE4VAkR74CjtZPWnwNQM1g7YNhW5O8RxtFeY=; b=LRkCc24+rPJCIUBm1xdgJT14Gd hdL+8XpnFC1fwexrqQ1RkaM3TvkgAy/2jYqmodkF7n+NWvvqiASibrciGKYwBGDdHUwDEu+pljI+u An063naJ7DCnTxBYTbzCGAThBlNL0/ntPD1mNg6E42G4shR4WetW4RYH9rHCR7jo1wD4=; Received: from cm-84.212.220.105.getinternet.no ([84.212.220.105] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lmrDh-0001jW-Tf; Sat, 29 May 2021 07:09:12 +0200 From: Lars Ingebrigtsen References: <878uo7pl0x.fsf@naesten.mooo.com> X-Now-Playing: Joni Mitchell's _For The Roses_: "Blonde In The Bleachers" Date: Sat, 29 May 2021 07:09:09 +0200 In-Reply-To: (Stefan Monnier's message of "Tue, 08 Jul 2014 14:17:41 -0400") Message-ID: <874kemt9ca.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Stefan Monnier writes: >> Sometimes, I want to use .dir-locals.el to set a variable to refer to a >> specific file within the tree in question, independantly of how deep in >> that tree the file in question actually is. > > [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 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 (-) Stefan Monnier writes: >> Sometimes, I want to use .dir-locals.el to set a variable to refer to a >> specific file within the tree in question, independantly of how deep in >> that tree the file in question actually is. > > You could use something like: > > (eval (setq-local my-var > (expand-file-name "etc/foo" > (locate-dominating-file > default-directory ".dir-locals.el")))) > >> Perhaps using a form something like: >> ,(expand-file-name "etc/foo.bar" dir-locals-directory) > > Problem is security: the .dir-local.el file might not be under your > control, so we don't want to run arbitrary code. The "eval" option > above of course suffers from the same problem, but at least it's the > official existing way to run arbitrary code, which means it doesn't run > that code silently unless you've previous accepted it as "safe". > > This said, it might indeed be handy to be able to use , like you suggest > (tho it too would need to go though some "security check", of course). , as syntactic sugar here would be nice, but I'm thinking the added complexity here wouldn't be worth it (since we already have the `eval' method here). So I'm closing this bug report. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Sat May 29 01:09:26 2021 Received: (at control) by debbugs.gnu.org; 29 May 2021 05:09:26 +0000 Received: from localhost ([127.0.0.1]:55725 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmrDx-0007jN-Nh for submit@debbugs.gnu.org; Sat, 29 May 2021 01:09:26 -0400 Received: from quimby.gnus.org ([95.216.78.240]:34954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmrDv-0007iw-8o for control@debbugs.gnu.org; Sat, 29 May 2021 01:09:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=f8lLW5LH0ltt4JdtJf1xVYXcjJStBAdXAdiklEfZpSU=; b=h8AJTBeZxGXEQ0OlRPK7pb8NSX J+RtE5JF6CFW4KaZagruvAVv3dFMu4zdLQdwxhSsVs8cJiey5r8CRS8N9zXndgdJ0nZQ/TWF7jT3z Q3qR6bkkQP6zbajndLTpg01oOnGBNQbee0G6tidhjgheaOsks8rOKQmobOMZ48rZycTc=; Received: from cm-84.212.220.105.getinternet.no ([84.212.220.105] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lmrDn-0001jf-Rp for control@debbugs.gnu.org; Sat, 29 May 2021 07:09:17 +0200 Date: Sat, 29 May 2021 07:09:15 +0200 Message-Id: <8735u6t9c4.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #17949 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: tags 17949 wontfix close 17949 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control 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 (-) tags 17949 wontfix close 17949 quit