unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* async-shell-command and prefix argument
@ 2019-01-14 20:49 Marcin Borkowski
  2019-01-15 17:32 ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Marcin Borkowski @ 2019-01-14 20:49 UTC (permalink / raw)
  To: emacs-devel

Hi all,

almost three years ago I wrote a blog post about `async-shell-command'.
I wrote that I'm going to ask this on emacs-devel and (unfortunately)
I seemingly forgot about it.  I was reminded about this last week, so
I'm doing it now.

Basically, the post explains most of my problem:
http://mbork.pl/2016-04-12_Showing_some_of_those_Async_Shell_Command_buffers
and an (extremely hackish) solution.  Since the prefix argument to
`async-shell-command' is pretty useless, I would like it to make the
output window disappear (or appear, whichever is the saner default,
possibly decided by some variable).

Does such an idea make sense?  Should I file a feature request?

Best,

--
Marcin Borkowski
http://mbork.pl



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: async-shell-command and prefix argument
  2019-01-14 20:49 async-shell-command and prefix argument Marcin Borkowski
@ 2019-01-15 17:32 ` Eli Zaretskii
  2019-01-16  8:26   ` Marcin Borkowski
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2019-01-15 17:32 UTC (permalink / raw)
  To: Marcin Borkowski; +Cc: emacs-devel

> From: Marcin Borkowski <mbork@mbork.pl>
> Date: Mon, 14 Jan 2019 21:49:47 +0100
> 
> Basically, the post explains most of my problem:
> http://mbork.pl/2016-04-12_Showing_some_of_those_Async_Shell_Command_buffers
> and an (extremely hackish) solution.  Since the prefix argument to
> `async-shell-command' is pretty useless, I would like it to make the
> output window disappear (or appear, whichever is the saner default,
> possibly decided by some variable).
> 
> Does such an idea make sense?  Should I file a feature request?

Is something wrong with customizing async-shell-command-display-buffer?
I have it set to nil for quite some time.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: async-shell-command and prefix argument
  2019-01-15 17:32 ` Eli Zaretskii
@ 2019-01-16  8:26   ` Marcin Borkowski
  2019-01-19 21:19     ` Juri Linkov
  0 siblings, 1 reply; 10+ messages in thread
From: Marcin Borkowski @ 2019-01-16  8:26 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel


On 2019-01-15, at 18:32, Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Marcin Borkowski <mbork@mbork.pl>
>> Date: Mon, 14 Jan 2019 21:49:47 +0100
>>
>> Basically, the post explains most of my problem:
>> http://mbork.pl/2016-04-12_Showing_some_of_those_Async_Shell_Command_buffers
>> and an (extremely hackish) solution.  Since the prefix argument to
>> `async-shell-command' is pretty useless, I would like it to make the
>> output window disappear (or appear, whichever is the saner default,
>> possibly decided by some variable).
>>
>> Does such an idea make sense?  Should I file a feature request?
>
> Is something wrong with customizing async-shell-command-display-buffer?
> I have it set to nil for quite some time.

Would it help for this use-case?  That is, make the output buffers
disappear (even in the presence of some output), but not if a prefix
argument is used?

Best,

--
Marcin Borkowski
http://mbork.pl



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: async-shell-command and prefix argument
  2019-01-16  8:26   ` Marcin Borkowski
@ 2019-01-19 21:19     ` Juri Linkov
  2019-01-20  3:40       ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Juri Linkov @ 2019-01-19 21:19 UTC (permalink / raw)
  To: Marcin Borkowski; +Cc: Eli Zaretskii, emacs-devel

>>> Basically, the post explains most of my problem:
>>> http://mbork.pl/2016-04-12_Showing_some_of_those_Async_Shell_Command_buffers
>>> and an (extremely hackish) solution.  Since the prefix argument to
>>> `async-shell-command' is pretty useless, I would like it to make the
>>> output window disappear (or appear, whichever is the saner default,
>>> possibly decided by some variable).
>>>
>>> Does such an idea make sense?  Should I file a feature request?
>>
>> Is something wrong with customizing async-shell-command-display-buffer?
>> I have it set to nil for quite some time.
>
> Would it help for this use-case?  That is, make the output buffers
> disappear (even in the presence of some output), but not if a prefix
> argument is used?

Does C-u already mean inserting the output in the current buffer?
Maybe then you could use e.g. M-0 prefix arg?



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: async-shell-command and prefix argument
  2019-01-19 21:19     ` Juri Linkov
@ 2019-01-20  3:40       ` Eli Zaretskii
  2019-01-20  5:10         ` Marcin Borkowski
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2019-01-20  3:40 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

> From: Juri Linkov <juri@linkov.net>
> Date: Sat, 19 Jan 2019 23:19:19 +0200
> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
> 
> >> Is something wrong with customizing async-shell-command-display-buffer?
> >> I have it set to nil for quite some time.
> >
> > Would it help for this use-case?  That is, make the output buffers
> > disappear (even in the presence of some output), but not if a prefix
> > argument is used?
> 
> Does C-u already mean inserting the output in the current buffer?
> Maybe then you could use e.g. M-0 prefix arg?

We already have async-shell-command-display-buffer, which can be
customized to makes the buffer appear only if it has something in it.
Why is that not enough?  Is the case where the user decides up front
she doesn't want to see the buffer, ever, no matter what's in it, an
important enough use case?  And if it is, why a new value of
async-shell-command-display-buffer couldn't cater even to that weird
use case?



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: async-shell-command and prefix argument
  2019-01-20  3:40       ` Eli Zaretskii
@ 2019-01-20  5:10         ` Marcin Borkowski
  2019-01-20 15:39           ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Marcin Borkowski @ 2019-01-20  5:10 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel, Juri Linkov


On 2019-01-20, at 04:40, Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Juri Linkov <juri@linkov.net>
>> Date: Sat, 19 Jan 2019 23:19:19 +0200
>> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
>>
>> >> Is something wrong with customizing async-shell-command-display-buffer?
>> >> I have it set to nil for quite some time.
>> >
>> > Would it help for this use-case?  That is, make the output buffers
>> > disappear (even in the presence of some output), but not if a prefix
>> > argument is used?
>>
>> Does C-u already mean inserting the output in the current buffer?
>> Maybe then you could use e.g. M-0 prefix arg?
>
> We already have async-shell-command-display-buffer, which can be
> customized to makes the buffer appear only if it has something in it.
> Why is that not enough?  Is the case where the user decides up front
> she doesn't want to see the buffer, ever, no matter what's in it, an
> important enough use case?  And if it is, why a new value of
> async-shell-command-display-buffer couldn't cater even to that weird
> use case?

Well, if `async-shell-command-display-buffer' were extended to allow
that, it would obviously be enough.

I'm astonished, however, that you consider this a `weird use-case'.
I didn't even bother to explain it, since it seems so natural for me.

Basically, I would consider it like functions.  Many commands run
through M-! or M-& are like "pure functions" - you are basically
interested in their output.  Think `ls' or `git status' or `date'.
(These are not great examples, since Emacs has superior replacements for
them, but take `vagrant global-status' for instance.)

OTOH, some external commands are there only for their side effects -
think `rm' or `aunpack or `xdg-open'.  (Notice that the last two often
/have/ output, only that you may be not interested in seeing it.)

Now, M-& can be easily configured to fit one or the other, but not
both.

Does it make sense?

--
Marcin Borkowski
http://mbork.pl



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: async-shell-command and prefix argument
  2019-01-20  5:10         ` Marcin Borkowski
@ 2019-01-20 15:39           ` Eli Zaretskii
  2019-01-20 20:26             ` Marcin Borkowski
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2019-01-20 15:39 UTC (permalink / raw)
  To: Marcin Borkowski; +Cc: emacs-devel, juri

> From: Marcin Borkowski <mbork@mbork.pl>
> Cc: Juri Linkov <juri@linkov.net>, emacs-devel@gnu.org
> Date: Sun, 20 Jan 2019 06:10:38 +0100
> 
> I'm astonished, however, that you consider this a `weird use-case'.

It is weird because you, in effect, give up any diagnostic output from
the command, such as warnings or errors, up front.  Since no one can
reliably predict such diagnostics, I wonder how do you even know that
those commands did what you intended them to do.  It's like flying
blind while also turning off all the instruments.

> OTOH, some external commands are there only for their side effects -
> think `rm' or `aunpack or `xdg-open'.  (Notice that the last two often
> /have/ output, only that you may be not interested in seeing it.)

Commands invoked "for side effects" will not produce any output, so
setting async-shell-command-display-buffer to nil will do exactly what
(I think) you want: display nothing if there's no output, and display
the diagnostics otherwise.

OTOH, if such a command does display something, it means the author of
the command thought it was important enough to show that, even though
the command is "for side effects".

> Does it make sense?

Not really, sorry.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: async-shell-command and prefix argument
  2019-01-20 15:39           ` Eli Zaretskii
@ 2019-01-20 20:26             ` Marcin Borkowski
  2019-01-21 15:54               ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Marcin Borkowski @ 2019-01-20 20:26 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel, juri


On 2019-01-20, at 16:39, Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Marcin Borkowski <mbork@mbork.pl>
>> Cc: Juri Linkov <juri@linkov.net>, emacs-devel@gnu.org
>> Date: Sun, 20 Jan 2019 06:10:38 +0100
>>
>> I'm astonished, however, that you consider this a `weird use-case'.
>
> It is weird because you, in effect, give up any diagnostic output from
> the command, such as warnings or errors, up front.  Since no one can
> reliably predict such diagnostics, I wonder how do you even know that
> those commands did what you intended them to do.  It's like flying
> blind while also turning off all the instruments.
>
>> OTOH, some external commands are there only for their side effects -
>> think `rm' or `aunpack or `xdg-open'.  (Notice that the last two often
>> /have/ output, only that you may be not interested in seeing it.)
>
> Commands invoked "for side effects" will not produce any output, so
> setting async-shell-command-display-buffer to nil will do exactly what
> (I think) you want: display nothing if there's no output, and display
> the diagnostics otherwise.
>
> OTOH, if such a command does display something, it means the author of
> the command thought it was important enough to show that, even though
> the command is "for side effects".

Well, you are right - in theory.  Practice is different.

Here are some examples.

1. Opening a png file in Gimp with xdg-open

--8<---------------cut here---------------start------------->8---
$ xdg-open redacted.png

(gimp-2.10:29264): Gtk-WARNING **: 21:13:40.274: Unable to locate theme engine in module_path: "adwaita",

(gimp-2.10:29264): Gtk-WARNING **: 21:13:40.277: Unable to locate theme engine in module_path: "adwaita",

(file-png:29282): Gtk-WARNING **: 21:13:42.558: Unable to locate theme engine in module_path: "adwaita",

(file-png:29282): Gtk-WARNING **: 21:13:42.562: Unable to locate theme engine in module_path: "adwaita",
--8<---------------cut here---------------end--------------->8---

I know it worked because I can see a Gimp window/frame open.

2. Running (pdf)latex on a known and tested file (so no need for
diagnostics), only to produce the pdf.

I know it worked because I can see (and view) the pdf.  (Besides, I know
the file compiles correctly anyway, I just happened to delete the pdf
and I want to recreate it.)

3. Unpacking an archive with (more or less) known contents.

--8<---------------cut here---------------start------------->8---
$ aunpack zzz.zip
Archive:  zzz.zip
 extracting: Unpack-6002/aaa
 extracting: Unpack-6002/bbb
 extracting: Unpack-6002/ccc
zzz.zip: extracted to `zzz' (multiple files in root)
--8<---------------cut here---------------end--------------->8---

I know it worked because I press `g' in Dired and I can see the results
of the unpacking.

4. Viewing a pdf without the synctex file in evince.

--8<---------------cut here---------------start------------->8---
$ evince mgr.pdf
! SyncTeX Error : No file?
--8<---------------cut here---------------end--------------->8---

>> Does it make sense?
>
> Not really, sorry.

Is it better now?

It is all about flexibility.  The author may have thought that the
output is important.  As a user, knowing my situation, I know that it is
not important /for me/.  (And I take the risk of a possible but unlikely
situation of something going wrong and me not noticing, like having
a full disk.)  I could say ">/dev/null 2>&1" to achieve what I want.
It's just that C-u is much more convenient.

Best,

--
Marcin Borkowski
http://mbork.pl



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: async-shell-command and prefix argument
  2019-01-20 20:26             ` Marcin Borkowski
@ 2019-01-21 15:54               ` Eli Zaretskii
  2019-01-24 17:32                 ` Marcin Borkowski
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2019-01-21 15:54 UTC (permalink / raw)
  To: Marcin Borkowski; +Cc: emacs-devel, juri

> From: Marcin Borkowski <mbork@mbork.pl>
> Cc: juri@linkov.net, emacs-devel@gnu.org
> Date: Sun, 20 Jan 2019 21:26:41 +0100
> 
> > OTOH, if such a command does display something, it means the author of
> > the command thought it was important enough to show that, even though
> > the command is "for side effects".
> 
> Well, you are right - in theory.  Practice is different.
> 
> Here are some examples.
> 
> 1. Opening a png file in Gimp with xdg-open
> 
> --8<---------------cut here---------------start------------->8---
> $ xdg-open redacted.png
> 
> (gimp-2.10:29264): Gtk-WARNING **: 21:13:40.274: Unable to locate theme engine 
> in module_path: "adwaita",

Can be easily fixed, see below.

> I know it worked because I can see a Gimp window/frame open.
> 
> 2. Running (pdf)latex on a known and tested file (so no need for
> diagnostics), only to produce the pdf.
> 
> I know it worked because I can see (and view) the pdf.  (Besides, I know
> the file compiles correctly anyway, I just happened to delete the pdf
> and I want to recreate it.)
> 
> 3. Unpacking an archive with (more or less) known contents.
> 
> --8<---------------cut here---------------start------------->8---
> $ aunpack zzz.zip
> Archive:  zzz.zip
>  extracting: Unpack-6002/aaa
>  extracting: Unpack-6002/bbb
>  extracting: Unpack-6002/ccc
> zzz.zip: extracted to `zzz' (multiple files in root)
> --8<---------------cut here---------------end--------------->8---
> 
> I know it worked because I press `g' in Dired and I can see the results
> of the unpacking.

I very much doubt that you could easily spot problems just by looking
at the list of files which wound up in Dired.  E.g., what if some file
failed to extract, due to a bug in aunpack, and the list of extracted
files is very long?

> 4. Viewing a pdf without the synctex file in evince.
> 
> --8<---------------cut here---------------start------------->8---
> $ evince mgr.pdf
> ! SyncTeX Error : No file?
> --8<---------------cut here---------------end--------------->8---
> 
> >> Does it make sense?
> >
> > Not really, sorry.
> 
> Is it better now?

This exchange is in response to your surprise that I consider this use
case weird.  The examples you gave don't really change anything.  They
show that you are willing to give up on seeing diagnostic messages
because you think you know in advance what they will tell you in each
and every case.  That is a strange assumption; IME it is invalidated
by your potential, if rare, typing mistakes; system updates that
replace programs and libraries with new versions that have exciting
new bugs; and by other similarly unexpected calamities.  It is strange
to hear from a veteran Emacs user that he chooses to ignore
diagnostics, rather than pay attention to them and attempt to solve
the underlying reasons.  For example, according to
https://askubuntu.com/questions/774664/gtk-warning-unable-to-locate-theme-engine-in-module-path-adwaita-error-o,
you can fix the first of the above problems by installing one,
possibly two, packages.

I hope you don't ignore Emacs problems in the same way.

> It is all about flexibility.  The author may have thought that the
> output is important.  As a user, knowing my situation, I know that it is
> not important /for me/.  (And I take the risk of a possible but unlikely
> situation of something going wrong and me not noticing, like having
> a full disk.)  I could say ">/dev/null 2>&1" to achieve what I want.

Or make a shell script that redirects stdout/stderr, and use that
thereafter.

> It's just that C-u is much more convenient.

C-u is already taken.  At best, you will have to do something like
"C-u 0" or "M-0" instead.  I doubt that's really better than
redirecting to /dev/null, and once again, I'm surprised that someone
would want to discard that output in the first place.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: async-shell-command and prefix argument
  2019-01-21 15:54               ` Eli Zaretskii
@ 2019-01-24 17:32                 ` Marcin Borkowski
  0 siblings, 0 replies; 10+ messages in thread
From: Marcin Borkowski @ 2019-01-24 17:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel, juri


On 2019-01-21, at 16:54, Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Marcin Borkowski <mbork@mbork.pl>
>> Cc: juri@linkov.net, emacs-devel@gnu.org
>> Date: Sun, 20 Jan 2019 21:26:41 +0100
>>
>> > OTOH, if such a command does display something, it means the author of
>> > the command thought it was important enough to show that, even though
>> > the command is "for side effects".
>>
>> Well, you are right - in theory.  Practice is different.
>>
>> Here are some examples.
>>
>> 1. Opening a png file in Gimp with xdg-open
>>
>> --8<---------------cut here---------------start------------->8---
>> $ xdg-open redacted.png
>>
>> (gimp-2.10:29264): Gtk-WARNING **: 21:13:40.274: Unable to locate theme engine
>> in module_path: "adwaita",
>
> Can be easily fixed, see below.

Agreed, I fixed that on my machine.

>
>> I know it worked because I can see a Gimp window/frame open.
>>
>> 2. Running (pdf)latex on a known and tested file (so no need for
>> diagnostics), only to produce the pdf.
>>
>> I know it worked because I can see (and view) the pdf.  (Besides, I know
>> the file compiles correctly anyway, I just happened to delete the pdf
>> and I want to recreate it.)
>>
>> 3. Unpacking an archive with (more or less) known contents.
>>
>> --8<---------------cut here---------------start------------->8---
>> $ aunpack zzz.zip
>> Archive:  zzz.zip
>>  extracting: Unpack-6002/aaa
>>  extracting: Unpack-6002/bbb
>>  extracting: Unpack-6002/ccc
>> zzz.zip: extracted to `zzz' (multiple files in root)
>> --8<---------------cut here---------------end--------------->8---
>>
>> I know it worked because I press `g' in Dired and I can see the results
>> of the unpacking.
>
> I very much doubt that you could easily spot problems just by looking
> at the list of files which wound up in Dired.  E.g., what if some file
> failed to extract, due to a bug in aunpack, and the list of extracted
> files is very long?

In such a case I would probably miss that piece of information anyway.

>> 4. Viewing a pdf without the synctex file in evince.
>>
>> --8<---------------cut here---------------start------------->8---
>> $ evince mgr.pdf
>> ! SyncTeX Error : No file?
>> --8<---------------cut here---------------end--------------->8---
>>
>> >> Does it make sense?
>> >
>> > Not really, sorry.
>>
>> Is it better now?
>
> This exchange is in response to your surprise that I consider this use
> case weird.  The examples you gave don't really change anything.  They
> show that you are willing to give up on seeing diagnostic messages
> because you think you know in advance what they will tell you in each
> and every case.  That is a strange assumption; IME it is invalidated
> by your potential, if rare, typing mistakes; system updates that
> replace programs and libraries with new versions that have exciting
> new bugs; and by other similarly unexpected calamities.  It is strange
> to hear from a veteran Emacs user that he chooses to ignore
> diagnostics, rather than pay attention to them and attempt to solve
> the underlying reasons.  For example, according to
> https://askubuntu.com/questions/774664/gtk-warning-unable-to-locate-theme-engine-in-module-path-adwaita-error-o,
> you can fix the first of the above problems by installing one,
> possibly two, packages.

Well, let us agree to disagree here (at least partially).  I sometimes
do ignore diagnostics, and I sometimes have good reasons.  (Like
underfull boxes in LaTeX, recently some warnings due to a buggy JS
library used in a project I'm working on, etc.)  Sometimes fixing is
indeed a better idea (like with the gtk problem above).

I think the main problem here is that windows popping up here and there
annoy me *a lot*, especially if the information they give is useless in
99.99% cases (and possibly 100%).  Also, if some system works even only
99% of the time, humans usually quickly train themselves to ignore any
diagnostics.

And thanks for calling me a "veteran Emacs user".  I'm not sure
I deserve such a label - I've been only using Emacs for a bit less than
20 years;-).

> I hope you don't ignore Emacs problems in the same way.

I will shock you, but yes.  I routinely ignore any compilation warnings
when I compile a new Emacs from source;-).  For other problems, it may
depend on the kind of problem.  I often mistype some command, and
sometimes I do bother to press C-h l to see what I did and sometimes
not.  (A lot depends on what mode I was in when the mistyping occured -
in some modes it might be catastrophic.)  Sometimes when something stops
working I simply restart Emacs (this happens especially with things like
timers) - my feeling is that it might be some extremely obscure bug or
(more problably) me doing something stupid (like killing some buffer
some code depends on).  Probably not worth investigating due to time
constraints.

>> It is all about flexibility.  The author may have thought that the
>> output is important.  As a user, knowing my situation, I know that it is
>> not important /for me/.  (And I take the risk of a possible but unlikely
>> situation of something going wrong and me not noticing, like having
>> a full disk.)  I could say ">/dev/null 2>&1" to achieve what I want.
>
> Or make a shell script that redirects stdout/stderr, and use that
> thereafter.

Precisely.  It is the old way, isn't it?  If the user wants to shoot
themselves in the foot, why not let them?  This is how Unix works, this
is how C works, this is how (La)TeX works, this is how Lisp works.
I see no reason to move to the shackles of Javaland (been there once,
for an excursion - a simple Android app - and I'm not going there
again).

>> It's just that C-u is much more convenient.
>
> C-u is already taken.  At best, you will have to do something like
> "C-u 0" or "M-0" instead.  I doubt that's really better than
> redirecting to /dev/null, and once again, I'm surprised that someone
> would want to discard that output in the first place.

Well, C-u is taken, but what it does is useless.

Anyway, I think we should close this discussion.  Neither of us will
convince the other one (probably), I'm not sure more will be said, so
I learned what I learned from you in this thread and I don't expect
more (but thanks for that!), and I modified my Emacs to do what I want
anyway (though in a very hackish way).

Best,

--
Marcin Borkowski
http://mbork.pl



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-01-24 17:32 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-14 20:49 async-shell-command and prefix argument Marcin Borkowski
2019-01-15 17:32 ` Eli Zaretskii
2019-01-16  8:26   ` Marcin Borkowski
2019-01-19 21:19     ` Juri Linkov
2019-01-20  3:40       ` Eli Zaretskii
2019-01-20  5:10         ` Marcin Borkowski
2019-01-20 15:39           ` Eli Zaretskii
2019-01-20 20:26             ` Marcin Borkowski
2019-01-21 15:54               ` Eli Zaretskii
2019-01-24 17:32                 ` Marcin Borkowski

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).