From: joaotavora@gmail.com (João Távora)
To: Noam Postavsky <npostavs@users.sourceforge.net>
Cc: Lele Gaifax <lele@metapensiero.it>,
Emacs developers <emacs-devel@gnu.org>,
Mark Oteiza <mvoteiza@udel.edu>,
Stefan Monnier <monnier@iro.umontreal.ca>,
Eli Zaretskii <eliz@gnu.org>, Leo Liu <sdl.web@gmail.com>
Subject: Re: New Flymake rewrite in emacs-26
Date: Wed, 11 Oct 2017 13:25:22 +0100 [thread overview]
Message-ID: <87tvz57txp.fsf@gmail.com> (raw)
In-Reply-To: <CAM-tV-9=jitoms93eMjhXYRmUyv=4+zytpYpA9fuGZVYEiYk7A@mail.gmail.com> (Noam Postavsky's message of "Wed, 11 Oct 2017 08:16:43 -0400")
Noam Postavsky <npostavs@users.sourceforge.net> writes:
>>> Another possibility is to put an echoing command in front and exploit
>>> the shell's parsing directly, e.g.,
>>>
>>> printf '%s\0' gcc -c -Demacs -I. -I. -I../lib -I../ ...
I tried with Emacs itself, as you suggested. It works, and may be a
start, but:
* is very slow (only needs to run once though)
* no idea if it works for windows (it should if shell-command DTRT)
* generally looks brittle. Among other things it takes advantage of an
undocumented "--" command-line arg.
(defun flymake--gcc-heroic-unescape (string)
(with-temp-buffer
(let ((error-buffer (current-buffer)))
(with-temp-buffer
(cond
((zerop
(shell-command
(format
"%s -Q --batch --eval \"%s\" -- %s"
(expand-file-name invocation-name
invocation-directory)
"(mapc 'print (nthcdr 4 command-line-args))"
string)
(current-buffer)
error-buffer))
(goto-char (point-min))
(cl-loop with eof = (make-symbol "eof")
for form =
(condition-case err
(read (current-buffer))
(error eof))
while (not (eq form eof))
collect form))
(t
(with-current-buffer error-buffer
(error (buffer-string)))))))))
(flymake--gcc-heroic-unescape "bla\\ bla") ; ("bla bla")
(flymake-gcc-heroic-unescape "bla bla") ;("bla" "bla")
next prev parent reply other threads:[~2017-10-11 12:25 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-03 14:05 New Flymake rewrite in emacs-26 João Távora
2017-10-03 15:00 ` Eli Zaretskii
2017-10-04 11:58 ` Lele Gaifax
2017-10-04 13:41 ` Lele Gaifax
2017-10-04 16:08 ` João Távora
2017-10-04 16:42 ` Lele Gaifax
2017-10-04 18:11 ` Lele Gaifax
2017-10-05 2:21 ` João Távora
2017-10-05 11:42 ` Lele Gaifax
2017-10-05 23:32 ` Noam Postavsky
2017-10-06 13:16 ` João Távora
2017-10-06 13:24 ` Noam Postavsky
2017-10-06 15:48 ` João Távora
2017-10-07 7:37 ` Lele Gaifax
2017-10-07 16:08 ` João Távora
2017-10-10 12:25 ` João Távora
2017-10-10 14:18 ` Eli Zaretskii
2017-10-10 15:09 ` João Távora
2017-10-10 15:53 ` Eli Zaretskii
2017-10-10 16:25 ` João Távora
2017-10-10 16:40 ` Eli Zaretskii
2017-10-10 17:03 ` João Távora
2017-10-10 17:20 ` Noam Postavsky
2017-10-11 0:07 ` João Távora
2017-10-11 0:59 ` Noam Postavsky
2017-10-11 10:39 ` Eli Zaretskii
2017-10-11 12:16 ` Noam Postavsky
2017-10-11 12:25 ` João Távora [this message]
2017-10-11 10:24 ` Eli Zaretskii
2017-10-11 12:01 ` João Távora
2017-10-11 12:13 ` Eli Zaretskii
2017-10-11 13:41 ` João Távora
2017-10-11 17:49 ` Romanos Skiadas
2017-10-11 18:39 ` guillaume papin
2017-10-12 13:17 ` João Távora
2017-10-11 20:25 ` Stefan Monnier
2017-10-12 13:10 ` João Távora
2017-10-12 13:43 ` Stefan Monnier
2017-10-12 13:56 ` João Távora
2017-10-11 13:11 ` Mark Oteiza
2017-10-10 17:23 ` Eli Zaretskii
2017-10-11 11:11 ` Lele Gaifax
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tvz57txp.fsf@gmail.com \
--to=joaotavora@gmail.com \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=lele@metapensiero.it \
--cc=monnier@iro.umontreal.ca \
--cc=mvoteiza@udel.edu \
--cc=npostavs@users.sourceforge.net \
--cc=sdl.web@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.