comparison discussion.roff @ 225:d83ab437e3a6

Removed FIXMEs (XXX) in the sources, those that I won't fix.
author markus schnalke <meillo@marmaro.de>
date Sun, 15 Jul 2012 20:00:14 +0200
parents b0e83cfde2bf
children 27c28990b844
comparison
equal deleted inserted replaced
224:b0e83cfde2bf 225:d83ab437e3a6
89 to be beaten by projects that focus exclusively on the creation 89 to be beaten by projects that focus exclusively on the creation
90 of a homogeneous system by integrating existing mail components. 90 of a homogeneous system by integrating existing mail components.
91 .P 91 .P
92 Usually, the limiting resource in the community development of 92 Usually, the limiting resource in the community development of
93 free software is man power. 93 free software is man power.
94 .\" XXX FIXME ref!
95 If the development effort is spread over a large development area, 94 If the development effort is spread over a large development area,
96 it becomes more difficult to compete with the specialists in the 95 it becomes more difficult to compete with the specialists in the
97 various fields. 96 various fields.
98 The concrete situation for MH-based mail systems is even tougher, 97 The concrete situation for MH-based mail systems is even tougher,
99 given their small and aged community, concerning both developers and users. 98 given their small and aged community, concerning both developers and users.
188 They likely are superior to the internal versions that were removed. 187 They likely are superior to the internal versions that were removed.
189 Additionally, the best suiting programs can be chosen freely. 188 Additionally, the best suiting programs can be chosen freely.
190 .P 189 .P
191 As it had already been possible to use an external MSA and MRA, 190 As it had already been possible to use an external MSA and MRA,
192 why should the internal version not be kept for convenience? 191 why should the internal version not be kept for convenience?
193 .\" XXX commas correct?
194 Transfered to a different area, the question, 192 Transfered to a different area, the question,
195 whether there is sense in having a fall-back pager in all 193 whether there is sense in having a fall-back pager in all
196 the command line tools for the cases when 194 the command line tools for the cases when
197 .Pn more 195 .Pn more
198 or 196 or
253 .LI 2 251 .LI 2
254 By depending on a library that provides the function. 252 By depending on a library that provides the function.
255 .LI 3 253 .LI 3
256 By depending on a program that provides the function. 254 By depending on a program that provides the function.
257 .LP 255 .LP
258 .\" XXX Rework sentence
259 While implementing the function in the project itself leads to the 256 While implementing the function in the project itself leads to the
260 largest increase in code size and requires the most maintenance 257 largest increase in code size and requires the most maintenance
261 and development work, 258 and development work,
262 it keeps the project's dependence on other software lowest. 259 it keeps the project's dependence on other software lowest.
263 Using libraries or external programs requires less maintenance work 260 Using libraries or external programs requires less maintenance work
265 Programs have the smallest interfaces and provide the best separation, 262 Programs have the smallest interfaces and provide the best separation,
266 but possibly limit the information exchange. 263 but possibly limit the information exchange.
267 External libraries are more strongly connected than external programs, 264 External libraries are more strongly connected than external programs,
268 thus information can be exchanged in a more flexible manner. 265 thus information can be exchanged in a more flexible manner.
269 Adding code to a project increases maintenance work. 266 Adding code to a project increases maintenance work.
270 .\" XXX ref
271 As implementing complex functions in the project itself adds 267 As implementing complex functions in the project itself adds
272 a lot of code, this should be avoided if possible. 268 a lot of code, this should be avoided if possible.
273 Thus, the dependencies only change in their character, 269 Thus, the dependencies only change in their character,
274 not in their existence. 270 not in their existence.
275 In mmh, library dependencies on 271 In mmh, library dependencies on
318 .Fn /etc/group 314 .Fn /etc/group
319 for consistency, which is completely unrelated to email. 315 for consistency, which is completely unrelated to email.
320 A tool like 316 A tool like
321 .Pn conflict 317 .Pn conflict
322 is surely useful, but it should not be shipped with mmh. 318 is surely useful, but it should not be shipped with mmh.
323 .\" XXX historic reasons?
324 .BU 319 .BU
325 .Pn rcvtty 320 .Pn rcvtty
326 was removed 321 was removed
327 .Ci 14767c94b3827be7c867196467ed7aea5f6f49b0 322 .Ci 14767c94b3827be7c867196467ed7aea5f6f49b0
328 because its use case of writing to the user's terminal 323 because its use case of writing to the user's terminal
337 .VS 332 .VS
338 scan -file - | write `id -un` 333 scan -file - | write `id -un`
339 VE 334 VE
340 .BU 335 .BU
341 .Pn viamail 336 .Pn viamail
342 .\" XXX was macht viamail
343 was removed 337 was removed
344 .Ci eda72d6a7a7c20ff123043fb7f19c509ea01f932 338 .Ci eda72d6a7a7c20ff123043fb7f19c509ea01f932
345 when the new attachment system was activated, because 339 when the new attachment system was activated, because
346 .Pn forw 340 .Pn forw
347 could then cover the task itself. 341 could then cover the task itself.
350 was rewritten as a shell script wrapper around 344 was rewritten as a shell script wrapper around
351 .Pn forw . 345 .Pn forw .
352 .Ci 0e82199cf3c991a173e0ac8aa776efdb3ded61e6 346 .Ci 0e82199cf3c991a173e0ac8aa776efdb3ded61e6
353 .BU 347 .BU
354 .Pn msgchk 348 .Pn msgchk
355 .\" XXX was macht msgchk
356 was removed 349 was removed
357 .Ci bb9360ead7eb7a3fedcce2eeedfc660014e41dbe , 350 .Ci bb9360ead7eb7a3fedcce2eeedfc660014e41dbe ,
358 because it lost its use case when POP support was removed. 351 because it lost its use case when POP support was removed.
359 A call to 352 A call to
360 .Pn msgchk 353 .Pn msgchk
463 456
464 .H2 "Displaying Messages 457 .H2 "Displaying Messages
465 .Id mhshow 458 .Id mhshow
466 .P 459 .P
467 Since the very beginning, already in the first concept paper, 460 Since the very beginning, already in the first concept paper,
468 .\" XXX ref!!!
469 .Pn show 461 .Pn show
470 had been MH's message display program. 462 had been MH's message display program.
471 .Pn show 463 .Pn show
472 mapped message numbers and sequences to files and invoked 464 mapped message numbers and sequences to files and invoked
473 .Pn mhl 465 .Pn mhl
580 .Pn mhshow 572 .Pn mhshow
581 was reworked to behave more like 573 was reworked to behave more like
582 .Pn show 574 .Pn show
583 first (cf. Sec. 575 first (cf. Sec.
584 .Cf mhshow ). 576 .Cf mhshow ).
585 .\" XXX code commits?
586 Once the tools behaved more alike, the replacing appeared to be 577 Once the tools behaved more alike, the replacing appeared to be
587 even more natural. 578 even more natural.
588 Today, mmh's new 579 Today, mmh's new
589 .Pn show 580 .Pn show
590 has become the one single message display program once again, 581 has become the one single message display program once again,
597 Still, removing the old 588 Still, removing the old
598 .Pn show 589 .Pn show
599 hurts in one regard: It had been such a simple program. 590 hurts in one regard: It had been such a simple program.
600 Its lean elegance is missing from the new 591 Its lean elegance is missing from the new
601 .Pn show , 592 .Pn show ,
602 .\" XXX 593 but there is no alternative;
603 however there is no alternative;
604 supporting MIME demands higher essential complexity. 594 supporting MIME demands higher essential complexity.
605
606 .ig
607 XXX
608 Consider including text on scan listings here
609
610 Scan listings shall not contain body content. Hence, removed this feature.
611 Scan listings shall operator on message headers and non-message information
612 only. Displaying the beginning of the body complicates everything too much.
613 That's no surprise, because it's something completely different. If you
614 want to examine the body, then use show(1)/mhshow(1).
615 Changed the default scan formats accordingly.
616 .Ci 70b2643e0da8485174480c644ad9785c84f5bff4
617 ..
618
619 595
620 596
621 597
622 .H2 "Configure Options 598 .H2 "Configure Options
623 .P 599 .P
678 With 654 With
679 .Sw --with-smtpservers 655 .Sw --with-smtpservers
680 default SMTP servers could be specified 656 default SMTP servers could be specified
681 .Ci 128545e06224233b7e91fc4c83f8830252fe16c9 . 657 .Ci 128545e06224233b7e91fc4c83f8830252fe16c9 .
682 Both of them became irrelevant when the SMTP transport service was removed. 658 Both of them became irrelevant when the SMTP transport service was removed.
683 .\" XXX code ref
684 In mmh, all messages are handed over to 659 In mmh, all messages are handed over to
685 .Pn sendmail 660 .Pn sendmail
686 for transportation. 661 for transportation.
687 662
688 663
689 .U3 "Backup Prefix 664 .U3 "Backup Prefix
690 .P 665 .P
691 The backup prefix is the string that was prepended to message 666 The backup prefix is the string that was prepended to message
692 filenames to tag them as deleted. 667 filenames to tag them as deleted.
693 By default it had been the comma character (`\fL,\fP'). 668 By default it had been the comma character (`\fL,\fP').
694 .\" XXX Zeitlich ordnen
695 In July 2000, Kimmo Suominen introduced 669 In July 2000, Kimmo Suominen introduced
696 the configure option 670 the configure option
697 .Sw --with-hash-backup 671 .Sw --with-hash-backup
698 to change the default to the hash character `\f(CW#\fP'. 672 to change the default to the hash character `\f(CW#\fP'.
699 This choice was probably personal preference, but, 673 This choice was probably personal preference, but,
847 .I ndbm 821 .I ndbm
848 vanished and 120 lines of complex autoconf code could be saved 822 vanished and 120 lines of complex autoconf code could be saved
849 .Ci ecd6d6a20cb7a1507e3a20d6c4cb3a1cf14c6bbf . 823 .Ci ecd6d6a20cb7a1507e3a20d6c4cb3a1cf14c6bbf .
850 The change removed functionality but that is considered minor to the 824 The change removed functionality but that is considered minor to the
851 improvement of dropping the dependency and the complex autoconf code. 825 improvement of dropping the dependency and the complex autoconf code.
852 .\" XXX argument: slocal ist sowieso nicht teil vom mmh kern 826
853 827
854 .U3 "MH-E Support 828 .U3 "MH-E Support
855 .P 829 .P
856 The configure option 830 The configure option
857 .Sw --disable-mhe 831 .Sw --disable-mhe
950 The decision to remove this username_extension masquerading 924 The decision to remove this username_extension masquerading
951 was motivated by the fact that 925 was motivated by the fact that
952 .Pn spost 926 .Pn spost
953 had not supported it yet. 927 had not supported it yet.
954 Username extensions can be used in mmh, but less convenient. 928 Username extensions can be used in mmh, but less convenient.
955 .\" XXX covered by next paragraph 929 .\" XXX In the format file: %(getenv USERNAME_EXTENSION)
956 .\" XXX format file %(getenv USERNAME_EXTENSION)
957 .Ci 2abae0bfd0ad5bf898461e50aa4b466d641f23d9 930 .Ci 2abae0bfd0ad5bf898461e50aa4b466d641f23d9
958 .P 931 .P
959 The 932 The
960 .I draft_from 933 .I draft_from
961 masquerading type instructed 934 masquerading type instructed
1007 980
1008 .H2 "Command Line Switches 981 .H2 "Command Line Switches
1009 .P 982 .P
1010 The command line switches of MH tools follow a style similar to 983 The command line switches of MH tools follow a style similar to
1011 the X Window System style. 984 the X Window System style.
1012 .\" XXX ref
1013 The switches consist of a single dash (`\fL-\fP') followed by a word. 985 The switches consist of a single dash (`\fL-\fP') followed by a word.
1014 For example 986 For example
1015 .Cl -truncate . 987 .Cl -truncate .
1016 To ease typing, the word can be abbreviated, given the remaining 988 To ease typing, the word can be abbreviated, given the remaining
1017 prefix is unambiguous. 989 prefix is unambiguous.
1045 If one task should be accomplished in various ways, 1017 If one task should be accomplished in various ways,
1046 switches are a good approach to alter the behavior of a program. 1018 switches are a good approach to alter the behavior of a program.
1047 Changing the behavior of programs provides flexibility and customization 1019 Changing the behavior of programs provides flexibility and customization
1048 to users, but at the same time it complicates the code, 1020 to users, but at the same time it complicates the code,
1049 the documentation, and the usage of the program. 1021 the documentation, and the usage of the program.
1050 .\" XXX: Ref
1051 Therefore, the number of switches should be kept small. 1022 Therefore, the number of switches should be kept small.
1052 A small set of well-chosen switches is best. 1023 A small set of well-chosen switches is best.
1053 Usually, the number of switches increases over time. 1024 Usually, the number of switches increases over time.
1054 Already in 1985, Rose and Romine have identified this as a major 1025 Already in 1985, Rose and Romine have identified this as a major
1055 problem of MH: 1026 problem of MH:
1639 let's push forward, aggressively. 1610 let's push forward, aggressively.
1640 .QE 1611 .QE
1641 .LP 1612 .LP
1642 I did so already in the months before. 1613 I did so already in the months before.
1643 I pushed forward. 1614 I pushed forward.
1644 .\" XXX semicolon ?
1645 I simply dropped the cruft. 1615 I simply dropped the cruft.
1646 .P 1616 .P
1647 The decision to drop a feature was based on literature research and 1617 The decision to drop a feature was based on literature research and
1648 careful thinking, but whether having had contact with this particular 1618 careful thinking, but whether having had contact with this particular
1649 feature within my own computer life served as a rule of thumb. 1619 feature within my own computer life served as a rule of thumb.
1652 Hence, others can comprehend my view and argue for undoing the change 1622 Hence, others can comprehend my view and argue for undoing the change
1653 if I have missed an important aspect. 1623 if I have missed an important aspect.
1654 I was quick in dropping parts. 1624 I was quick in dropping parts.
1655 I rather include falsely dropped parts again, than going at a slower pace. 1625 I rather include falsely dropped parts again, than going at a slower pace.
1656 Mmh is experimental work; it requires tough decisions. 1626 Mmh is experimental work; it requires tough decisions.
1657 .\" XXX ``exp. work'' schon oft gesagt
1658 1627
1659 1628
1660 .U3 "Process Forking 1629 .U3 "Process Forking
1661 .P 1630 .P
1662 Being a tool chest, MH creates many processes. 1631 Being a tool chest, MH creates many processes.
1891 and parts of arbitrary type following. 1860 and parts of arbitrary type following.
1892 .P 1861 .P
1893 MH's MIME support is a direct implementation of the RFCs. 1862 MH's MIME support is a direct implementation of the RFCs.
1894 The perception of the topic described in the RFCs is clearly visible 1863 The perception of the topic described in the RFCs is clearly visible
1895 in MH's implementation. 1864 in MH's implementation.
1896 .\" XXX rewrite ``no idea''.
1897 As a result, 1865 As a result,
1898 MH had all the MIME features but no idea of attachments. 1866 MH had all the MIME features but no idea of attachments.
1899 But users do not need all the MIME features, 1867 But users do not need all the MIME features,
1900 they want convenient attachment handling. 1868 they want convenient attachment handling.
1901 1869
2188 MIME parts of type message/external-body are not automatically retrieved 2156 MIME parts of type message/external-body are not automatically retrieved
2189 anymore. 2157 anymore.
2190 Instead, information on how to retrieve them is output. 2158 Instead, information on how to retrieve them is output.
2191 Not supporting this rare case saved nearly one thousand lines of code 2159 Not supporting this rare case saved nearly one thousand lines of code
2192 .Ci 55e1d8c654ee0f7c45b9361ce34617983b454c32 . 2160 .Ci 55e1d8c654ee0f7c45b9361ce34617983b454c32 .
2193 .\" XXX mention somewhere else too: (The profile entry `nmh-access-ftp'
2194 .\" and sbr/ruserpass.c for reading ~/.netrc are gone now.)
2195 The MIME type `application/octet-stream; type=tar' is not special anymore. 2161 The MIME type `application/octet-stream; type=tar' is not special anymore.
2196 The automatically extracting of such MIME parts had been the 2162 The automatically extracting of such MIME parts had been the
2197 dangerous part of the 2163 dangerous part of the
2198 .Sw -auto 2164 .Sw -auto
2199 mode 2165 mode
2267 in a single pager session. 2233 in a single pager session.
2268 Non-text content needs to be converted to text by appropriate 2234 Non-text content needs to be converted to text by appropriate
2269 .Pe mhshow-show-* 2235 .Pe mhshow-show-*
2270 profile entries before, if this is possible and wanted. 2236 profile entries before, if this is possible and wanted.
2271 A common example for this are PDF files. 2237 A common example for this are PDF files.
2272 .ig \"XXX
2273 .Pe mhshow-show-*
2274 profile entries can be used to display MIME parts in a specific way.
2275 to display them in the terminal.
2276 ..
2277 In mmh, MIME parts are always displayed serially. 2238 In mmh, MIME parts are always displayed serially.
2278 The request to display the MIME type `multipart/parallel' in parallel 2239 The request to display the MIME type `multipart/parallel' in parallel
2279 is ignored. 2240 is ignored.
2280 It is simply treated as `multipart/mixed' 2241 It is simply treated as `multipart/mixed'
2281 .Ci d0581ba306a7299113a346f9b4c46ce97bc4cef6 . 2242 .Ci d0581ba306a7299113a346f9b4c46ce97bc4cef6 .
3301 This is the function of choice for path conversion. 3262 This is the function of choice for path conversion.
3302 Absolute directory paths are the most general representation of a 3263 Absolute directory paths are the most general representation of a
3303 path name. 3264 path name.
3304 The result is a pointer to static memory. 3265 The result is a pointer to static memory.
3305 .P 3266 .P
3306 .\" XXX ueberfluessig?
3307 The new functions have names that indicate their use. 3267 The new functions have names that indicate their use.
3308 Two of the functions convert relative to absolute path names of the 3268 Two of the functions convert relative to absolute path names of the
3309 same type. 3269 same type.
3310 The third function converts any path name type to the most general one, 3270 The third function converts any path name type to the most general one,
3311 the absolute directory path. 3271 the absolute directory path.
3598 .Ci 0052f1024deb0a0a2fc2e5bacf93d45a5a9c9b32 . 3558 .Ci 0052f1024deb0a0a2fc2e5bacf93d45a5a9c9b32 .
3599 Such decisions limit the portability of mmh 3559 Such decisions limit the portability of mmh
3600 if systems do not support these standardized and widespread functions. 3560 if systems do not support these standardized and widespread functions.
3601 This compromise is made because mmh focuses on the future. 3561 This compromise is made because mmh focuses on the future.
3602 .P 3562 .P
3603 .\" XXX kuerzen und mit dem naechsten Absatz vereinen
3604 As I am still in my twenties, have no programming experience from 3563 As I am still in my twenties, have no programming experience from
3605 past decades. 3564 past decades.
3606 I have not followed the evolution of C through time. 3565 I have not followed the evolution of C through time.
3607 I have not suffered from the the Unix wars. 3566 I have not suffered from the the Unix wars.
3608 I have not longed for standardization. 3567 I have not longed for standardization.
3864 This is a ratio of 1.3 source files per program. 3823 This is a ratio of 1.3 source files per program.
3865 18 programs depend on multiple source files; 3824 18 programs depend on multiple source files;
3866 21 programs depend on one source file only. 3825 21 programs depend on one source file only.
3867 (These numbers and the ones in the following text ignore the MH library 3826 (These numbers and the ones in the following text ignore the MH library
3868 as well as shell scripts and multiple names for the same program.) 3827 as well as shell scripts and multiple names for the same program.)
3869 .\" XXX graph
3870 .P 3828 .P
3871 Splitting the source code of a large program into multiple files can 3829 Splitting the source code of a large program into multiple files can
3872 increase the readability of its source code, 3830 increase the readability of its source code,
3873 but most of the mmh tools are small and straight-forward programs. 3831 but most of the mmh tools are small and straight-forward programs.
3874 In exception of the MIME handling tools (i.e. 3832 In exception of the MIME handling tools (i.e.