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 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
|
.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
. if \nF \{
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "url_handler.pl 1"
.TH url_handler.pl 1 "January 13th, 2020" "0.1.3" "Spawn appropriate viewer for a given URL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
url_handler.pl \- Spawn appropriate viewer for a given URL
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
\&\fBurl_handler.pl\fR \fI\s-1URL\s0\fR
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBurl_handler.pl\fR takes an \s-1URL\s0 as argument and spawns the first executable
viewer found in either \fB\f(CB$BROWSER_\fB\f(BI\s-1SCHEME\s0\fB\fR or \fB\f(CB$BROWSER\fB\fR.
.SH "ENVIRONMENT"
.IX Header "ENVIRONMENT"
.ie n .IP "\fB\fB$BROWSER_\fB\f(BI\s-1SCHEME\s0\fB\fR" 4
.el .IP "\fB\f(CB$BROWSER_\fB\f(BI\s-1SCHEME\s0\fB\fR" 4
.IX Item "$BROWSER_SCHEME"
.PP
The user's preferred utility to browse URLs of type \fI\s-1SCHEME\s0\fR. May actually
consist of a sequence of colon-separated browser commands to be tried in
order until one succeeds. If a command part contains \f(CW%s\fR, the \s-1URL\s0 is
substituted there, otherwise the browser command is simply called with the
\&\s-1URL\s0 as its last argument. %% is replaced by a single percent sign (%), and
\&\f(CW%c\fR is replaced by a colon (:).
Examples:
.ie n .IP "$BROWSER_FTP=""wget:ncftp""" 2
.el .IP "\f(CW$BROWSER_FTP\fR=``wget:ncftp''" 2
.IX Item "$BROWSER_FTP=wget:ncftp"
.PD 0
.ie n .IP "$BROWSER_GOPHER=""gopher:lynx:links""" 2
.el .IP "\f(CW$BROWSER_GOPHER\fR=``gopher:lynx:links''" 2
.IX Item "$BROWSER_GOPHER=lynx:links"
.ie n .IP "$BROWSER_MAILTO=""mutt:pine \-url""" 2
.el .IP "\f(CW$BROWSER_MAILTO\fR=``mutt:pine \-url''" 2
.IX Item "$BROWSER_MAILTO=mutt:pine -url"
.ie n .IP "$BROWSER_NEWS=""lynx""" 2
.el .IP "\f(CW$BROWSER_NEWS\fR=``lynx''" 2
.IX Item "$BROWSER_NEWS=lynx"
.ie n .IP "$BROWSER_NNTP=""lynx""" 2
.el .IP "\f(CW$BROWSER_NNTP\fR=``lynx''" 2
.IX Item "$BROWSER_NNTP=lynx"
.PD
.PP
.ie n .IP "\fB\fB$BROWSER\fB\fR" 4
.el .IP "\fB\f(CB$BROWSER\fB\fR" 4
.IX Item "$BROWSER"
.PP
The user's preferred utility to browse URLs for which there is no special
viewer defined via \fB\f(CB$BROWSER_\fB\f(BI\s-1SCHEME\s0\fB\fR. Again it may actually consist of a
sequence of colon-separated browser commands to be tried in order until one
succeeds. If a command part contains \f(CW%s\fR, the \s-1URL\s0 is substituted there,
otherwise the browser command is simply called with the \s-1URL\s0 as its last
argument. %% is replaced by a single percent sign (%), and \f(CW%c\fR is replaced
by a colon (:).
Examples:
.ie n .IP "$BROWSER=""firefox \-a firefox \-remote openURL\e(%s\e):opera:konqueror:links2 \-g:lynx:w3m""" 2
.el .IP "\f(CW$BROWSER\fR=``firefox \-a firefox \-remote openURL\e(%s\e):opera:konqueror:links2 \-g:lynx:w3m''" 2
.IX Item "$BROWSER=firefox -a firefox -remote openURL):opera:konqueror:links2 -g:lynx:w3m"
.SH "SECURITY"
.IX Header "SECURITY"
\&\fBurl_handler.pl\fR was designed to work together with \fItin\fR\|(1) which only
issues shell escaped absolute URLs thus \fBurl_handler.pl\fR does not try hard
to shell escape its input nor does it convert relative URLs into absolute
ones! If you use \fBurl_handler.pl\fR from other applications be sure to at
least shell escape its input!
.SH "AUTHOR"
.IX Header "AUTHOR"
Urs Janssen <urs@tin.org>
.SH "SEE ALSO"
.IX Header "SEE ALSO"
<http://www.catb.org/~esr/BROWSER/>
|