* RE: Addition of SES local printer functions.
@ 2014-01-02 21:11 Vincent Belaïche
2014-01-02 21:36 ` Óscar Fuentes
2014-01-03 0:20 ` Glenn Morris
0 siblings, 2 replies; 22+ messages in thread
From: Vincent Belaïche @ 2014-01-02 21:11 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Stefan Monnier, emacs-devel
Ok! My commit has gone through! Thank you Eli and all.
Note that I had to run `bzr resolve --take-other' twice, once with the
info directory and once without it.
FYI, I had also to place my change not in last position in the
doc/misc/ChangeLog file otherwise dates would have been out of sequence
--- probably this is an effect of the time difference. Here in France it
is still the 2nd of January, while in some other place it is already the
3rd.
Happy new year 2014!
Vincent.
> Date: Thu, 2 Jan 2014 23:01:43 +0200
> From: eliz@gnu.org
> Subject: Re: Addition of SES local printer functions.
> To: vincent.b.1@hotmail.fr
> CC: monnier@iro.umontreal.ca; emacs-devel@gnu.org
>
> > From: Vincent Belaïche <vincent.b.1@hotmail.fr>
> > Date: Thu, 02 Jan 2014 21:23:55 +0100
> > Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel@gnu.org
> >
> > conflicts:
> > Conflict: can't delete info because it is not empty. Not deleting.
>
> That's because the info directory was deleted from the repository.
> Remove all of its contents by shell commands, then type this:
>
> bzr resolve --take-other
>
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Addition of SES local printer functions.
2014-01-02 21:11 Addition of SES local printer functions Vincent Belaïche
@ 2014-01-02 21:36 ` Óscar Fuentes
2014-01-03 0:20 ` Glenn Morris
1 sibling, 0 replies; 22+ messages in thread
From: Óscar Fuentes @ 2014-01-02 21:36 UTC (permalink / raw)
To: Vincent Belaïche; +Cc: Stefan Monnier, emacs-devel
Vincent Belaïche <vincent.b.1@hotmail.fr> writes:
> Ok! My commit has gone through! Thank you Eli and all.
As a SES user, this change while on feature-freeze makes me feel a bit
nervous.
Vincent: what Glenn was talking about is that, at this moment, any
change that is not a bug-fix or documentation improvement needs
permission from the project maintainer (i.e. Stefan).
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Addition of SES local printer functions.
2014-01-02 21:11 Addition of SES local printer functions Vincent Belaïche
2014-01-02 21:36 ` Óscar Fuentes
@ 2014-01-03 0:20 ` Glenn Morris
1 sibling, 0 replies; 22+ messages in thread
From: Glenn Morris @ 2014-01-03 0:20 UTC (permalink / raw)
To: Vincent Belaïche; +Cc: Eli Zaretskii, Stefan Monnier, emacs-devel
Vincent Belaïche wrote:
> FYI, I had also to place my change not in last position in the
> doc/misc/ChangeLog file otherwise dates would have been out of sequence
> --- probably this is an effect of the time difference. Here in France it
> is still the 2nd of January, while in some other place it is already the
> 3rd.
ChangeLog dates are supposed to be in UTC; the setting of
add-log-time-zone-rule in Emacs's dir-locals file should ensure this.
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: Addition of SES local printer functions.
@ 2014-01-03 12:44 Vincent Belaïche
2014-01-03 13:55 ` Eli Zaretskii
0 siblings, 1 reply; 22+ messages in thread
From: Vincent Belaïche @ 2014-01-03 12:44 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
Shouldn't that be in that order:
bzr merge -r 115841..115840
bzr ci -m "Reverted revision 115841."
bzr merge -r 115838..115837
bzr ci -m "Reverted revision 115838."
i.e revert first 115841 and second 115838 ?
Vincent.
> Date: Fri, 3 Jan 2014 12:34:24 +0200
> From: eliz@gnu.org
> Subject: Re: Addition of SES local printer functions.
> To: vincent.b.1@hotmail.fr
> CC: emacs-devel@gnu.org
>
> > From: Vincent Belaïche <vincent.b.1@hotmail.fr>
> > CC: emacs-devel <emacs-devel@gnu.org>
> > Date: Fri, 3 Jan 2014 10:40:35 +0100
> >
> > I did bzr merge -r 115841..115824 .
>
> I said to use "-r N..N-1", so you should have done this instead:
>
> bzr merge -r 115841..115840 .
>
> > So there seemed to be far more files implied than the 4 which I have modified. For that reason I did not do the commit. Should I ?
>
> No, of course not. Instead, revert to the previous state:
>
> bzr revert
>
> then invoke the correct merge command as shown above.
>
> > Maybe the reason is that I did two commits in a row to apply the change.
>
> Then revert them one by one. Like this:
>
> bzr merge -r 115838..115837
> bzr ci -m "Reverted revision 115838."
> bzr merge -r 115841..115840
> bzr ci -m "Reverted revision 115841."
>
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Addition of SES local printer functions.
2014-01-03 12:44 Vincent Belaïche
@ 2014-01-03 13:55 ` Eli Zaretskii
2014-01-03 14:24 ` Vincent Belaïche
0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2014-01-03 13:55 UTC (permalink / raw)
To: Vincent Belaïche; +Cc: emacs-devel
> From: Vincent Belaïche <vincent.b.1@hotmail.fr>
> Cc: emacs-devel@gnu.org
> Date: Fri, 03 Jan 2014 13:44:50 +0100
>
>
> Shouldn't that be in that order:
>
> bzr merge -r 115841..115840
> bzr ci -m "Reverted revision 115841."
>
> bzr merge -r 115838..115837
> bzr ci -m "Reverted revision 115838."
>
>
> i.e revert first 115841 and second 115838 ?
No, it shouldn't matter. You can do it in your order, if you want.
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: Addition of SES local printer functions.
2014-01-03 13:55 ` Eli Zaretskii
@ 2014-01-03 14:24 ` Vincent Belaïche
0 siblings, 0 replies; 22+ messages in thread
From: Vincent Belaïche @ 2014-01-03 14:24 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
Done.
I will monitor the info list, and apply the change when EMACS quits feature freeze status.
Vincent.
----------------------------------------
> Date: Fri, 3 Jan 2014 15:55:57 +0200
> From: eliz@gnu.org
> Subject: Re: Addition of SES local printer functions.
> To: vincent.b.1@hotmail.fr
> CC: emacs-devel@gnu.org
>
>> From: Vincent Belaïche <vincent.b.1@hotmail.fr>
>> Cc: emacs-devel@gnu.org
>> Date: Fri, 03 Jan 2014 13:44:50 +0100
>>
>>
>> Shouldn't that be in that order:
>>
>> bzr merge -r 115841..115840
>> bzr ci -m "Reverted revision 115841."
>>
>> bzr merge -r 115838..115837
>> bzr ci -m "Reverted revision 115838."
>>
>>
>> i.e revert first 115841 and second 115838 ?
>
> No, it shouldn't matter. You can do it in your order, if you want.
>
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: Addition of SES local printer functions.
@ 2014-01-02 23:08 Vincent Belaïche
2014-01-03 0:27 ` Glenn Morris
2014-01-03 7:56 ` Eli Zaretskii
0 siblings, 2 replies; 22+ messages in thread
From: Vincent Belaïche @ 2014-01-02 23:08 UTC (permalink / raw)
To: ofv, Stefan Monnier, Glenn Morris; +Cc: emacs-devel
Hello,
Please explain me how to "uncommit" the change, and I can undo it, so
that the local printers function is introduced later on.
Well, my conclusion is that, as I am not so frequent a contributor, and
not following closely the emacs-devel list, I should systematically ask
for the feature-freeze status before doing any function addition. My
fault... sorry for the annoying.
Anyhow, to Oscar, please feel free to try it on your favorites sheets,
if you are a frequent SES user, hopefully that won't make you even more
nervous :-/
Vincent.
----------------------------------------
> From: ofv@wanadoo.es
> To: vincent.b.1@hotmail.fr
> Subject: Re: Addition of SES local printer functions.
> Date: Thu, 2 Jan 2014 22:36:28 +0100
> CC: monnier@iro.umontreal.ca; emacs-devel@gnu.org
>
> Vincent Belaïche <vincent.b.1@hotmail.fr> writes:
>
> > Ok! My commit has gone through! Thank you Eli and all.
>
> As a SES user, this change while on feature-freeze makes me feel a bit
> nervous.
>
> Vincent: what Glenn was talking about is that, at this moment, any
> change that is not a bug-fix or documentation improvement needs
> permission from the project maintainer (i.e. Stefan).
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Addition of SES local printer functions.
2014-01-02 23:08 Vincent Belaïche
@ 2014-01-03 0:27 ` Glenn Morris
2014-01-03 2:45 ` Stefan Monnier
2014-01-03 7:56 ` Eli Zaretskii
1 sibling, 1 reply; 22+ messages in thread
From: Glenn Morris @ 2014-01-03 0:27 UTC (permalink / raw)
To: Vincent Belaïche; +Cc: ofv, Stefan Monnier, emacs-devel
Vincent Belaïche wrote:
> Please explain me how to "uncommit" the change, and I can undo it, so
> that the local printers function is introduced later on.
Don't do a literal "uncommit", just commit a reverse patch.
> Well, my conclusion is that, as I am not so frequent a contributor, and
> not following closely the emacs-devel list, I should systematically ask
> for the feature-freeze status before doing any function addition.
It is something of a problem. I've wondered in the past if there needs
to be a separate emacs-devel-announce list (I don't like this idea), or
a convention for using a Mailman topic for emacs-devel announcements
that developers need to pay attention to, to make them stand out from
the noise.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Addition of SES local printer functions.
2014-01-03 0:27 ` Glenn Morris
@ 2014-01-03 2:45 ` Stefan Monnier
2014-01-03 3:18 ` Glenn Morris
0 siblings, 1 reply; 22+ messages in thread
From: Stefan Monnier @ 2014-01-03 2:45 UTC (permalink / raw)
To: Glenn Morris; +Cc: ofv, Vincent Belaïche, emacs-devel
> It is something of a problem. I've wondered in the past if there needs
> to be a separate emacs-devel-announce list (I don't like this idea), or
> a convention for using a Mailman topic for emacs-devel announcements
> that developers need to pay attention to, to make them stand out from
> the noise.
Technically, the solution is simple: reduce the time between "freeze" and
"branch" to 0. It used to be very long (like 6 months) and has been
reduced to a month for 24.3 (and I plan to do that again for 24.4), but
it can be reduced further.
Still, it is important to get people to focus on fixing bugs every once
in a while, which is really what the feature freeze is about.
Stefan
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Addition of SES local printer functions.
2014-01-03 2:45 ` Stefan Monnier
@ 2014-01-03 3:18 ` Glenn Morris
2014-01-03 5:14 ` Stefan Monnier
0 siblings, 1 reply; 22+ messages in thread
From: Glenn Morris @ 2014-01-03 3:18 UTC (permalink / raw)
To: Stefan Monnier; +Cc: ofv, Vincent Belaïche, emacs-devel
Stefan Monnier wrote:
>> It is something of a problem. I've wondered in the past if there needs
>> to be a separate emacs-devel-announce list (I don't like this idea), or
>> a convention for using a Mailman topic for emacs-devel announcements
>> that developers need to pay attention to, to make them stand out from
>> the noise.
>
> Technically, the solution is simple: reduce the time between "freeze"
> and "branch" to 0.
That might solve the problem for this particular case, but IMO there are
other times when there are messages that all Emacs developers should
read. But they certainly don't need to read every message on
emacs-devel. So there is no way to reliably communicate those messages
at present.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Addition of SES local printer functions.
2014-01-03 3:18 ` Glenn Morris
@ 2014-01-03 5:14 ` Stefan Monnier
2014-01-03 20:31 ` Glenn Morris
0 siblings, 1 reply; 22+ messages in thread
From: Stefan Monnier @ 2014-01-03 5:14 UTC (permalink / raw)
To: Glenn Morris; +Cc: ofv, Vincent Belaïche, emacs-devel
>>> It is something of a problem. I've wondered in the past if there needs
>>> to be a separate emacs-devel-announce list (I don't like this idea), or
>>> a convention for using a Mailman topic for emacs-devel announcements
>>> that developers need to pay attention to, to make them stand out from
>>> the noise.
>> Technically, the solution is simple: reduce the time between "freeze"
>> and "branch" to 0.
> That might solve the problem for this particular case, but IMO there are
> other times when there are messages that all Emacs developers should
> read. But they certainly don't need to read every message on
> emacs-devel. So there is no way to reliably communicate those messages
> at present.
Agreed. Maybe we need a way to send a message to all the members of the
Savannah "emacs" group.
Stefan
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Addition of SES local printer functions.
2014-01-03 5:14 ` Stefan Monnier
@ 2014-01-03 20:31 ` Glenn Morris
0 siblings, 0 replies; 22+ messages in thread
From: Glenn Morris @ 2014-01-03 20:31 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
Stefan Monnier wrote:
> Agreed. Maybe we need a way to send a message to all the members of the
> Savannah "emacs" group.
That's an interesting idea, if you mean sending a message via Savannah
itself. But Someone (TM) would have to add a new Savannah feature, one
which I don't think would be used very often. (If I were a Savannah
admin I'd just respond: keep a list of all your developers' emails.)
Using Mailman topics is the least bad solution I can think of. Define an
"announce" topic for emacs-devel, require all developers to subscribe to
at least that topic. Then you have to remember to add "Keywords:
announce" to the relevant messages. Remembering would be the tricky bit,
but we could always resend the messages if we forgot the first time.
Maybe the low-tech solution of just keeping a list of all developer
emails is the best in practice. :(
Using info-gnu-emacs is my least favourite solution.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Addition of SES local printer functions.
2014-01-02 23:08 Vincent Belaïche
2014-01-03 0:27 ` Glenn Morris
@ 2014-01-03 7:56 ` Eli Zaretskii
2014-01-03 9:40 ` Vincent Belaïche
1 sibling, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2014-01-03 7:56 UTC (permalink / raw)
To: Vincent Belaïche; +Cc: emacs-devel
> From: Vincent Belaïche <vincent.b.1@hotmail.fr>
> Date: Fri, 03 Jan 2014 00:08:38 +0100
> Cc: emacs-devel@gnu.org
>
> Please explain me how to "uncommit" the change, and I can undo it, so
> that the local printers function is introduced later on.
Like this:
bzr merge -r N..N-1 .
bzr commit -m "Reverted SES changes for local printer functions."
where N is the revision number you committed, N-1 is the revision
number before that. Note all the dots in the first command: they are
important.
(You may wish to save your changes in some place, before doing the
above.)
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: Addition of SES local printer functions.
2014-01-03 7:56 ` Eli Zaretskii
@ 2014-01-03 9:40 ` Vincent Belaïche
2014-01-03 10:34 ` Eli Zaretskii
0 siblings, 1 reply; 22+ messages in thread
From: Vincent Belaïche @ 2014-01-03 9:40 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
Hello Eli,
I did bzr merge -r 115841..115824 ., but then it has output this:
M admin/ChangeLog
M admin/admin.el
M admin/check-doc-strings
M admin/unidata/unidata-gen.el
M config.bat
M configure.ac
M doc/emacs/emacs-xtra.texi
M doc/emacs/emacs.texi
M doc/emacs/maintaining.texi
M doc/emacs/text.texi
M doc/lispintro/emacs-lisp-intro.texi
M doc/lispref/ChangeLog
M doc/lispref/display.texi
M doc/lispref/elisp.texi
M doc/lispref/nonascii.texi
M doc/lispref/numbers.texi
M doc/lispref/tips.texi
M doc/man/ebrowse.1
M doc/man/emacs.1
M doc/man/etags.1
M doc/man/grep-changelog.1
M doc/misc/ChangeLog
M doc/misc/Makefile.in
M doc/misc/ada-mode.texi
M doc/misc/auth.texi
M doc/misc/autotype.texi
M doc/misc/bovine.texi
M doc/misc/calc.texi
M doc/misc/cc-mode.texi
M doc/misc/cl.texi
M doc/misc/dbus.texi
M doc/misc/dired-x.texi
M doc/misc/ebrowse.texi
M doc/misc/ede.texi
M doc/misc/ediff.texi
M doc/misc/edt.texi
M doc/misc/efaq.texi
M doc/misc/eieio.texi
M doc/misc/emacs-gnutls.texi
M doc/misc/emacs-mime.texi
M doc/misc/epa.texi
M doc/misc/erc.texi
M doc/misc/ert.texi
M doc/misc/eshell.texi
M doc/misc/eudc.texi
M doc/misc/flymake.texi
M doc/misc/forms.texi
M doc/misc/gnus-coding.texi
M doc/misc/gnus-news.el
M doc/misc/gnus.texi
M doc/misc/idlwave.texi
M doc/misc/ido.texi
M doc/misc/info.texi
M doc/misc/mairix-el.texi
M doc/misc/message.texi
M doc/misc/mh-e.texi
M doc/misc/newsticker.texi
M doc/misc/nxml-mode.texi
M doc/misc/octave-mode.texi
M doc/misc/org.texi
M doc/misc/pcl-cvs.texi
M doc/misc/pgg.texi
M doc/misc/rcirc.texi
M doc/misc/reftex.texi
M doc/misc/remember.texi
M doc/misc/sasl.texi
M doc/misc/sc.texi
M doc/misc/semantic.texi
M doc/misc/ses.texi
M doc/misc/sieve.texi
M doc/misc/smtpmail.texi
M doc/misc/speedbar.texi
M doc/misc/srecode.texi
M doc/misc/texinfo.tex
M doc/misc/tramp.texi
M doc/misc/url.texi
M doc/misc/vip.texi
M doc/misc/viper.texi
M doc/misc/widget.texi
M doc/misc/wisent.texi
M doc/misc/woman.texi
M etc/NEWS
M etc/images/README
M etc/images/checked.xpm
M etc/images/gnus/README
M etc/images/gud/README
M etc/images/icons/README
M etc/images/mh-logo.xpm
M etc/images/splash.xpm
M etc/images/unchecked.xpm
M etc/refcards/README
M etc/refcards/gnus-refcard.tex
M etc/refcards/ru-refcard.tex
M etc/tutorials/TUTORIAL.cn
M etc/tutorials/TUTORIAL.he
M etc/tutorials/TUTORIAL.nl
M etc/tutorials/TUTORIAL.ro
M etc/tutorials/TUTORIAL.sl
M lib-src/rcs2log
M lib/getopt_.h
M lisp/ChangeLog
M lisp/cedet/semantic/imenu.el
M lisp/dired-aux.el
M lisp/mail/rmail.el
M lisp/mail/rmailmm.el
M lisp/net/tramp-sh.el
M lisp/org/ox-html.el
M lisp/ses.el
M msdos/README
M msdos/autogen/Makefile.in
M msdos/depfiles.bat
M msdos/sed2v2.inp
M nt/config.nt
M nt/configure.bat
M nt/emacs.rc
M nt/emacsclient.rc
M nt/icons/README
M src/ChangeLog
M src/bidi.c
M src/fileio.c
M src/frame.c
M src/indent.c
M src/insdel.c
M src/lisp.h
M src/lread.c
M src/search.c
M src/w32fns.c
M src/w32term.c
M src/window.c
M src/xdisp.c
M src/xfns.c
M src/xterm.c
All changes applied successfully.
So there seemed to be far more files implied than the 4 which I have modified. For that reason I did not do the commit. Should I ?
Maybe the reason is that I did two commits in a row to apply the change.
I have saved my changes somewhere so no problem if I simply destroy my work area and pull a new clean one.
By the way, I will subscribe to the announce list, that is an excellent idea, reading all the emails on the devel list is simply impossible for my level of involvement.
Vincent.
----------------------------------------
> Date: Fri, 3 Jan 2014 09:56:34 +0200
> From: eliz@gnu.org
> Subject: Re: Addition of SES local printer functions.
> To: vincent.b.1@hotmail.fr
> CC: emacs-devel@gnu.org
>
>> From: Vincent Belaïche <vincent.b.1@hotmail.fr>
>> Date: Fri, 03 Jan 2014 00:08:38 +0100
>> Cc: emacs-devel@gnu.org
>>
>> Please explain me how to "uncommit" the change, and I can undo it, so
>> that the local printers function is introduced later on.
>
> Like this:
>
> bzr merge -r N..N-1 .
> bzr commit -m "Reverted SES changes for local printer functions."
>
> where N is the revision number you committed, N-1 is the revision
> number before that. Note all the dots in the first command: they are
> important.
>
> (You may wish to save your changes in some place, before doing the
> above.)
>
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Addition of SES local printer functions.
2014-01-03 9:40 ` Vincent Belaïche
@ 2014-01-03 10:34 ` Eli Zaretskii
0 siblings, 0 replies; 22+ messages in thread
From: Eli Zaretskii @ 2014-01-03 10:34 UTC (permalink / raw)
To: Vincent Belaïche; +Cc: emacs-devel
> From: Vincent Belaïche <vincent.b.1@hotmail.fr>
> CC: emacs-devel <emacs-devel@gnu.org>
> Date: Fri, 3 Jan 2014 10:40:35 +0100
>
> I did bzr merge -r 115841..115824 .
I said to use "-r N..N-1", so you should have done this instead:
bzr merge -r 115841..115840 .
> So there seemed to be far more files implied than the 4 which I have modified. For that reason I did not do the commit. Should I ?
No, of course not. Instead, revert to the previous state:
bzr revert
then invoke the correct merge command as shown above.
> Maybe the reason is that I did two commits in a row to apply the change.
Then revert them one by one. Like this:
bzr merge -r 115838..115837
bzr ci -m "Reverted revision 115838."
bzr merge -r 115841..115840
bzr ci -m "Reverted revision 115841."
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: Addition of SES local printer functions.
@ 2014-01-02 22:59 Vincent Belaïche
2014-01-02 23:09 ` Óscar Fuentes
0 siblings, 1 reply; 22+ messages in thread
From: Vincent Belaïche @ 2014-01-02 22:59 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
Hello,
Well, I have already done the commit.
On the other hand, the file-format handling is such that as long as
there is no local printer function file format defined in Global
parameters remains "2". When the first local printer function is defined
the file format is raised to 3. So the risk of backward incompatibility
is moderate.
Maybe I should had some word about the file-format number into the
documentation.
I had to do another commit, because I just realized that I had
introduced some bug with file format error checking, that was kind of
hidden by the ses-load running under ignore-error encapuslation. Maybe
this is an issue ses should be more explicitly verbous when it finds
that it is too old to handle the file.
This incidentally shows that, as I already stated, the change is not
small.
Vincent.
> From: monnier@iro.umontreal.ca
> To: rgm@gnu.org
> Subject: Re: Addition of SES local printer functions.
> Date: Thu, 2 Jan 2014 16:07:28 -0500
> CC: vincent.b.1@hotmail.fr; emacs-devel@gnu.org
>
> > Did you receive a feature-freeze exception for this change?
>
> No, this one will have to wait for after we make the release branch.
>
>
> Stefan
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: Addition of SES local printer functions.
@ 2014-01-02 20:23 Vincent Belaïche
2014-01-02 21:01 ` Eli Zaretskii
0 siblings, 1 reply; 22+ messages in thread
From: Vincent Belaïche @ 2014-01-02 20:23 UTC (permalink / raw)
To: Glenn Morris; +Cc: Stefan Monnier, emacs-devel
Hello Glenn,
bzr status outputs the following:
-----------------------------------------------------------------------
bzr status
modified:
doc/misc/ChangeLog
doc/misc/ses.texi
lisp/ChangeLog
lisp/ses.el
unknown:
build4.log
ses-local-printers.txt
leim/ja-dic/
leim/leim-list.el
lisp/c;c
src/stamp-oldxmenu
conflicts:
Conflict: can't delete info because it is not empty. Not deleting.
-----------------------------------------------------------------------
Concerning feature freeze exception, er... I am sorry if I did something
wrong, this change has been agreed a few months ago and some advice how
to implement was given by Stefan, but I hadn't any time to implement it
until now.
I acknowledge that this is not a _small_ change because it is involves
the file format, so maybe if EMACS is in a feature freeze phase it would
be wiser to delay the change or move it to some pending branch. Despite
the testing that I did, there of course may be bugs involved as in any
change of that sort.
Anyhow, I am not aware of such "feature freeze" exception, how should I
have received it --- is that some email or some message produced by bzr?
Vincent.
> From: rgm@gnu.org
> To: vincent.b.1@hotmail.fr
> Subject: Re: Addition of SES local printer functions.
> Date: Thu, 2 Jan 2014 14:35:44 -0500
> CC: monnier@iro.umontreal.ca; emacs-devel@gnu.org
>
> Vincent Belaïche wrote:
>
> > bzr: ERROR: Conflicts detected in working tree. Use "bzr conflicts" to list, "bzr resolve FILE" to resolve.
> [...]
> > bzr conflicts does not work --- probably m version of bazaar is outdated.
>
> "Does not work" is vague. Try: bzr status
>
> > Feedback is welcome.
>
> Did you receive a feature-freeze exception for this change?
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Addition of SES local printer functions.
2014-01-02 20:23 Vincent Belaïche
@ 2014-01-02 21:01 ` Eli Zaretskii
0 siblings, 0 replies; 22+ messages in thread
From: Eli Zaretskii @ 2014-01-02 21:01 UTC (permalink / raw)
To: Vincent Belaïche; +Cc: monnier, emacs-devel
> From: Vincent Belaïche <vincent.b.1@hotmail.fr>
> Date: Thu, 02 Jan 2014 21:23:55 +0100
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel@gnu.org
>
> conflicts:
> Conflict: can't delete info because it is not empty. Not deleting.
That's because the info directory was deleted from the repository.
Remove all of its contents by shell commands, then type this:
bzr resolve --take-other
^ permalink raw reply [flat|nested] 22+ messages in thread
* Addition of SES local printer functions.
@ 2014-01-02 13:31 Vincent Belaïche
2014-01-02 19:35 ` Glenn Morris
0 siblings, 1 reply; 22+ messages in thread
From: Vincent Belaïche @ 2014-01-02 13:31 UTC (permalink / raw)
To: emacs-devel, Stefan Monnier
[-- Attachment #1: Type: text/plain, Size: 830 bytes --]
Hello & happy new year,
I have implemented a new function into SES. Attached is the patch (from
bzr diff). The implementation was already discussed with Stefan a few
months ago.
This change is not small, as it implies that file-format is raised from
2 to 3 when a local printer function is added.
For some reason the commit does not work --- I get this:
-----------------------------------------------------------------------
Connected (version 2.0, client OpenSSH_5.9)
Authentication (publickey) successful!
Secsh channel 1 opened.
bzr: ERROR: Conflicts detected in working tree. Use "bzr conflicts" to list, "bzr resolve FILE" to resolve.
-----------------------------------------------------------------------
bzr conflicts does not work --- probably m version of bazaar is outdated.
Feedback is welcome.
Vincent.
[-- Attachment #2: ses-local-printers.txt --]
[-- Type: text/plain, Size: 18596 bytes --]
=== modified file 'doc/misc/ChangeLog'
--- doc/misc/ChangeLog 2014-01-02 09:32:20 +0000
+++ doc/misc/ChangeLog 2014-01-02 13:05:09 +0000
@@ -1,3 +1,7 @@
+2014-01-02 Vincent Belaïche <vincentb1@users.sourceforge.net>
+
+ * ses.texi: Add documentation for local printer functions.
+
2014-01-02 Aidan Gauland <aidalgol@amuri.net>
* eshell.text (Command Basics): Removed `Command basics' chapter.
=== modified file 'doc/misc/ses.texi'
--- doc/misc/ses.texi 2014-01-01 08:31:29 +0000
+++ doc/misc/ses.texi 2014-01-02 13:04:52 +0000
@@ -434,6 +434,13 @@
Centering with tildes (~) and spill-over.
@end table
+You can define printer function local to a sheet with command
+@code{ses-define-local-printer}. For instance define printer
+@samp{foo} to @code{"%.2f"} and then use symbol @samp{foo} as a
+printer function. Then, if you call again
+@code{ses-define-local-printer} on @samp{foo} to redefine it as
+@code{"%.3f"} all the cells using printer @samp{foo} will be reprinted
+accordingly.
@node Clearing cells
@section Clearing cells
=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog 2014-01-01 07:43:34 +0000
+++ lisp/ChangeLog 2014-01-02 13:21:18 +0000
@@ -1,3 +1,31 @@
+2014-01-02 Vincent Belaïche <vincentb1@users.sourceforge.net>
+
+ * ses.el (ses-initial-global-parameters-re): New defconst, a
+ specific regexp is needed now that ses.el can handle both
+ file-format 2 (no local printers) and 3 (may have local printers).
+ (silence compiler): Add local variables needed for local printer
+ handling.
+ (ses-set-localvars): Handle hashmap initialisation.
+ (ses-paramlines-plist): Add param-line for number of local printers.
+ (ses-paramfmt-plist): New defconst, needed for code factorization
+ between functions `ses-set-parameter' and
+ `ses-file-format-extend-paramter-list'
+ (ses-make-local-printer-info): New defsubst.
+ (ses-locprn-get-compiled, ses-locprn-compiled-aset)
+ (ses-locprn-get-def, ses-locprn-def-aset, ses-locprn-get-number)
+ (ses-cell-printer-aset): New defmacro.
+ (ses-local-printer-compile): New defun.
+ (ses-local-printer): New defmacro.
+ (ses-printer-validate, ses-call-printer): Add support for local
+ printer functions.
+ (ses-file-format-extend-paramter-list): New defun.
+ (ses-set-parameter): Use const `ses-paramfmt-plist' for code factorization.
+ (ses-load): Add support for local
+ printer functions.
+ (ses-read-printer): Update docstring and add support for local printer functions.
+ (ses-refresh-local-printer, ses-define-local-printer): New defun.
+ (ses-safe-printer): Add support for local printer functions.
+
2013-12-31 Eli Zaretskii <eliz@gnu.org>
* international/mule-conf.el: Unify the charset indian-is13194.
=== modified file 'lisp/ses.el'
--- lisp/ses.el 2014-01-01 07:43:34 +0000
+++ lisp/ses.el 2014-01-02 13:19:48 +0000
@@ -238,6 +238,10 @@
"\n( ;Global parameters (these are read first)\n 2 ;SES file-format\n 1 ;numrows\n 1 ;numcols\n)\n\n"
"Initial contents for the three-element list at the bottom of the data area.")
+(defconst ses-initial-global-parameters-re
+ "\n( ;Global parameters (these are read first)\n [23] ;SES file-format\n [0-9]+ ;numrows\n [0-9]+ ;numcols\n\\( [0-9]+ ;numlocprn\n\\)?)\n\n"
+ "Match Global parameters for .")
+
(defconst ses-initial-file-trailer
";; Local Variables:\n;; mode: ses\n;; End:\n"
"Initial contents for the file-trailer area at the bottom of the file.")
@@ -271,11 +275,17 @@
;; Local variables and constants
;;----------------------------------------------------------------------------
-(eval-and-compile
+(eval-and-compile ; silence compiler
(defconst ses-localvars
'(ses--blank-line ses--cells ses--col-printers
ses--col-widths ses--curcell ses--curcell-overlay
ses--default-printer
+ (ses--local-printer-hashmap . :hashmap)
+ ;; the list is there to remember the order of local printers like there
+ ;; are written to the SES filen which service the hashmap does not
+ ;; provide.
+ ses--local-printer-list
+ (ses--numlocprn . 0); count of local printers
ses--deferred-narrow ses--deferred-recalc
ses--deferred-write ses--file-format
ses--named-cell-hashmap
@@ -298,7 +308,20 @@
((symbolp x)
(set (make-local-variable x) nil))
((consp x)
- (set (make-local-variable (car x)) (cdr x)))
+ (cond
+ ((integerp (cdr x))
+ (set (make-local-variable (car x)) (cdr x)))
+ ((eq (cdr x) :hashmap)
+ (set (make-local-variable (car x))
+ (if (boundp (car x))
+ (let ((xv (symbol-value (car x))))
+ (if (hash-table-p xv)
+ (clrhash xv)
+ (warn "Unexpected value of symbol %S, should be a hash table" x)
+ (make-hash-table :test 'eq)))
+ (make-hash-table :test 'eq))))
+ (t (error "Unexpected initializer `%S' in list `ses-localvars' for entry %S"
+ (cdr x) (car x)) ) ))
(t (error "Unexpected elements `%S' in list `ses-localvars'" x))))))
(eval-when-compile ; silence compiler
@@ -310,10 +333,21 @@
(defconst ses-paramlines-plist
'(ses--col-widths -5 ses--col-printers -4 ses--default-printer -3
ses--header-row -2 ses--file-format 1 ses--numrows 2
- ses--numcols 3)
+ ses--numcols 3 ses--numlocprn 4)
"Offsets from 'Global parameters' line to various parameter lines in the
data area of a spreadsheet.")
+(defconst ses-paramfmt-plist
+ '(ses--col-widths "(ses-column-widths %S)"
+ ses--col-printers "(ses-column-printers %S)"
+ ses--default-printer "(ses-default-printer %S)"
+ ses--header-row "(ses-header-row %S)"
+ ses--file-format " %S ;SES file-format"
+ ses--numrows " %S ;numrows"
+ ses--numcols " %S ;numcols"
+ ses--numlocprn " %S ;numlocprn")
+ "Formats of 'Global parameters' various parameters in the data
+area of a spreadsheet.")
;;
;; "Side-effect variables". They are set in one function, altered in
@@ -354,6 +388,30 @@
property-list)
(vector symbol formula printer references property-list))
+(defsubst ses-make-local-printer-info (def &optional compiled-def number)
+ (let ((v (vector def
+ (or compiled-def (ses-local-printer-compile def))
+ (or number ses--numlocprn)
+ nil)))
+ (push v ses--local-printer-list)
+ (aset v 3 ses--local-printer-list)
+ v))
+
+(defmacro ses-locprn-get-compiled (locprn)
+ `(aref ,locprn 1))
+
+(defmacro ses-locprn-compiled-aset (locprn compiled)
+ `(aset ,locprn 1 ,compiled))
+
+(defmacro ses-locprn-get-def (locprn)
+ `(aref ,locprn 0))
+
+(defmacro ses-locprn-def-aset (locprn def)
+ `(aset ,locprn 0 ,def))
+
+(defmacro ses-locprn-get-number (locprn)
+ `(aref ,locprn 2))
+
(defmacro ses-cell-symbol (row &optional col)
"From a CELL or a pair (ROW,COL), get the symbol that names the local-variable holding its value. (0,0) => A1."
`(aref ,(if col `(ses-get-cell ,row ,col) row) 0))
@@ -371,6 +429,10 @@
"From a CELL or a pair (ROW,COL), get the function that prints its value."
`(aref ,(if col `(ses-get-cell ,row ,col) row) 2))
+(defmacro ses-cell-printer-aset (cell printer)
+ "From a CELL set the printer that prints its value."
+ `(aset ,cell 2 ,printer))
+
(defmacro ses-cell-references (row &optional col)
"From a CELL or a pair (ROW,COL), get the list of symbols for cells whose
functions refer to its value."
@@ -550,6 +612,29 @@
(set sym value)
sym)
+(defun ses-local-printer-compile (printer)
+ "Convert local printer function into faster printer
+definition."
+ (cond
+ ((functionp printer) printer)
+ ((stringp printer)
+ `(lambda (x) (format ,printer x)))
+ (t (error "Invalid printer %S" printer))))
+
+(defmacro ses-local-printer (printer-name printer-def)
+ "Define a local printer with name PRINTER-NAME and definition
+PRINTER-DEF. Return the printer info."
+ (or
+ (and (symbolp printer-name)
+ (ses-printer-validate printer-def))
+ (error "Invalid local printer definition"))
+ (and (gethash printer-name ses--local-printer-hashmap)
+ (error "Duplicate printer definition %S" printer-name))
+ (add-to-list 'ses-read-printer-history (symbol-name printer-name))
+ (puthash printer-name
+ (ses-make-local-printer-info (ses-safe-printer printer-def))
+ ses--local-printer-hashmap))
+
(defmacro ses-column-widths (widths)
"Load the vector of column widths from the spreadsheet file. This is a
macro to prevent propagate-on-load viruses."
@@ -663,6 +748,8 @@
"Signal an error if PRINTER is not a valid SES cell printer."
(or (not printer)
(stringp printer)
+ ;; printer is a local printer
+ (and (symbolp printer) (gethash printer ses--local-printer-hashmap))
(functionp printer)
(and (stringp (car-safe printer)) (not (cdr printer)))
(error "Invalid printer function"))
@@ -1260,7 +1347,13 @@
(format (car printer) value)
""))
(t
- (setq value (funcall printer (or value "")))
+ (setq value (funcall
+ (or (and (symbolp printer)
+ (let ((locprn (gethash printer ses--local-printer-hashmap)))
+ (and locprn
+ (ses-locprn-get-compiled locprn))))
+ printer)
+ (or value "")))
(if (stringp value)
value
(or (stringp (car-safe value))
@@ -1333,6 +1426,22 @@
(goto-char ses--params-marker)
(forward-line def))))
+(defun ses-file-format-extend-paramter-list (new-file-format)
+ "Extend the global parameters list when file format is updated
+from 2 to 3. This happens when local printer function are added
+to a sheet that was created with SES version 2. This is not
+undoable. Return nil when there was no change, and non nil otherwise."
+ (save-excursion
+ (cond
+ ((and (= ses--file-format 2) (= 3 new-file-format))
+ (ses-set-parameter 'ses--file-format 3 )
+ (ses-widen)
+ (goto-char ses--params-marker)
+ (forward-line (plist-get ses-paramlines-plist 'ses--numlocprn ))
+ (insert (format (plist-get ses-paramfmt-plist 'ses--numlocprn) ses--numlocprn)
+ ?\n)
+ t) )))
+
(defun ses-set-parameter (def value &optional elem)
"Set parameter DEF to VALUE (with undo) and write the value to the data area.
See `ses-goto-data' for meaning of DEF. Newlines in the data are escaped.
@@ -1342,13 +1451,7 @@
;; in case one of them is being changed.
(ses-goto-data def)
(let ((inhibit-read-only t)
- (fmt (plist-get '(ses--col-widths "(ses-column-widths %S)"
- ses--col-printers "(ses-column-printers %S)"
- ses--default-printer "(ses-default-printer %S)"
- ses--header-row "(ses-header-row %S)"
- ses--file-format " %S ;SES file-format"
- ses--numrows " %S ;numrows"
- ses--numcols " %S ;numcols")
+ (fmt (plist-get ses-paramfmt-plist
def))
oldval)
(if elem
@@ -1734,29 +1837,38 @@
(search-backward ";; Local Variables:\n" nil t)
(backward-list 1)
(setq ses--params-marker (point-marker))
- (let ((params (ignore-errors (read (current-buffer)))))
- (or (and (= (safe-length params) 3)
+ (let* ((params (ignore-errors (read (current-buffer))))
+ (params-len (safe-length params)))
+ (or (and (>= params-len 3)
+ (<= params-len 4)
(numberp (car params))
(numberp (cadr params))
(>= (cadr params) 0)
(numberp (nth 2 params))
- (> (nth 2 params) 0))
+ (> (nth 2 params) 0)
+ (or (<= params-len 3)
+ (let ((numlocprn (nth 3 params)))
+ (and (integerp numlocprn) (>= numlocprn 0)))))
(error "Invalid SES file"))
(setq ses--file-format (car params)
ses--numrows (cadr params)
- ses--numcols (nth 2 params))
+ ses--numcols (nth 2 params)
+ ses--numlocprn (or (nth 3 params) 0))
(when (= ses--file-format 1)
(let (buffer-undo-list) ; This is not undoable.
(ses-goto-data 'ses--header-row)
(insert "(ses-header-row 0)\n")
- (ses-set-parameter 'ses--file-format 2)
+ (ses-set-parameter 'ses--file-format 3)
(message "Upgrading from SES-1 file format")))
- (or (= ses--file-format 2)
+ (or (> ses--file-format 3)
(error "This file needs a newer version of the SES library code"))
;; Initialize cell array.
(setq ses--cells (make-vector ses--numrows nil))
(dotimes (row ses--numrows)
- (aset ses--cells row (make-vector ses--numcols nil))))
+ (aset ses--cells row (make-vector ses--numcols nil)))
+ ;; initialize local printer map.
+ (clrhash ses--local-printer-hashmap))
+
;; Skip over print area, which we assume is correct.
(goto-char (point-min))
(forward-line ses--numrows)
@@ -1767,7 +1879,22 @@
(forward-char (1- (length ses-print-data-boundary)))
;; Initialize printer and symbol lists.
(mapc 'ses-printer-record ses-standard-printer-functions)
- (setq ses--symbolic-formulas nil)
+ (setq ses--symbolic-formulas nil)
+
+ ;; Load local printer definitions.
+ ;; This must be loaded *BEFORE* cells and column printers because the latters
+ ;; may call them.
+ (save-excursion
+ (forward-line (* ses--numrows (1+ ses--numcols)))
+ (let ((numlocprn ses--numlocprn))
+ (setq ses--numlocprn 0)
+ (dotimes (lp numlocprn)
+ (let ((x (read (current-buffer))))
+ (or (and (looking-at-p "\n")
+ (eq (car-safe x) 'ses-local-printer)
+ (eval x))
+ (error "local printer-def error"))
+ (setq ses--numlocprn (1+ ses--numlocprn))))))
;; Load cell definitions.
(dotimes (row ses--numrows)
(dotimes (col ses--numcols)
@@ -1780,6 +1907,8 @@
(eval x)))
(or (looking-at-p "\n\n")
(error "Missing blank line between rows")))
+ ;; Skip local printer function declaration --- that were already loaded.
+ (forward-line (+ 2 ses--numlocprn))
;; Load global parameters.
(let ((widths (read (current-buffer)))
(n1 (char-after (point)))
@@ -1804,8 +1933,7 @@
(1value (eval head-row)))
;; Should be back at global-params.
(forward-char 1)
- (or (looking-at-p (replace-regexp-in-string "1" "[0-9]+"
- ses-initial-global-parameters))
+ (or (looking-at-p ses-initial-global-parameters-re)
(error "Problem with column-defs or global-params"))
;; Check for overall newline count in definitions area.
(forward-line 3)
@@ -2389,8 +2517,10 @@
;;----------------------------------------------------------------------------
(defun ses-read-printer (prompt default)
- "Common code for `ses-read-cell-printer', `ses-read-column-printer', and `ses-read-default-printer'.
-PROMPT should end with \": \". Result is t if operation was canceled."
+ "Common code for functions `ses-read-cell-printer', `ses-read-column-printer',
+`ses-read-default-printer' and `ses-define-local-printer'.
+PROMPT should end with \": \". Result is t if operation was
+canceled."
(barf-if-buffer-read-only)
(if (eq default t)
(setq default "")
@@ -2410,6 +2540,7 @@
(or (not new)
(stringp new)
(stringp (car-safe new))
+ (and (symbolp new) (gethash new ses--local-printer-hashmap))
(ses-warn-unsafe new 'unsafep-function)
(setq new t)))
new))
@@ -3343,6 +3474,71 @@
(symbol-name new-name)))
(force-mode-line-update)))
+(defun ses-refresh-local-printer (name compiled-value)
+ "Refresh printout of spreadsheet for all cells with printer
+ defined to local printer named NAME using the value COMPILED-VALUE for this printer"
+ (message "Refreshing cells using printer %S" name)
+ (let (new-print)
+ (dotimes (row ses--numrows)
+ (dotimes (col ses--numcols)
+ (let ((cell-printer (ses-cell-printer row col)))
+ (when (eq cell-printer name)
+ (unless new-print
+ (setq new-print t)
+ (ses-begin-change))
+ (ses-print-cell row col)))))))
+
+(defun ses-define-local-printer (printer-name)
+ "Define a local printer with name PRINTER-NAME."
+ (interactive "*SEnter printer name: ")
+ (let* ((cur-printer (gethash printer-name ses--local-printer-hashmap))
+ (default (and (vectorp cur-printer) (ses-locprn-get-def cur-printer)))
+ printer-def-text
+ create-printer
+ (new-printer (ses-read-printer (format "Enter definition of printer %S: " printer-name) default)))
+ (cond
+ ;; cancelled operation => do nothing
+ ((eq new-printer t))
+ ;; no change => do nothing
+ ((and (vectorp cur-printer) (equal new-printer default)))
+ ;; re-defined printer
+ ((vectorp cur-printer)
+ (setq create-printer 0)
+ (ses-locprn-def-aset cur-printer new-printer)
+ (ses-refresh-local-printer
+ printer-name
+ (ses-locprn-compiled-aset cur-printer (ses-local-printer-compile new-printer))))
+ ;; new definition
+ (t
+ (setq create-printer 1)
+ (puthash printer-name
+ (setq cur-printer
+ (ses-make-local-printer-info new-printer))
+ ses--local-printer-hashmap)))
+ (when create-printer
+ (setq printer-def-text
+ (concat
+ "(ses-local-printer "
+ (symbol-name printer-name)
+ " "
+ (prin1-to-string (ses-locprn-get-def cur-printer))
+ ")"))
+ (save-excursion
+ (ses-goto-data ses--numrows
+ (ses-locprn-get-number cur-printer))
+ (let ((inhibit-read-only t))
+ ;; Special undo since it's outside the narrowed buffer.
+ (let (buffer-undo-list)
+ (if (= create-printer 0)
+ (delete-region (point) (line-end-position))
+ (insert ?\n)
+ (backward-char))
+ (insert printer-def-text)
+ (when (= create-printer 1)
+ (ses-file-format-extend-paramter-list 3)
+ (ses-set-parameter 'ses--numlocprn (+ ses--numlocprn create-printer))) ))))) )
+
+
;;----------------------------------------------------------------------------
;; Checking formulas for safety
;;----------------------------------------------------------------------------
@@ -3352,6 +3548,7 @@
(if (or (stringp printer)
(stringp (car-safe printer))
(not printer)
+ (and (symbolp printer) (gethash printer ses--local-printer-hashmap))
(ses-warn-unsafe printer 'unsafep-function))
printer
'ses-unsafe))
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2014-01-03 20:31 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-02 21:11 Addition of SES local printer functions Vincent Belaïche
2014-01-02 21:36 ` Óscar Fuentes
2014-01-03 0:20 ` Glenn Morris
-- strict thread matches above, loose matches on Subject: below --
2014-01-03 12:44 Vincent Belaïche
2014-01-03 13:55 ` Eli Zaretskii
2014-01-03 14:24 ` Vincent Belaïche
2014-01-02 23:08 Vincent Belaïche
2014-01-03 0:27 ` Glenn Morris
2014-01-03 2:45 ` Stefan Monnier
2014-01-03 3:18 ` Glenn Morris
2014-01-03 5:14 ` Stefan Monnier
2014-01-03 20:31 ` Glenn Morris
2014-01-03 7:56 ` Eli Zaretskii
2014-01-03 9:40 ` Vincent Belaïche
2014-01-03 10:34 ` Eli Zaretskii
2014-01-02 22:59 Vincent Belaïche
2014-01-02 23:09 ` Óscar Fuentes
2014-01-02 20:23 Vincent Belaïche
2014-01-02 21:01 ` Eli Zaretskii
2014-01-02 13:31 Vincent Belaïche
2014-01-02 19:35 ` Glenn Morris
2014-01-02 21:07 ` Stefan Monnier
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.