Skip to content

Latest commit

 

History

History
689 lines (522 loc) · 20.1 KB

TODO.org

File metadata and controls

689 lines (522 loc) · 20.1 KB

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?

bugs

build-ref fails with irfc

not a bug since build-ref not documented -> now uses toc

-next-section stops on BCPxxx

because it searches for unindented lines

importing xml loops?

can’t reproduce

if cancel during import, then believes is up to date

BCP

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

fix

-lookup-subseries, then -get-rfc-status => if more than 1, use -get-std-status, generalized? -get-std-status

undo allowed after displaying news summary

not ok if nothing in undo stack previously we undo to empty window, plus have no way to redo… (except ‘N’)

failure on rfc783

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

letter-name sections

rfc6585-B not recognized as part of the docid

used syntax: rfc2205 APPENDIX A. then A.1 rfc4035 Appendix B. then B.1. others?

C-c r in rfc uses this one as arg

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?

rfcinfo-show with empty string

or single letter

irfc: buffer name is not rfcxxxx.txt

if irfc-buffer-name-includes-title is t (default)

rfcinfo commands do not recognize the buffer holds an rfc

irfc: next/prev link

put point on [ or ] docid at point misses the docid

first use

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

Invalid face reference: nil [30 times]

lots of

errata

on 1034: “RFC STD13 has no errata” on msg ‘RFC xxxx has no errata’ xxx has text properties

rfcinfo-mode

raises error if not in proper buffer, but the mode is set anyway! also see ‘saving’ item

when title search returns 0 entries

let: Search failed: “~”

rfcinfo-click

calls unknown function rfcinfo-status => FIXed to rfcinfo-show

current problems

use toc

rfcview

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

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.”)

import is loooong

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)

optimize abstract import -> no

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

xml abstract should not include ‘[series]’ at the end

rfcinfo-open should not automatically download a one digit rfc number

automatic for 3 digits or more

should not “load” ‘cl?

see cl info, section 2 -> (eval-when-compile (require ‘cl))

title search could be case sensitive

for acronyms like HAS

build-ref fails with irfc

not a bug since build-ref not documented

does not update ‘+’ (local availability status) when downloaded

sets mark two times while loading?

RFC download part should go in rfcview?

is already handled by irfc see if it’s ok and better

clean up xml import code

+l in ref counts visible lines in rfcview mode… => no?

errata for unknown, browser displays whole list of errata

errata should read from minibuffer if not found at point

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

rfc1035-5 currently fails (item number 5 found)

same rfc2205-1 -> probably only applies to level 1 headings

scroll useless (except if window too small)

locs

build sec with +l from point -> based on rfcview headings

locs, use rfcview header detection ;;

  1. correct them to not miss any (nor catch other things)
  2. allow absence of final dot

build-ref do not use rfcview, search for section header with re-loc -> re-sec, re-loc

how to handle rfcview optional dependency?

-> build-ref only (easily) callable from rfcview-mode

init code rfcinfo-load should rather be an autoload or something like that?

possibly to correct

include comment in db file

rename refresh to update

searching word in title

through regexps \< and \> but what syntax table?

rfcinfo-set-properties -> fontify?

document how change summary is computed

newer test

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

running refresh from fresh started emacs

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

clean-up

.cache rfc files should not be writable

scroll bindings

space and S-space to scroll . go to beginning

rfcinfo-import

is really ugly! is way too long. need to rewrite/split it

rfcinfo-viewfile

is it different than rfcinfo-display? => only applies to rfcs?

ideas

rfcinfo links, possibly use org-mode links (see notes.org)

or at least, use same binding \C-cl

‘I’ to close show window (convenient when opened from rfc buffer)

+/- for next/previous rfc

  • make rfcinfo-current buffer-local?

word at point as title search suggestion

search for near point docid

tooltip on docids

to show title when mouse over a docid as a minor-mode ? in irfc ?

allow going forward in history

with C-c C-f ? (help-mode like) or allow to go back without undoing (emacs way?)

remember last news summary

by saving the buffer in cache directory

  • function (binding?) to load it?

=> rfcinfo-last-news

test if remote xml file is newer

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

batch refresh

emacs -Q –batch -l ~/.emacs.ftp -l ~/Src/rfcinfo/rfcinfo.el -f rfcinfo-refresh

striked 8/0

not well readable, see eg rfc2481

tab/S-tab

to navigate on blocks

when displaying STD

set point on first rfc … in rfcinfo-display? -> do not put - after std docid! but handle possible search failure (for empty std, eg STD1)

propose to refresh if apparently run for the first time

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’

create cachedir if does not exist

tested by rfcinfo-refresh only?

  • also there xml and db files ? redefine variables ?

see irfc-open

customization for faces

delete unused rfc from cache dir

priority

clean-up non-local arg in read-docid

STD3 updates STD7? check this.

use menu Elisp/check documentation strings

a word about erratas

make ref (doc/integration)

additional features

allow going forward in history

which key ?

search author

search in abstract

could be occur in abstracts file, but need to put each one on a separate line (would be nicer anyway?)

show abstract

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.

if rfc is cached, use its very abstract?

eg narrow to region on RFC text

xml abstracts

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.

show keywords

xml file has some

search keywords

show recursive dependencies

generate graph for graphviz

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…

3-lines status: show numbers of obsolating/updating rfcs?

diff

show what has changed since last update possibly remember such changes?

newly published RFC

status changes

updated/obsolated changes

from list of new RFCs, build two lists

sub-series change?

user annotations

(related rfcs, free text…) alist, integrated in vector during import (or when load-ing?)

user lists

save named lists of rfcs edit list (add/remove/change order)

multiple buffer

currently only one possible usefullness of several?

saving buffer

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?

provide menu

with easy-menu

others

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

using rfcinfo out of emacs

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

irfc is a possible replacement for rfcview http://www.emacswiki.org/emacs/Irfc

bugs inherited from rfcview

see ‘rfcview problems’ below

installation via (setq irfc-assoc-mode t) does not work

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 provide a mode hook

irfc-page-prev

should not put point at screen middle, but rather top (thus, page number would appear at bottom of screen with ‘standard’ window size)

show page number in mode line?

lacks ‘t’ to switch to text-mode

rfcview problems

should provide a mode hook

loops on rfc1321

also irfc

rfcview in debian emacs-goodies-el (but 0.12 instead of 0.13)

bug rfc1035-3.4.2, 25 (SMTP) (section 3.4.2, taken as heading)

also irfc -> check final dot? -> check previous empty line?

misses headings not a column 0 (eg rfc2205)

also irfc -> allow blanks for headings at level 2 and more?

misses toc in rfc2206 (no end dot in toc entries)

headings menu poorly cut when large

(do it by sections/subsections?)

does not detect multiple references (2205 -> [RSVP93, RFC 1633])

rfcview-use-view-mode-p -flag?

in speedbar, sections are in reverse order? (rfc1035-3)

speedbar does its own heading parsing? or uses imenu???

see shrink-window-if-larger-than-buffer?

rfcview toadds

next/previous heading navigation ala outline or org-mode

=> outline-minor-mode? needs setting outline-regexp

goto table of contents

irfc does provide it (G)

RFCs with problems

2206 - TOC contains non existant 3.1, 3.2

6691 updates 2385 while it’s already obsolated by 5925

done

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 !

BCP, FIY, STD-lookup

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)

so,

we need to add is-also info in each rfc-entry

then do we:

  1. handle three new arrays?
  2. 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)

how are STD dependency cross-references currently handled?

they are ignored! see in rfcinfo-fold-all

are there other than rfc2821?

NIC, IEN, RTR (external references)

future

rfcinfo-fold-all number extracting assumes string format is RFCxxxx

=> will break when number 9999 is exceeded!

evolve into a dired-like interface?