aboutsummaryrefslogtreecommitdiff
path: root/gnu/usr.bin/man/TODO
blob: ab504757c7ff023b3681bcedac554f783ad48ae8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
$FreeBSD: src/gnu/usr.bin/man/TODO,v 1.1.1.1.58.1.8.1 2010/12/21 17:10:29 kensmith Exp $

Things that would be nice but aren't really necessary:

0.  Update the documentation.

XX  Come up with an easier way to install this thing.  There are now
    lots of options and dependent flags to set.  Should I worry too
    much about this?

XX  Properly handle commands like `man 3f intro' when the name of the
    file we want is something like .../man3/intro.3f.  The way this is
    done right now seems sort of kludgey but it mostly works.  See
    man.c for details.

2.  Malloc everything instead of having fixed limits... Or at least
    check the limits everywhere.  If you're paranoid about this, make
    the limits big (famous last words: really, there aren't that many
    things that could go wrong :-).

3.  Try to do a little better job of memory management.  There are a
    lot of little temporary strings that are malloc'd and never freed.
    This is probably ok for a standalone program but not so good if
    you wanted to call man() from another program.

XX  Come up with a clear view of the cat directory file permissions
    problem.  What's a good solution, other than having man run setuid
    to some special user?  (Make directories writable by all, cat
    files 666.)

XX  Allow a compile time option that makes man run setuid to some
    other user that owns all the cat pages, so that they don't have to
    be world writable.

XX  Allow man to deal with compressed (.Z) frozen (.F) and yabba (.Y)
    cat files.  Frozen files are compressed files using freeze/melt,
    some combination of LZW and tree coding.  Sources for it came out
    on comp.sources.misc or alt.sources or ... a few months ago.
    Yabba files are compressed using yabba/unyabba, a data compression
    scheme posted to alt.sources by Dan Bernstein.

XX  Choose a more reasonable default for the search order.  Perhaps
    this: 1, n, l, 6, 8, 2, 3, 4, 5, 7, p, o

XX  Fix glob.c so it doesn't need alloca, and/or fix it so that it can
    work on a Sun:

        #ifdef __GNUC__
        #define alloca __builtin_alloca
        #else /* !__GNUC__ */
        #ifdef sparc
        #include <alloca.h>
        #endif /* sparc */
        #endif /* __GNUC__ */

XX  Add some way to automatically to run preprocessors.  The Sun man
    program has a convention that the first line of the man page can
    indicate which preprocessors should be run.  Here's an excerpt from
    its man page:

    Preprocessing Manual Pages
      If the first line is a string of the form:

          '\"  X

      where  X is separated from the the `"' by a single SPACE and
      consists of any combination of characters in  the  following
      list,  man  pipes  its input to troff(1) or nroff(1) through
      the corresponding preprocessors.

          e    eqn(1), or neqn for nroff
          r    refer(1)
          t    tbl(1), and col(1V) for nroff
          v    vgrind(1)

      If eqn or neqn is invoked, it will  automatically  read  the
      file /usr/pub/eqnchar (see eqnchar(7)).

XX  Have manpath stat() the directories in MANPATH to avoid including
    directories that don't exist.  Some versions of man and whatis
    complain when the directories (like /usr/new/man) don't exist.

XX  Pipe the output of apropos and whatis through a pager.

XX  I've been using your man(1) package for a while now and I ran into
    a problem with the X man pages that use tbl commands.  Is it
    possible to configure your man(1) package to use a general command
    string.  For example, a user could set an environment variable:

    setenv ROFFLINE 'pic $* | tbl | nroff -man'

13. Fix makewhatis so that it can handle stuff like this (from the
    Motif 1.1 man pages):

      .TH XmRowColumn 3X "" "" "" ""
      .SH NAME
      .mc |
      \fBXmRowColumn \(em the RowColumn widget class.\fP
      .mc
      .iX "XmRowColumn"
      .iX "widget class" "RowColumn"
      .sp 1
      .SH SYNOPSIS

14. Consider changing the format of the awk command's printf to use
    "%s" instead of the standard 20.20s to accomodate the extra long
    file names used by Motif.  Maybe there's a better way to handle
    this?

XX  Add ability to run man on a local file

16. Handle per-tree tmac macros
    
XX  Allow user-definable section search order via -S or $MANSECT.
    Thus programmers can get stty(3) before stty(1).

XX  Show all the places you would find a man page (-w option) and in
    what order.

19. Support for multi-char sections like man1m/*.1m or manavs/*.avs
    (can I have a section that doesn't start with a numeral?)

20. Implement man -K for regexp apropos

21. An option to grep through all the man pages in $MANPATH