* otf ligature rendering support?
@ 2015-01-02 15:25 Yuri D'Elia
2015-01-03 15:16 ` K. Handa
0 siblings, 1 reply; 11+ messages in thread
From: Yuri D'Elia @ 2015-01-02 15:25 UTC (permalink / raw)
To: emacs-devel
Hi everyone,
I'm not fully aware of how much otf is supported in emacs, but I found a
good reason to want ligatures in a monospaced font:
http://www.fsd.it/fonts/pragmatapro/PragmataPro_Haskell_liga.png
PragmataPro supports ligatures for a good set of common operators. This
makes it much less troublesome than "prettify-symbols-mode" since
indentation/spacing is not changed.
How would I enable the proper GSUB feature in emacs? Are ligatures
supported at all?
I can specify otf parameters in `font-spec', but the following:
(set-fontset-font nil 'latin
(font-spec :family "PragmataPro"
:otf '(latn nil (liga))))
Doesn't really show any ligatures (or any other otf feature).
Am I doing something wrong?
^ permalink raw reply [flat|nested] 11+ messages in thread
* otf ligature rendering support?
@ 2015-01-02 15:32 Yuri D'Elia
2015-01-02 15:45 ` Eli Zaretskii
0 siblings, 1 reply; 11+ messages in thread
From: Yuri D'Elia @ 2015-01-02 15:32 UTC (permalink / raw)
To: help-gnu-emacs
Hi everyone,
I'm not fully aware of how much otf is supported in emacs, but I found a
good reason to want ligatures in a monospaced font:
http://www.fsd.it/fonts/pragmatapro/PragmataPro_Haskell_liga.png
PragmataPro supports ligatures for a good set of common operators. This
makes it much less troublesome than "prettify-symbols-mode" since
indentation/spacing is not changed.
How would I enable the proper GSUB feature in emacs? Are ligatures
supported at all?
I can specify otf parameters in `font-spec', but the following:
(set-fontset-font nil 'latin
(font-spec :family "PragmataPro"
:otf '(latn nil (liga))))
Doesn't really show any ligatures (or any other otf feature).
Am I doing something wrong?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: otf ligature rendering support?
2015-01-02 15:32 otf ligature rendering support? Yuri D'Elia
@ 2015-01-02 15:45 ` Eli Zaretskii
2015-01-02 16:00 ` Yuri D'Elia
0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2015-01-02 15:45 UTC (permalink / raw)
To: help-gnu-emacs
> From: Yuri D'Elia <wavexx@thregr.org>
> Date: Fri, 02 Jan 2015 16:32:31 +0100
>
> I'm not fully aware of how much otf is supported in emacs, but I found a
> good reason to want ligatures in a monospaced font:
>
> http://www.fsd.it/fonts/pragmatapro/PragmataPro_Haskell_liga.png
>
> PragmataPro supports ligatures for a good set of common operators. This
> makes it much less troublesome than "prettify-symbols-mode" since
> indentation/spacing is not changed.
>
> How would I enable the proper GSUB feature in emacs? Are ligatures
> supported at all?
>
> I can specify otf parameters in `font-spec', but the following:
>
> (set-fontset-font nil 'latin
> (font-spec :family "PragmataPro"
> :otf '(latn nil (liga))))
>
> Doesn't really show any ligatures (or any other otf feature).
> Am I doing something wrong?
I think you need to define rules for composing characters into
ligatures, in order to have what you want.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: otf ligature rendering support?
2015-01-02 15:45 ` Eli Zaretskii
@ 2015-01-02 16:00 ` Yuri D'Elia
2015-01-02 16:07 ` Eli Zaretskii
0 siblings, 1 reply; 11+ messages in thread
From: Yuri D'Elia @ 2015-01-02 16:00 UTC (permalink / raw)
To: help-gnu-emacs
On 01/02/2015 04:45 PM, Eli Zaretskii wrote:
>> PragmataPro supports ligatures for a good set of common operators. This
>> makes it much less troublesome than "prettify-symbols-mode" since
>> indentation/spacing is not changed.
>>
>> How would I enable the proper GSUB feature in emacs? Are ligatures
>> supported at all?
>>
>> I can specify otf parameters in `font-spec', but the following:
>>
>> (set-fontset-font nil 'latin
>> (font-spec :family "PragmataPro"
>> :otf '(latn nil (liga))))
>>
>> Doesn't really show any ligatures (or any other otf feature).
>> Am I doing something wrong?
>
> I think you need to define rules for composing characters into
> ligatures, in order to have what you want.
This is different than composition of unicode ligatures.
OTF ligatures are an inherent property of the font along with kerning
tables.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: otf ligature rendering support?
2015-01-02 16:00 ` Yuri D'Elia
@ 2015-01-02 16:07 ` Eli Zaretskii
2015-01-03 10:44 ` Yuri D'Elia
0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2015-01-02 16:07 UTC (permalink / raw)
To: help-gnu-emacs
> From: Yuri D'Elia <wavexx@thregr.org>
> Date: Fri, 02 Jan 2015 17:00:31 +0100
>
> > I think you need to define rules for composing characters into
> > ligatures, in order to have what you want.
>
> This is different than composition of unicode ligatures.
> OTF ligatures are an inherent property of the font along with kerning
> tables.
I'm probably missing something, and I'm certainly not an expert on OTF
fonts, in Emacs or elsewhere. But if what you want is display several
characters as a single glyph, the way to do that in Emacs is define
composition rules.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: otf ligature rendering support?
2015-01-02 16:07 ` Eli Zaretskii
@ 2015-01-03 10:44 ` Yuri D'Elia
2015-01-03 11:22 ` Eli Zaretskii
0 siblings, 1 reply; 11+ messages in thread
From: Yuri D'Elia @ 2015-01-03 10:44 UTC (permalink / raw)
To: help-gnu-emacs
On 01/02/2015 05:07 PM, Eli Zaretskii wrote:
>> From: Yuri D'Elia <wavexx@thregr.org>
>> Date: Fri, 02 Jan 2015 17:00:31 +0100
>>
>>> I think you need to define rules for composing characters into
>>> ligatures, in order to have what you want.
>>
>> This is different than composition of unicode ligatures.
>> OTF ligatures are an inherent property of the font along with kerning
>> tables.
>
> I'm probably missing something, and I'm certainly not an expert on OTF
> fonts, in Emacs or elsewhere. But if what you want is display several
> characters as a single glyph, the way to do that in Emacs is define
> composition rules.
Composition generates at most a sequence of precomposed utf code points,
such as æ. This is done at the client level and is font-agnostic.
OTF ligatures instead are glypt replacement tables which are provided
for a sequence of characters in the font itself. This is mostly needed
to improve the rendering for languages such as arabic.
The issue is that it needs special support in the client, since
previously drawn glypts might change as a result of typing.
I was under the impression that ligatures were supported by looking at
`fontset.el'.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: otf ligature rendering support?
2015-01-03 10:44 ` Yuri D'Elia
@ 2015-01-03 11:22 ` Eli Zaretskii
0 siblings, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2015-01-03 11:22 UTC (permalink / raw)
To: help-gnu-emacs
> From: Yuri D'Elia <wavexx@thregr.org>
> Date: Sat, 03 Jan 2015 11:44:25 +0100
>
> OTF ligatures instead are glypt replacement tables which are provided
> for a sequence of characters in the font itself. This is mostly needed
> to improve the rendering for languages such as arabic.
But then the OTF font driver should tell Emacs about this situation.
Is your Emacs compiled with libotf and libm17n-flt? That's how Emacs
supports Arabic and other complex scripts. Do you see Arabic ligature
shaping when Emacs displays Arabic text?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: otf ligature rendering support?
2015-01-02 15:25 Yuri D'Elia
@ 2015-01-03 15:16 ` K. Handa
2015-01-03 16:38 ` Yuri D'Elia
2015-08-17 1:04 ` YAMAMOTO Mitsuharu
0 siblings, 2 replies; 11+ messages in thread
From: K. Handa @ 2015-01-03 15:16 UTC (permalink / raw)
To: Yuri D'Elia; +Cc: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 1584 bytes --]
In article <m86d9m$1ii$1@ger.gmane.org>, Yuri D'Elia <wavexx@thregr.org> writes:
> I'm not fully aware of how much otf is supported in emacs, but I found a
> good reason to want ligatures in a monospaced font:
> http://www.fsd.it/fonts/pragmatapro/PragmataPro_Haskell_liga.png
> PragmataPro supports ligatures for a good set of common operators. This
> makes it much less troublesome than "prettify-symbols-mode" since
> indentation/spacing is not changed.
> How would I enable the proper GSUB feature in emacs? Are ligatures
> supported at all?
Currently, Emacs can not control which OTF features to
apply. Emacs leaves it to font drivers on eash platform. I
actually tried to give Emacs such facility, and src/font.c
contains not-yet-finished code within "#if 0" and "#endif".
I want to finish the code, but I'm not sure I can work on it
soon.
> I can specify otf parameters in `font-spec', but the following:
> (set-fontset-font nil 'latin
> (font-spec :family "PragmataPro"
> :otf '(latn nil (liga))))
> Doesn't really show any ligatures (or any other otf feature).
The above just tells Emacs to select such an OTF font that
has `liga' GPOS feature for `latn' script.
By the way, if you are running Emacs on X with libm17n-flt
and libotf libraries, you can override the default behavior
of those libraries by putting the attached two files under
~/.m17n.d/. It assumes that the family name of PragmataPro
font is "PragmataPro". If that is not the case, please
replace "PragmataPro" in generic.fst with a proper family
name.
---
K. Handa
handa@gnu.org
[-- Attachment #2: generic.fst --]
[-- Type: application/octet-stream, Size: 3825 bytes --]
;; generic.fst -- Fontset mainly using generic font specs.
;; Copyright (C) 2005, 2006, 2007, 2010 AIST (H15PRO112)
;; See the end for copying conditions.
;;; <li> generic.fst
;;;
;;; Fontset mainly using generic font specifications. See the
;;; documentation of the fontset "default" for the information about
;;; each font.
(latin
(vi
((nil PragmataPro unicode-bmp) combining)
((nil nil unicode-bmp :lang=vi)))
(nil
((nil PragmataPro unicode-bmp) combining)
((nil nil unicode-bmp :script=latin))))
(hebrew
(nil
((nil nil unicode-bmp :otf=hebr) hebr-otf)
((nil nil unicode-bmp :script=hebrew))))
(arabic
(nil
((nil nil unicode-bmp :otf=arab=init,medi,fina,liga+mark) arab-otf)
((nil nil unicode-bmp :otf=arab=init,medi,fina,liga+~mark) arab-otf-no-gpos)
((nil nil unicode-bmp :script=arabic) arab)))
(syriac
(nil
((nil nil unicode-bmp :otf=syrc) syrc-otf)))
(thaana
(nil
((nil nil unicode-bmp :otf=thaa) thaa-otf)
((nil nil unicode-bmp :script=thaana))))
(devanagari
(nil
((nil nil unicode-bmp :otf=dev2) dev2-otf)
((nil nil unicode-bmp :otf=deva) deva-otf)))
(bengali
(nil
((nil nil unicode-bmp :otf=bng2) bng2-otf)
((nil nil unicode-bmp :otf=beng) beng-otf)))
(gurmukhi
(nil
((nil nil unicode-bmp :otf=gur2) gur2-otf)
((nil nil unicode-bmp :otf=guru) guru-otf)))
(gujarati
(nil
((nil nil unicode-bmp :otf=gjr2) gjr2-otf)
((nil nil unicode-bmp :otf=gujr) gujr-otf)))
(oriya
(nil
((nil nil unicode-bmp :otf=ory2) ory2-otf)
((nil nil unicode-bmp :otf=orya) orya-otf)))
(tamil
(nil
((nil nil unicode-bmp :otf=tml2) tml2-otf)
((nil nil unicode-bmp :otf=taml) taml-otf)))
(telugu
(nil
((nil nil unicode-bmp :otf=tel2) tel2-otf)
((nil nil unicode-bmp :otf=telu) telu-otf)))
(kannada
(nil
((nil nil unicode-bmp :otf=knd2) knd2-otf)
((nil nil unicode-bmp :otf=knda) knda-otf)))
(malayalam
(nil
((nil nil unicode-bmp :otf=mlm2) mlm2-otf)
((nil nil unicode-bmp :otf=mlym) mlym-otf)))
(sinhala
(nil
((nil nil unicode-bmp :otf=sinh) sinh-otf)))
(tibetan
(nil
((nil nil unicode-bmp :otf=tibt) tibt-otf)))
(thai
(nil
((nil nil unicode-bmp :otf=thai) thai-otf)
((nil nil unicode-bmp :script=thai) thai-generic)))
(lao
(nil
((nil nil unicode-bmp :otf=laoo) laoo-otf)
((nil nil unicode-bmp :script=lao) laoo-generic)))
(myanmar
(nil
((nil padauk unicode-bmp) mymr-sil)))
(khmer
(nil
((nil nil unicode-bmp :otf=khmr) khmr-otf)))
(han
(zh
((nil nil unicode-bmp :lang=zh)))
(ja
((nil nil unicode-bmp :lang=ja)))
(ko
((nil nil unicode-bmp :lang=ko))))
(hiragana
(nil
((nil nil unicode-bmp :lang=ja))))
(katakana
(nil
((nil nil unicode-bmp :lang=ja))))
(hangul
(nil
((nil nil unicode-bmp :lang=ko))))
(cham
(nil
((nil nil unicode-bmp :script=cham) cham-generic)))
(nil
((nil nil unicode-bmp)))
;; Copyright (C) 2003, 2004, 2007, 2010
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H15PRO112
;; This file is part of the m17n database; a sub-part of the m17n
;; library.
;; The m17n library is free software; you can redistribute it and/or
;; modify it under the terms of the GNU Lesser General Public License
;; as published by the Free Software Foundation; either version 2.1 of
;; the License, or (at your option) any later version.
;; The m17n library is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; Lesser General Public License for more details.
;; You should have received a copy of the GNU Lesser General Public
;; License along with the m17n library; if not, write to the Free
;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;; Local Variables:
;; mode: lisp
;; End:
[-- Attachment #3: COMBINING.flt --]
[-- Type: application/octet-stream, Size: 2131 bytes --]
;; COMBINING.flt -- Font Layout Table for combining diacritical marks
;; Copyright (C) 2007 AIST (H15PRO112)
;; See the end for copying conditions.
(font layouter combining nil)
;;; <li> COMBINING.flt
;;;
;;; For combining diacritical marsk (U+0300..U+036F).
(category
;; The contents is build up by the m17n-lib.
)
(generator
(0
(cond
("(u)([a-t]+)"
(cond
((font-facility :otf=DFLT=liga) < :otf=DFLT=liga >)
((font-facility :otf=DFLT+mark) < :otf=DFLT+mark,mkmk >)
(".*"
< = ; combining class
(cond ("a" Bc.Bc =) ; < 200
("b" bl.tc =) ; 200
("c" bc.tc =) ; 202
("d" br.tc =) ; 204
("e" Bl.Br =) ; 208
("f" Br.Bl =) ; 210
("g" tl.bc =) ; 212
("h" tc.bc =) ; 214
("i" tr.bc =) ; 216
("j" bl.tc =) ; 218
("k" bc-tc =) ; 220
("l" br-tc =) ; 222
("m" Bl.Br =) ; 224
("n" Br.Bl =) ; 226
("o" tl+bc =) ; 228
("p" tc+bc =) ; 230
("q" tr+bc =) ; 232
("r" br-tr =) ; 233
("s" tr+br =) ; 234
("t" bc-tc =)) ; 240
* >)))
("[a-t]" [ = ])
("." =))
*))
;; Copyright (C) 2007
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H15PRO112
;; This file is part of the m17n database; a sub-part of the m17n
;; library.
;; The m17n library is free software; you can redistribute it and/or
;; modify it under the terms of the GNU Lesser General Public License
;; as published by the Free Software Foundation; either version 2.1 of
;; the License, or (at your option) any later version.
;; The m17n library is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; Lesser General Public License for more details.
;; You should have received a copy of the GNU Lesser General Public
;; License along with the m17n library; if not, write to the Free
;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;; Local Variables:
;; mode: emacs-lisp
;; End:
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: otf ligature rendering support?
2015-01-03 15:16 ` K. Handa
@ 2015-01-03 16:38 ` Yuri D'Elia
2015-08-17 1:04 ` YAMAMOTO Mitsuharu
1 sibling, 0 replies; 11+ messages in thread
From: Yuri D'Elia @ 2015-01-03 16:38 UTC (permalink / raw)
To: emacs-devel
On 01/03/2015 04:16 PM, K. Handa wrote:
> Currently, Emacs can not control which OTF features to apply. Emacs
> leaves it to font drivers on eash platform. I actually tried to give
> Emacs such facility, and src/font.c contains not-yet-finished code
> within "#if 0" and "#endif".
>
> I want to finish the code, but I'm not sure I can work on it soon.
So this means that OTF features are supported, but not directly user
controllable yet?
> By the way, if you are running Emacs on X with libm17n-flt and libotf
> libraries, you can override the default behavior of those libraries
> by putting the attached two files under ~/.m17n.d/. It assumes that
> the family name of PragmataPro font is "PragmataPro". If that is not
> the case, please replace "PragmataPro" in generic.fst with a proper
> family name.
I'm using debian unstable with 24.4.1, m17n is enabled and m17n-db.
It doesn't look like ~/.m17n.d/ is ever read (I tried to run emacs
through strace). It's stat(2)-ed a couple of times, and that's it.
I tried to use m17n-edit, and it tries to read a couple of unexisting
files in ~/.m17n.d/, but not generic.fst/COMBINING.flt
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: otf ligature rendering support?
2015-01-03 15:16 ` K. Handa
2015-01-03 16:38 ` Yuri D'Elia
@ 2015-08-17 1:04 ` YAMAMOTO Mitsuharu
2015-08-17 4:17 ` Stefan Monnier
1 sibling, 1 reply; 11+ messages in thread
From: YAMAMOTO Mitsuharu @ 2015-08-17 1:04 UTC (permalink / raw)
To: K. Handa; +Cc: Yuri D'Elia, emacs-devel
>>>>> On Sun, 04 Jan 2015 00:16:55 +0900, handa@gnu.org (K. Handa) said:
>> I'm not fully aware of how much otf is supported in emacs, but I
>> found a good reason to want ligatures in a monospaced font:
>> http://www.fsd.it/fonts/pragmatapro/PragmataPro_Haskell_liga.png
>> PragmataPro supports ligatures for a good set of common
>> operators. This makes it much less troublesome than
>> "prettify-symbols-mode" since indentation/spacing is not changed.
>> How would I enable the proper GSUB feature in emacs? Are ligatures
>> supported at all?
> Currently, Emacs can not control which OTF features to apply. Emacs
> leaves it to font drivers on eash platform.
A user of the Mac port sent me a feature request to display ligatures
like above using Fira Code (https://github.com/tonsky/FiraCode).
Actually the mac-ct font backend driver, which is used in the NS port
as well as the Mac port, already supports ligatures. So I tried to
activate the use of ligatures with the setting at the bottom of this
mail. It mostly worked, but occasionally caused an error (which
actually triggers an infinite loop) at the following part in
Fcomposition_get_gstring (src/composite.c):
1742 if (! STRING_MULTIBYTE (string))
1743 error ("Attempt to shape unibyte text");
This should also be reproducible on other platforms using the
following example:
(set-char-table-range composition-function-table ?-
'(["--" 0 font-shape-gstring]))
(setq header-line-format "unibyte text containing \"--\"")
What was the idea behind disallowing text shaping for unibyte strings?
Is it possible to relax this restriction?
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
(let ((alist '((33 . ".\\(?:\\(?:==\\)\\|[!=]\\)")
(35 . ".\\(?:[(?[_{]\\)")
(38 . ".\\(?:\\(?:&&\\)\\|&\\)")
(42 . ".\\(?:\\(?:\\*\\*\\)\\|[*/]\\)")
(43 . ".\\(?:\\(?:\\+\\+\\)\\|\\+\\)")
(45 . ".\\(?:\\(?:-[>-]\\|<<\\|>>\\)\\|[<>}~-]\\)")
(46 . ".\\(?:\\(?:\\.[.<]\\)\\|[.=]\\)")
(47 . ".\\(?:\\(?:\\*\\*\\|//\\|==\\)\\|[*/=>]\\)")
(58 . ".\\(?:[:=]\\)")
(59 . ".\\(?:;\\)")
(60 . ".\\(?:\\(?:!--\\)\\|\\(?:\\$>\\|\\*>\\|\\+>\\|--\\|<[<=-]\\|=[<=>]\\||>\\)\\|[/<=>|-]\\)")
(61 . ".\\(?:\\(?:/=\\|:=\\|<<\\|=[=>]\\|>>\\)\\|[<=>~]\\)")
(62 . ".\\(?:\\(?:=>\\|>[=>-]\\)\\|[=>-]\\)")
(63 . ".\\(?:[:=?]\\)")
(92 . ".\\(?:\\(?:\\\\\\\\\\)\\|\\\\\\)")
(94 . ".\\(?:=\\)")
(123 . ".\\(?:-\\)")
(124 . ".\\(?:\\(?:|[=|]\\)\\|[=>|]\\)")
(126 . ".\\(?:[=@~-]\\)"))
))
(dolist (char-regexp alist)
(set-char-table-range composition-function-table (car char-regexp)
`([,(cdr char-regexp) 0 font-shape-gstring]))))
(make-frame '((font . "Fira Code")))
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: otf ligature rendering support?
2015-08-17 1:04 ` YAMAMOTO Mitsuharu
@ 2015-08-17 4:17 ` Stefan Monnier
0 siblings, 0 replies; 11+ messages in thread
From: Stefan Monnier @ 2015-08-17 4:17 UTC (permalink / raw)
To: YAMAMOTO Mitsuharu; +Cc: Yuri D'Elia, K. Handa, emacs-devel
> What was the idea behind disallowing text shaping for unibyte strings?
Probably a simple kind of sanity check, based on he assumption that this
code is only used for those scripts that need shaping.
Stefan
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-08-17 4:17 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-02 15:32 otf ligature rendering support? Yuri D'Elia
2015-01-02 15:45 ` Eli Zaretskii
2015-01-02 16:00 ` Yuri D'Elia
2015-01-02 16:07 ` Eli Zaretskii
2015-01-03 10:44 ` Yuri D'Elia
2015-01-03 11:22 ` Eli Zaretskii
-- strict thread matches above, loose matches on Subject: below --
2015-01-02 15:25 Yuri D'Elia
2015-01-03 15:16 ` K. Handa
2015-01-03 16:38 ` Yuri D'Elia
2015-08-17 1:04 ` YAMAMOTO Mitsuharu
2015-08-17 4:17 ` 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.