comparison ch03.roff @ 95:edac7e46a9f2

More text about switches.
author markus schnalke <meillo@marmaro.de>
date Sat, 16 Jun 2012 13:26:30 +0200
parents 093ccf39a45e
children 12348d620245
comparison
equal deleted inserted replaced
94:13bdd6917156 95:edac7e46a9f2
1074 .Pn send 1074 .Pn send
1075 was removed. 1075 was removed.
1076 The special-casing of `the' draft message became irrelevant after 1076 The special-casing of `the' draft message became irrelevant after
1077 the rework of the draft system. 1077 the rework of the draft system.
1078 (See Sec. XXX.) 1078 (See Sec. XXX.)
1079 1079 Equally,
1080 .U3 "Inplace 1080 .Pn comp
1081 lost its
1082 .Sw -file
1083 switch.
1084 The draft folder facility, together with the
1085 .Sw -form
1086 switch, are sufficient.
1087
1088
1089 .U3 "Inplace Editing
1081 .P 1090 .P
1082 .Pn anno 1091 .Pn anno
1083 had the switches 1092 had the switches
1084 .Sw -[no]inplace 1093 .Sw -[no]inplace
1085 to either annotate the message inplace and thus preserve hard links, 1094 to either annotate the message inplace and thus preserve hard links,
1101 .Pn anno . 1110 .Pn anno .
1102 .P 1111 .P
1103 .Pn burst 1112 .Pn burst
1104 also had 1113 also had
1105 .Sw -[no]inplace 1114 .Sw -[no]inplace
1106 switches, but they had different meaning, as written in nmh's 1115 switches, but with different meaning.
1107 .Mp burst(1) 1116 With
1108 man page: 1117 .Sw -inplace ,
1109 .sp 1118 the digest had been replaced by the table of contents (i.e. the
1119 introduction text) and the bursted messages were placed right
1120 after this message, renumbering all following messages.
1121 Also, any trailing text of the digest was lost, though,
1122 in practice, it usually consists of an end-of-digest marker only.
1123 Nontheless, this behavior appeared less elegant than the
1124 .Sw -noinplace
1125 behavior, which already had been the default.
1126 Nmh's
1127 .Mp burst (1)
1128 man page reads:
1129 .sp \n(PDu
1110 .QP 1130 .QP
1111 If -noinplace is given, each digest is preserved, no table 1131 If -noinplace is given, each digest is preserved, no table
1112 of contents is produced, and the messages contained within 1132 of contents is produced, and the messages contained within
1113 the digest are placed at the end of the folder. Other messages 1133 the digest are placed at the end of the folder. Other messages
1114 are not tampered with in any way. 1134 are not tampered with in any way.
1115 .sp 1135 .sp \n(PDu
1116 .P 1136 .LP
1117 With
1118 .Sw -inplace ,
1119 the digest had been replaced by the table of contents (i.e. the
1120 introduction text) and the bursted messages were placed right
1121 after this message, renumbering all following messages.
1122 Also, any trailing text of the digest will be lost, though,
1123 in practice, it usually consists of an end-of-digest marker only.
1124 The decision to drop the 1137 The decision to drop the
1125 .Sw -inplace 1138 .Sw -inplace
1126 behavior was supported by the complexity and possible data loss 1139 behavior was supported by the code complexity and the possible data loss
1127 it introduced. 1140 it caused.
1128 .Sw -noinplace 1141 .Sw -noinplace
1129 was the default behavior already and is the chosen behavior now. 1142 was chosen to be the definitive behavior.
1130 1143
1131 .U3 "mbox and MMDF 1144
1132 .P 1145 .U3 "Forms and Format Strings
1133 packf: file mbox mmdf 1146 .P
1134 rcvpack: mbox mmdf 1147 Historically, the tools that had
1148 .Sw -form
1149 switches to supply a form file had
1150 .Sw -format
1151 switches as well to supply the contents of a form file as a string
1152 on the command line directly.
1153 In consequence, the following two lines equaled:
1154 .VS
1155 scan -form scan.mailx
1156 scan -format "`cat .../scan.mailx`"
1157 VE
1158 The
1159 .Sw -format
1160 switches were dropped in favor for extending the
1161 .Sw -form
1162 switches.
1163 If their argument starts with an equal sign (`='),
1164 then the rest of the argument is taken as a format string,
1165 otherwise the arguments is treated as the name of a format file.
1166 Thus, now the following two lines equal:
1167 .VS
1168 scan -form scan.mailx
1169 scan -form "=`cat .../scan.mailx`"
1170 VE
1171 This rework removed the prefix collision between
1172 .Sw -form
1173 and
1174 .Sw -format .
1175 Now, typing
1176 .Sw -fo
1177 suffices to specify form or format string.
1178 .P
1179 The different meaning of
1180 .Sw -format
1181 for
1182 .Pn repl
1183 and
1184 .Pn forw
1185 was removed in mmh.
1186 .Pn forw
1187 was completely switched to MIME-type forwarding, thus removing the
1188 .Sw -[no]format .
1189 For
1190 .Pn repl ,
1191 the
1192 .Sw -[no]format
1193 switches were reworked to
1194 .Sw -[no]filter
1195 switches.
1196 The
1197 .Sw -format
1198 switches of
1199 .Pn send
1200 and
1201 .Pn post ,
1202 which had a third meaning,
1203 were removed likewise.
1204 Eventually, the ambiguity of the
1205 .Sw -format
1206 switches was resolved by not anymore having any such switch in mmh.
1207
1208
1209 .U3 "MIME Tools
1210 .P
1211 The MIME tools, which were once part of
1212 .Pn mhn ,
1213 had several switches that added little practical value to the programs.
1214 The
1215 .Sw -[no]realsize
1216 switches of
1217 .Pn mhbuild
1218 and
1219 .Pn mhlist
1220 were removed, doing real size calculations always now, as
1221 ``This provides an accurate count at the expense of a small delay.''
1222 This small delay is not noticable on modern systems.
1223 .P
1224 The
1225 .Sw -[no]check
1226 switches were removed together with the support for
1227 .Hd Content-MD5
1228 header fields.
1229 .[
1230 rfc 1864
1231 .]
1232 (See Sec. XXX)
1233 .P
1234 The
1235 .Sw -[no]ebcdicsafe
1236 and
1237 .Sw -[no]rfc934mode
1238 switches of
1239 .Pn mhbuild
1240 were removed because they are considered obsolete.
1241 .P
1242 Content caching of external MIME parts, activated with the
1243 .Sw -rcache
1244 and
1245 .Sw -wcache
1246 switches was completely removed.
1247 External MIME parts are truly rare today, having a caching facility
1248 for them is appeares to be unnecessary.
1249 .P
1250 In pre-MIME times,
1251 .Pn mhl
1252 had covered many tasks that are part of MIME handling today.
1253 Therefore,
1254 .Pn mhl
1255 could be simplified to a large extend, reducing the number of its
1256 switches from 21 to 6.
1257
1258
1259 .U3 "Mail Transfer Switches
1260 .P
1261 With the removal of the mail transfer facilities, a lot of switches
1262 vanished automatically.
1263 .Pn inc
1264 lost 9 switches, namely
1265 .Sw -host ,
1266 .Sw -port ,
1267 .Sw -user ,
1268 .Sw -proxy ,
1269 .Sw -snoop ,
1270 .Sw -[no]pack ,
1271 as well as
1272 .Sw -sasl
1273 and
1274 .Sw -saslmech .
1275 .Pn send
1276 and
1277 .Pn post
1278 lost 11 switches each, namely
1279 .Sw -server ,
1280 .Sw -port ,
1281 .Sw -client ,
1282 .Sw -user ,
1283 .Sw -mail ,
1284 .Sw -saml ,
1285 .Sw -send ,
1286 .Sw -soml ,
1287 .Sw -snoop ,
1288 as well as
1289 .Sw -sasl ,
1290 .Sw -saslmech ,
1291 and
1292 .Sw -tls .
1293 .Pn send
1294 had the switches only to pass them further to
1295 .Pn post ,
1296 because the user would invoke
1297 .Pn post
1298 not directly, but through
1299 .Pn send .
1300 All these switches, except
1301 .Sw -snoop
1302 were usually defined as default switches in the user's profile,
1303 but hardly given in interactive usage.
1304 .P
1305 Of course, those switches did not really ``vanish'', but the configuration
1306 they did was handed over to external MSAs and MRAs.
1307 Instead of setting up the mail transfer in mmh, it is set up in
1308 external tools.
1309 Yet, this simplifies mmh.
1310 Specialized external tools will likely have simple configuration files.
1311 Hence, instead of having one complicated central configuration file,
1312 the configuration of each domain is separate.
1313 Although the user needs to learn to configure each of the tools,
1314 each configuration is likely much simpler.
1315
1316
1317 .U3 "Maildrop Formats
1318 .P
1319 With the removal of MMDF maildrop format support,
1320 .Pn packf
1321 and
1322 .Pn rcvpack
1323 no longer needed their
1324 .Sw -mbox
1325 and
1326 .Sw -mmdf
1327 switches.
1328 .Sw -mbox
1329 is the sole behavior now.
1330 In the same go,
1331 .Pn packf
1332 was reworked (see Sec. XXX) and its
1333 .Sw -file
1334 switch became unnecessary.
1335
1336
1337 .U3 "Terminal Magic
1338 .P
1339 Mmh's tools will no longer clear the screen (\c
1340 .Pn scan 's
1341 and
1342 .Pn mhl 's
1343 .Sw -[no]clear
1344 switches).
1345 Neither will
1346 .Pn mhl
1347 ring the bell (\c
1348 .Sw -[no]bell )
1349 nor page the output itself (\c
1350 .Sw -length ).
1351 .P
1352 Generally, the pager to use is no longer specified with the
1353 .Sw -[no]moreproc
1354 command line switches for
1355 .Pn mhl
1356 and
1357 .Pn show /\c
1358 .Pn mhshow .
1359 .P
1360 .Pn prompter
1361 lost its
1362 .Sw -erase
1363 and
1364 .Sw -kill
1365 switches because today the terminal cares for the line editing keys.
1366
1367
1368 .U3 "Header Printing
1369 .P
1370 .Pn folder 's
1371 data output is self-explaining enough that
1372 displaying the header line makes few sense.
1373 Hence, the
1374 .Sw -[no]header
1375 switch was removed and headers are never printed.
1376 .P
1377 In
1378 .Pn mhlist ,
1379 the
1380 .Sw -[no]header
1381 switches were removed, too.
1382 But in this case headers are always printed,
1383 because the output is not self-explaining.
1384 .P
1385 .Pn scan
1386 also had
1387 .Sw -[no]header
1388 switches.
1389 Printing the header had been sensible until the introduction of
1390 format strings made it impossible to display the column headings.
1391 Only the folder name and the current date remained to be printed.
1392 As this information can be perfectly retrieved by
1393 .Pn folder
1394 and
1395 .Pn date ,
1396 consequently, the switches were removed.
1397 .P
1398 By removing all
1399 .Sw -header
1400 switches, the collision with
1401 .Sw -help
1402 on the first two letters was resolved.
1403 Currently,
1404 .Sw -h
1405 evaluates to
1406 .Sw -help
1407 for all tools of mmh.
1408
1409
1410 .U3 "Suppressing Edits or the WhatNow Shell
1411 .P
1412 The
1413 .Sw -noedit
1414 switches of
1415 .Pn comp ,
1416 .Pn repl ,
1417 .Pn forw ,
1418 .Pn dist ,
1419 and
1420 .Pn whatnow
1421 was removed, but it can now be replaced by specifying
1422 .Sw -editor
1423 with an empty argument.
1424 (Specifying
1425 .Cl "-editor true
1426 is nearly the same, only differing by the previous editor being set.)
1427 .P
1428 The more important change is the removal of the
1429 .Sw -nowhatnowproc
1430 switch.
1431 This switch had introduced an awkward behavior, as explained in nmh's
1432 man page for
1433 .Mp comp (1):
1434 .QP
1435 The \-editor editor switch indicates the editor to use for
1436 the initial edit. Upon exiting from the editor, comp will
1437 invoke the whatnow program. See whatnow(1) for a discussion
1438 of available options. The invocation of this program can be
1439 inhibited by using the \-nowhatnowproc switch. (In truth of
1440 fact, it is the whatnow program which starts the initial
1441 edit. Hence, \-nowhatnowproc will prevent any edit from
1442 occurring.)
1443 .P
1444 Effectively, the
1445 .Sw -nowhatnowproc
1446 switch stored a copy of the form file into the draft folder.
1447 As
1448 .Cl "-whatnowproc true
1449 causes the same behavior, the
1450 .Sw -nowhatnowproc
1451 switch was removed for being redundant.
1452 Likely, however, the intention for specifying
1453 .Sw -nowhatnowproc
1454 is sending a fully prepared form file at once.
1455 This can be done with
1456 .Cl "-whatnowproc send" .
1457
1458
1459 .U3 "Compatibility Switches
1460 .BU
1461 The hidden
1462 .Sw -[no]total
1463 switches of
1464 .Pn flist .
1465 They were simply the inverse of the visible
1466 .Sw -[no]fast
1467 switches:
1468 .Sw -total
1469 was
1470 .Sw -nofast
1471 and
1472 .Sw -nototal
1473 was
1474 .Sw -fast .
1475 I removed the
1476 .Sw -[no]total
1477 legacy.
1478 .BU
1479 The
1480 .Sw -subject
1481 switch of
1482 .Pn sortm
1483 existed for compatibility only.
1484 It can be fully replaced by
1485 .Cl "-textfield subject
1486 thus it was removed.
1487
1488
1489 .U3 "Various
1490 .BU
1491 In order to avoid prefix collisions amoung switch names, the
1492 .Sw -version
1493 switch was renamed to
1494 .Sw -Version
1495 (with capital `V').
1496 Every program has the
1497 .Sw -version
1498 switch but its first three letters collided with the
1499 .Sw -verbose
1500 switch, present in many programs.
1501 The rename solved this problem once for all.
1502 Although this rename breaks a basic interface, having the
1503 .Sw -V
1504 abbreviation to display the version information, isn't all too bad.
1505 .BU
1506 .Sw -[no]preserve
1507 of
1508 .Pn refile
1509 was removed because what use was it anyway?
1510 .QP
1511 Normally when a message is refiled, for each destination
1512 folder it is assigned the number which is one above the current
1513 highest message number in that folder. Use of the
1514 \-preserv [sic!] switch will override this message renaming, and try
1515 to preserve the number of the message. If a conflict for a
1516 particular folder occurs when using the \-preserve switch,
1517 then refile will use the next available message number which
1518 is above the message number you wish to preserve.
1519 .BU
1520 The removal of the
1521 .Sw -[no]reverse
1522 switches of
1523 .Pn scan
1524 is a bug fix, supported by the comments
1525 ``\-[no]reverse under #ifdef BERK (I really HATE this)''
1526 by Rose and
1527 ``Lists messages in reverse order with the `\-reverse' switch.
1528 This should be considered a bug.'' by Romine in the documentation.
1529 The question remaining is why neither Rose and Romine had fixed this
1530 bug in the Eighties when they wrote these comments nor has anyone
1531 thereafter.
1135 1532
1136 1533
1137 .ig 1534 .ig
1138 1535
1139 ap: width 1536 forw: [no]dashstuffing(mhl)
1140 dp: width 1537
1141 burst: [no]quiet 1538 mhshow: [no]pause [no]serialonly
1142 flist: [no]total
1143 folder: [no]header
1144
1145 comp: file
1146 dist: file(msh)
1147 forw: filter, [no]mime, [no]dashstuffing(mhl)
1148 repl: [no]format/filter width
1149 1539
1150 mhmail: resent queued 1540 mhmail: resent queued
1151 inc: snoop, (pop) 1541 inc: snoop, (pop)
1152 mhbuild: [no]check, [no]ebcdicsafe, [no]headers, [no]list, [no]realsize 1542
1153 [no]rfc934mode, [no]contentid (caching) 1543 mhl: [no]faceproc folder sleep
1154 mhlist: [no]check [no]headers [no]realsize (caching)
1155 mhstore: [no]check [no]verbose (caching)
1156
1157 scan: [no]clear [no]header [no]reverse
1158
1159 mhl: [no]bell [no]clear [no]faceproc folder [no]moreproc length sleep
1160 [no]dashstuffing(forw) digest list volume number issue number 1544 [no]dashstuffing(forw) digest list volume number issue number
1161 mhshow: [no]check [no]pause [no]serialonly (caching) [no]moreproc 1545
1162 length width 1546 prompter: [no]doteof
1163
1164 prompter: erase kill [no]doteof
1165 1547
1166 refile: [no]preserve [no]unlink [no]rmmproc 1548 refile: [no]preserve [no]unlink [no]rmmproc
1167 1549
1168 send: filter [no]format [no]forward [no]mime [no]msgid 1550 send: [no]forward [no]mime [no]msgid
1169 [no]push split [no]unique (sasl) width snoop [no]dashstuffing 1551 [no]push split [no]unique (sasl) width snoop [no]dashstuffing
1170 attach attachformat 1552 attach attachformat
1171 whatnow: (noedit) attach 1553 whatnow: (noedit) attach
1172 1554
1173 slocal: [no]suppressdups 1555 slocal: [no]suppressdups
1174 1556
1175 sortm: subject 1557 spost: [no]filter [no]backup width [no]push idanno
1176
1177 spost: [no]filter [no]format [no]remove [no]backup width [no]push idanno
1178 [no]check(whom) whom(whom) 1558 [no]check(whom) whom(whom)
1179 1559
1180 whom: ??? 1560 whom: ???
1181 1561
1182
1183 (pop) host, port, user, [no]pack, proxy
1184 (smtp) mail saml send soml client server user port
1185 (sasl) sasl, saslmech
1186 (tls)
1187 (caching) rcache wcache
1188
1189 noedit
1190 nowhatnowproc
1191
1192
1193 format -> form
1194
1195 version -> Version
1196
1197 .. 1562 ..
1563
1198 1564
1199 .ig 1565 .ig
1200 1566
1201 .P 1567 .P
1202 To ease typing, the switches can be abbreviated as much as the remaining 1568 To ease typing, the switches can be abbreviated as much as the remaining
1230 Reducing switch prefix collisions, shortens the necessary prefix lenght 1596 Reducing switch prefix collisions, shortens the necessary prefix lenght
1231 the user must type. 1597 the user must type.
1232 Having less switches helps best. 1598 Having less switches helps best.
1233 1599
1234 .. 1600 ..
1601
1602
1603
1235 1604
1236 .H1 "Modernizing 1605 .H1 "Modernizing
1237 1606
1238 1607
1239 .H2 "Removal of Code Relicts 1608 .H2 "Removal of Code Relicts