set-properties, string-to-number pb si STD10 (rfc772) STD10 n’est pas barré
‘I’ in rfcinfo -> close window
cleaner way to define keymap? (mapc (lambda (p) (define-key rfcview-mode-map (car p) (cdr p))) ‘(( “0” . rfcinfo-goto) ( “1” . rfcinfo-bortzmeyer)))
use with-temp-message?
not a bug since build-ref not documented -> now uses toc
because it searches for unindented lines
can’t reproduce
doc and code assumes a BCP maps to only one rfc false: eg bcp41 rfc2914 updated by rfc7141
also bcp 47 (misses 5646) then, what title to use? a title is given in “/[email protected]:/rfc/bcp-index.txt”
list of multi-rfc bcps (as of 09/28/2014) bcp6, 9, 10, 13, 25, 37, 41, 47, 79, 97, 101, 111, 127, 153
also allow access to info at http://www.rfc-editor.org/info/bcp47 and other subseries /fyi12 /std35
-lookup-subseries, then -get-rfc-status => if more than 1, use -get-std-status, generalized? -get-std-status
not ok if nothing in undo stack previously we undo to empty window, plus have no way to redo… (except ‘N’)
obsoletes ien 133 stored as (obsoletes nil) -print-docid crashes on that
diagnostic rfcinfo-fold-docid calls rfcinfo-docid-at-point with “IEN133” => returns nil
rfc6585-B not recognized as part of the docid
used syntax: rfc2205 APPENDIX A. then A.1 rfc4035 Appendix B. then B.1. others?
it shouldn’t, we use ‘I’ for that ‘i’ and ‘I’ use docid at point if there’s one (?)
should set ‘non-local in rfcinfo-show, but don’t want to apply when called with ‘I’
provide another key binding? to another fun rfcinfo-show-other
or the other way: rfcinfo-show-this-one for i/I => change semantics of non-local to use-local?
or single letter
if irfc-buffer-name-includes-title is t (default)
rfcinfo commands do not recognize the buffer holds an rfc
put point on [ or ] docid at point misses the docid
loading file condition-case: Can’t load from `rfcinfo-dbfile’
if simply doing import: Importing RFC info from XML file. This may take some time… let: Symbol’s value as variable is void: rfcinfo-xml-mdtm
=> call rfcinfo-init from load error
lots of
on 1034: “RFC STD13 has no errata” on msg ‘RFC xxxx has no errata’ xxx has text properties
raises error if not in proper buffer, but the mode is set anyway! also see ‘saving’ item
let: Search failed: “~”
calls unknown function rfcinfo-status => FIXed to rfcinfo-show
rfcview-local-heading-alist
Value: ((“abstract” . [nil “Abstract” 461 469]) (“status of this memo” . [nil “Status of This Memo” 924 943]) (“copyright notice” . [nil “Copyright Notice” 1676 1692]) (“table of contents” . [nil “Table of Contents” 3085 3102]) (“1.” . [“1.” “Introduction” 10950 10966]) (“1.1.” . [“1.1.” “Requirements Notation” 14165 14192]) (“1.2.” . [“1.2.” “Syntax Notation” 14499 14520]) (“2.” . [“2.” “Architecture” 15424 15440]) … (“11.” . [“11.” “References” 178689 178704]) (“11.1.” . [“11.1.” “Normative References” 178706 178733]) (“11.2.” . [“11.2.” “Informative References” 181168 181197]) (“a” . [“A” “HTTP Version History” 186260 186293]) (“a.1.” . [“A.1.” “Changes from HTTP/1.0” 188323 188350]) (“a.1.1.” . [“A.1.1.” “Multihomed Web Servers” 188441 188471]) (“a.1.2.” . [“A.1.2.” “Keep-Alive Connections” 189505 189535]) (“a.1.3.” . [“A.1.3.” “Introduction of Transfer-Encoding” 191134 191175]) (“a.2.” . [“A.2.” “Changes from RFC 2616” 191516 191543]) (“b” . [“B” “Collected ABNF” 196520 196547]) (“index” . [nil “Index” 201027 201032]) (“authors’ addresses” . [nil “Authors’ Addresses” 205474 205492]))
irfc-heading-numbers-table is a variable defined in `irfc.el’. Its value is #s(hash-table size 145 test equal rehash-size 1.5 rehash-threshold 0.8 data (“1.” 10950 “1.1.” 14165 “1.2.” 14499 “2.” 15424 “2.1.” 15861 “2.2.” 19735 “2.3.” 21804 “2.4.” 27853 “2.5.” 29746 “2.6.” 34058 “2.7.” 40607 “2.7.1.” 42859 “2.7.2.” 47198 “2.7.3.” 48891 “3.” 50037 “3.1.” 53035 “3.1.1.” 53952 “3.1.2.” 56239 “3.2.” 57548 “3.2.1.” 58557 “3.2.2.” 59742 “3.2.3.” 61796 “3.2.4.” 63188 “3.2.5.” 67089 “3.2.6.” 68122 “3.3.” 70142 “3.3.1.” 71627 “3.3.2.” 75848 “3.3.3.” 80002 “3.4.” 85894 “3.5.” 87383 “4.” 89435 “4.1.” 90690 “4.1.1.” 91885 “4.1.2.” 93372 “4.1.3.” 95466 “4.2.” 96217 “4.2.1.” 96327 “4.2.2.” 96589 “4.2.3.” 97097 “4.3.” 97351 “4.4.” 99904 “5.” 100503 “5.1.” 100805 “5.2.” 101924 “5.3.” 103322 “5.3.1.” 103942 “5.3.2.” 104907 “5.3.3.” 105997 “5.3.4.” 106443 “5.4.” 107530 “5.5.” 110186 “5.6.” 114030 “5.7.” 115002 “5.7.1.” 116023 “5.7.2.” 120244 “6.” 123401 “6.1.” 124999 “6.2.” 128547 “6.3.” 128771 “6.3.1.” 131145 “6.3.2.” 132661 “6.4.” 134921 “6.5.” 135976 “6.6.” 137973 “6.7.” 140767 “7.” 146076 “8.” 148367 “8.1.” 148392 “8.2.” 150287 “8.3.” 150981 “8.3.1.” 151304 “8.3.2.” 152906 “8.4.” 154555 “8.4.1.” 154910 “8.4.2.” 155593 “8.5.” 156743 “8.6.” 157782 “8.6.1.” 158078 “8.6.2.” 159548 “9.” 160287 “9.1.” 160581 “9.2.” 163220 “9.3.” 164582 “9.4.” 165930 “9.5.” 168401 “9.6.” 168970 “9.7.” 170690 “9.8.” 171251 “10.” 172707 “11.” 178689 “11.1.” 178706 “11.2.” 181168 “Appendix A.” 186260 “A.1.” 188323 “A.1.1.” 188441 “A.1.2.” 189505 “A.1.3.” 191134 “A.2.” 191516 “Appendix B.” 196520))
irfc-heading-numbers-list is a variable defined in `irfc.el’. Its value is (“Appendix B.” “A.2.” “A.1.3.” “A.1.2.” “A.1.1.” “A.1.” “Appendix A.” “11.2.” “11.1.” “11.” “10.” “9.8.” “9.7.” “9.6.” “9.5.” “9.4.” “9.3.” “9.2.” “9.1.” “9.” “8.6.2.” “8.6.1.” “8.6.” “8.5.” “8.4.2.” “8.4.1.” “8.4.” “8.3.2.” “8.3.1.” “8.3.” “8.2.” “8.1.” “8.” “7.” “6.7.” “6.6.” “6.5.” “6.4.” “6.3.2.” “6.3.1.” “6.3.” “6.2.” “6.1.” “6.” “5.7.2.” “5.7.1.” “5.7.” “5.6.” “5.5.” “5.4.” “5.3.4.” “5.3.3.” “5.3.2.” “5.3.1.” “5.3.” “5.2.” “5.1.” “5.” “4.4.” “4.3.” “4.2.3.” “4.2.2.” “4.2.1.” “4.2.” “4.1.3.” “4.1.2.” “4.1.1.” “4.1.” “4.” “3.5.” “3.4.” “3.3.3.” “3.3.2.” “3.3.1.” “3.3.” “3.2.6.” “3.2.5.” “3.2.4.” “3.2.3.” “3.2.2.” “3.2.1.” “3.2.” “3.1.2.” “3.1.1.” “3.1.” “3.” “2.7.3.” “2.7.2.” “2.7.1.” “2.7.” “2.6.” “2.5.” “2.4.” “2.3.” “2.2.” “2.1.” “2.” “1.2.” “1.1.” “1.”)
parsing the xml file can be very long (more than 1 min) on a not so recent machine… (4 min on 1Ghz 256MB)
could fork a process to do it asynchronously? import, save rfcinfo-dbfile, notify main process and terminate main process then reloads rfcinfo-dbfile
or batch import, and: reload (possibly through emacsclient) display result of last import (‘N’ is ok)
could also not reimport all abstract info (abstracts file size is two times db file size)
time emacs -Q –batch -l ~/Src/rfcinfo/rfcinfo.el -f rfcinfo-import => 13.027 s
without abstract
time emacs -Q –batch -l /Src/rfcinfo/rfcinfo.el.~HEAD
-f rfcinfo-import => 12.927 s
automatic for 3 digits or more
see cl info, section 2 -> (eval-when-compile (require ‘cl))
for acronyms like HAS
not a bug since build-ref not documented
is already handled by irfc see if it’s ok and better
+l in ref counts visible lines in rfcview mode… => no?
should use current rfc from rfcview! (or use I, e ?) if no arg && rfcinfo-mode, use this one if arg && rfcinfo-mode, ask if no arg && no rfcinfo-mode, use point, ask if none if arg && no rfcinfo-mode, use point, ask with default
same rfc2205-1 -> probably only applies to level 1 headings
build sec with +l from point -> based on rfcview headings
locs, use rfcview header detection ;;
- correct them to not miss any (nor catch other things)
- allow absence of final dot
build-ref do not use rfcview, search for section header with re-loc -> re-sec, re-loc
-> build-ref only (easily) callable from rfcview-mode
through regexps \< and \> but what syntax table?
sometimes download remote xml file, after import concludes there’s nothing new… => investigate: save old one to diff them
=> Ok: RFC newly has errata => Ko: nothing changed in XML file => other possibilities?
sometimes the file is newer but hasn’t changed (mdtm changed, diff empty)
rfcinfo-load rfcinfo: local xml-mdtm (21335 35440) [3 times] Opening FTP connection to ftp.ripe.net via proxy-ftp.esisar.inpg.fr…done Logging in as user [email protected]…done Getting PWD…done Trying passive mode…on Doing CD…done Listing [email protected]:/rfc…done rfcinfo: remote xml-mdtm (21338 11632) Retrieving /[email protected]:/rfc/rfc-index.xml…done Using vacuous schema Saving file home/deleuzec.cache/rfc/rfc-index.xml… Wrote home/deleuzec.cache/rfc/rfc-index.xml Importing RFC info from XML file. This may take some time… Done. No new or changed RFCs. => diffing file shows no difference
why printing xml-mdtm 3 times?
For information about GNU Emacs and the GNU system, type C-h C-a. View mode: type C-h for help, h for commands, q to quit. xml-mdtm (21315 50160) [3 times] Opening FTP connection to ftp.ripe.net…done Logging in as user [email protected]…done Getting PWD…done Trying passive mode…on Doing CD…done Listing [email protected]:/rfc…done Remote rfc-index.xml hasn’t changed. No need to refresh.
when running rfcinfo-show instead, printed only 1 time.
when printing msg for entering rfcinfo-load: rfcinfo-load called one time only
rfcinfo-load xml-mdtm (21315 50160) [3 times] Opening FTP connection to ftp.ripe.net…done Logging in as user [email protected]…done Getting PWD…done
space and S-space to scroll . go to beginning
is really ugly! is way too long. need to rewrite/split it
is it different than rfcinfo-display? => only applies to rfcs?
or at least, use same binding \C-cl
- make rfcinfo-current buffer-local?
to show title when mouse over a docid as a minor-mode ? in irfc ?
with C-c C-f ? (help-mode like) or allow to go back without undoing (emacs way?)
by saving the buffer in cache directory
- function (binding?) to load it?
=> rfcinfo-last-news
get remote mdtm from (nth 5 (file-attributes …)) get old mdtm from local db file
rfcinfo-load: load rfcinfo-xml-mdtm as well refresh: get remote mdtm if equal abort else set rfcinfo-xml-mdtm, call import import does the saving
mdtm is a list of two 16 bit integers
emacs -Q –batch -l ~/.emacs.ftp -l ~/Src/rfcinfo/rfcinfo.el -f rfcinfo-refresh
not well readable, see eg rfc2481
to navigate on blocks
set point on first rfc … in rfcinfo-display? -> do not put - after std docid! but handle possible search failure (for empty std, eg STD1)
include info in the tutorial?!
rfcinfo-refresh should first test if rfcinfo-index-xml-file dir part exists => redéfinir comme utilisant rfcinfo-cache-dir (idem pour rfcinfo-dbfile)
if rfcdir does not exist, at file loading (eg from autoload) rfcinfo-load: condition-case: Can’t load from `rfcinfo-dbfile’
tested by rfcinfo-refresh only?
- also there xml and db files ? redefine variables ?
see irfc-open
which key ?
could be occur in abstracts file, but need to put each one on a separate line (would be nicer anyway?)
putting abstracts in rfcinfo-status bloats it a bit: 28/06/14 rfcinfo.db w/o: 1124729, w/: 3968939 (* 3.5)
therefore we store abstracts in a text file and only store for each rfc the begin and end offset of its abstract in the text file.
eg narrow to region on RFC text
what exactly does abstract element contain in xml index?
some rfcs have no abstract, xml file provides one… some have incomplete abstracts: 1662,1717 …
typos: 7231, 7234 \% 9 September 2003 – rfc-index.html Available
http://www.rfc-editor.org/news-archive.html The RFC Editor web site now contains an XML version of the complete RFC index file. This file, rfc-index.xml, is updated daily to match the venerable textual index file, rfc-index.txt. The corresponding XML schema is rfc-index.xsd. All three files are available on the RFC Database page of the RFC Editor web site.
xml file has some
generate map (viz) and display it in browser display map in emacs? possible control back from browser to emacs? -> click on rfc on map -> display info in emacs…
show what has changed since last update possibly remember such changes?
from list of new RFCs, build two lists
(related rfcs, free text…) alist, integrated in vector during import (or when load-ing?)
save named lists of rfcs edit list (add/remove/change order)
currently only one possible usefullness of several?
simply save as text, need import text as rfcinfo buffer
for import summary, propose saving as ‘New RFCs <date>’ alist string to number list save load (propose completion) forget?
with easy-menu
sb-rfcview.el ? also use w3m to download? unfold/fold updby/obsoby trees ?n show next rfc… SPC/DEL for scroll forward/backward ? debian package doc-rfc (see rfcview)
set-window-dedicated-p ? cache dir should be shared ? look at ffap ? faces for tty
emacs -q –no-site-file -T rfcinfo -nbc -l <rfcinfo> -f rfcinfo-show emacs -q –no-site-file -T rfcinfo -nbc -l <rfcinfo> –eval “(rfcinfo-do-show ‘(1034) nil)”
emacs -q –no-site-file -T rfcinfo -nbc -l Src/rfcinfo/rfcinfo.el –eval “(progn (tool-bar-mode 0) (rfcinfo-do-show "RSVP" nil))”
don’t split window in this case?
pb: caddr not defined! loop => require ‘cl
irfc is a possible replacement for rfcview http://www.emacswiki.org/emacs/Irfc
see ‘rfcview problems’ below
need to use custom-set-variables (bug in irfc.el comments)
plus, need to require irfc before setting that
the regexp is a bit strange (what’s the initial / and final \’ ?)
should not put point at screen middle, but rather top (thus, page number would appear at bottom of screen with ‘standard’ window size)
also irfc
also irfc -> check final dot? -> check previous empty line?
also irfc -> allow blanks for headings at level 2 and more?
(do it by sections/subsections?)
rfcview-use-view-mode-p -flag?
speedbar does its own heading parsing? or uses imenu???
=> outline-minor-mode? needs setting outline-regexp
irfc does provide it (G)
2206 - TOC contains non existant 3.1, 3.2
6691 updates 2385 while it’s already obsolated by 5925
display new RFCs when refreshing? display as list as in sub-series and search diff ? rfcinfo.db has 0 lines!
function deps
search selected if non number in C-c r
rfcinfo-show : STD all stds, etc words : search title
pb std34 (car aucun contenu, rfcinfo-do-show cherche “-” = après le numéro du rfc, mais pas le cas pour un std => changé ~~ en -~ + déplacé save-excursion dans rfcinfo-follow
dep STD10 (ex 772), le 10 est barré (car rfc10 est obsolète et rfcinfo-set-properties utilise rfcinfo-regexp et string-to-number) (+ STD10 est obsolète par 2821, devrait barrer STD10 complet ?) revoir def de rfcinfo-regexp
STD in a dependency should
- display title
- be forwardable
but, this only occurs three times: rfc772, 780, 788… also 2821 !
all have entries in XML file (but sometimes empty)
<bcp-entry> <doc-id>BCP0013</doc-id> <is-also> <doc-id>RFC4289</doc-id> <doc-id>RFC6838</doc-id> </is-also> </bcp-entry>
<fyi-entry> <doc-id>FYI0002</doc-id> <is-also> <doc-id>RFC1470</doc-id> </is-also> </fyi-entry>
<std-entry> <doc-id>STD0003</doc-id> <title>Requirements for Internet Hosts</title> <is-also> <doc-id>RFC1122</doc-id> <doc-id>RFC1123</doc-id> </is-also> </std-entry>
they can be mapped to several RFCs…
all are also referenced from the <rfc-entry>
<rfc-entry> <doc-id>RFC0821</doc-id> <title>Simple Mail Transfer Protocol</title> … <is-also> <doc-id>STD0010</doc-id> </is-also> … </rfc-entry>
an rfc can is-also at most one (std or fiy or bcp) an std/fiy/bcp can is-also several (rfcs)
we need to add is-also info in each rfc-entry
then do we:
- handle three new arrays?
- just search in rfc array?
note that bcp status is redondant with is-also bcp (which also gives number)
STD0010 & 39 are historic
we also need to display std (and other) info : list of mapped rfcs (new kind of dependency - is-also/contains)
they are ignored! see in rfcinfo-fold-all
are there other than rfc2821?
=> will break when number 9999 is exceeded!