rdb man: Titel der Themen-Seiten (dashline, headline ...) aus .TH
This commit is contained in:
@@ -17,6 +17,7 @@ folgen [Semantic Versioning](https://semver.org/lang/de/). Die Version steht in
|
|||||||
- README und `man/row.man` erklären, warum `select` in bash/zsh/ksh einen Syntaxfehler gibt und wie man es trotzdem aufruft.
|
- README und `man/row.man` erklären, warum `select` in bash/zsh/ksh einen Syntaxfehler gibt und wie man es trotzdem aufruft.
|
||||||
|
|
||||||
### Behoben
|
### Behoben
|
||||||
|
- `rdb man dashline` (und `headline`, `backup`, `dbase`, `accounting_ter`) zeigte als Überschrift eine Makrozeile (`dashline -- .PP`). Themen-Seiten ohne Beschreibung nehmen jetzt den Titel aus der `.TH`-Zeile.
|
||||||
- `splittable -0` und mehr als 676 Stücke endeten mit einem Ruby-Abbruch (im zweiten Fall nach 676 geschriebenen Dateien). Jetzt eine Fehlermeldung, und es wird vorher geprüft, damit nichts halb geschrieben wird.
|
- `splittable -0` und mehr als 676 Stücke endeten mit einem Ruby-Abbruch (im zweiten Fall nach 676 geschriebenen Dateien). Jetzt eine Fehlermeldung, und es wird vorher geprüft, damit nichts halb geschrieben wird.
|
||||||
- `rdb man` zeigte `\\select` in den Man-Pages als `\elect`: ein doppelter Backslash wird jetzt zuerst geschützt.
|
- `rdb man` zeigte `\\select` in den Man-Pages als `\elect`: ein doppelter Backslash wird jetzt zuerst geschützt.
|
||||||
|
|
||||||
|
|||||||
+5
-2
@@ -148,8 +148,11 @@ Rdb.register('man', 'Display the manual page for a command', 'man [-g] command')
|
|||||||
args.each do |a|
|
args.each do |a|
|
||||||
f = File.join(Rdb::ROOT, 'man', "#{a == 'Number' ? 'number.c' : a}.man")
|
f = File.join(Rdb::ROOT, 'man', "#{a == 'Number' ? 'number.c' : a}.man")
|
||||||
File.exist?(f) or die("no manual page for '#{a}'")
|
File.exist?(f) or die("no manual page for '#{a}'")
|
||||||
desc = File.read(f)[/^\.PC\s+"?(.*?)"?\s*$/, 1]
|
src = File.read(f)
|
||||||
puts "#{a}#{desc ? " -- #{troff_clean(desc)}" : ''}", '=' * 60
|
desc = src[/^\.PC[ \t]+"?(.*?)"?[ \t]*$/, 1]
|
||||||
|
# topic pages (dash line, head line ...) have an empty .PC; their title is in .TH
|
||||||
|
title = desc.to_s.empty? && src =~ /^\.TH\s+(?:"([^"]*)"|(\S+))/ ? ($1 || $2) : nil
|
||||||
|
puts "#{title || a}#{desc.to_s.empty? ? '' : " -- #{troff_clean(desc)}"}", '=' * 60
|
||||||
puts render_man(File.read(f)), ''
|
puts render_man(File.read(f)), ''
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -481,6 +481,12 @@ class HelpTest < RdbCase
|
|||||||
assert_equal "\e[3;8H", rdb('cursor', '3', '8')
|
assert_equal "\e[3;8H", rdb('cursor', '3', '8')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_man_topic_pages_get_their_title
|
||||||
|
assert_equal 'dash line', rdb('man', 'dashline').lines.first.chomp
|
||||||
|
assert_equal 'head line', rdb('man', 'headline').lines.first.chomp
|
||||||
|
assert_match(/\Arow -- Make a new table/, rdb('man', 'row'))
|
||||||
|
end
|
||||||
|
|
||||||
def test_testall_mentions_every_command
|
def test_testall_mentions_every_command
|
||||||
script = File.read(File.join(DEMO, 'testall.cmds'))
|
script = File.read(File.join(DEMO, 'testall.cmds'))
|
||||||
names = data(rdb('commands')).map(&:first)
|
names = data(rdb('commands')).map(&:first)
|
||||||
|
|||||||
Reference in New Issue
Block a user