Browse Source

Plan 9 from Bell Labs 2004-11-20

David du Colombier 19 years ago
parent
commit
848c727e15

+ 18 - 12
dist/replica/_plan9.db

@@ -890,6 +890,7 @@ lib/constitution - 644 sys sys 1020369312 45285
 lib/dicewords - 664 sys sys 1037463439 89128
 lib/dicewords - 664 sys sys 1037463439 89128
 lib/dict - 20000000775 sys sys 1063656980 0
 lib/dict - 20000000775 sys sys 1063656980 0
 lib/dict/README.pgw - 664 sys sys 1063660179 147
 lib/dict/README.pgw - 664 sys sys 1063660179 147
+lib/dict/README.roget - 664 sys sys 1100894426 105
 lib/face - 20000000775 sys sys 945049943 0
 lib/face - 20000000775 sys sys 945049943 0
 lib/face/.machinelist - 644 sys sys 944945676 97
 lib/face/.machinelist - 644 sys sys 944945676 97
 lib/face/48x48x1 - 20000000755 sys sys 944941680 0
 lib/face/48x48x1 - 20000000755 sys sys 944941680 0
@@ -3897,6 +3898,7 @@ sys/lib/kbmap - 20000000775 sys sys 1079535430 0
 sys/lib/kbmap/ascii - 664 sys sys 1082221421 6248
 sys/lib/kbmap/ascii - 664 sys sys 1082221421 6248
 sys/lib/kbmap/azerty - 644 sys sys 1079473812 735
 sys/lib/kbmap/azerty - 644 sys sys 1079473812 735
 sys/lib/kbmap/bgmap - 664 sys sys 1079475826 561
 sys/lib/kbmap/bgmap - 664 sys sys 1079475826 561
+sys/lib/kbmap/de - 664 sys sys 1100894012 6265
 sys/lib/kbmap/ee - 644 sys sys 1080222237 429
 sys/lib/kbmap/ee - 644 sys sys 1080222237 429
 sys/lib/kbmap/es - 664 sys sys 1079535430 1360
 sys/lib/kbmap/es - 664 sys sys 1079535430 1360
 sys/lib/kbmap/fi - 664 sys sys 1079617317 369
 sys/lib/kbmap/fi - 664 sys sys 1079617317 369
@@ -4744,7 +4746,7 @@ sys/man/1/proof - 664 sys sys 950892796 2297
 sys/man/1/ps - 664 sys sys 1019769758 1642
 sys/man/1/ps - 664 sys sys 1019769758 1642
 sys/man/1/ps2pdf - 664 sys sys 1032632098 1359
 sys/man/1/ps2pdf - 664 sys sys 1032632098 1359
 sys/man/1/pwd - 664 sys sys 957920008 930
 sys/man/1/pwd - 664 sys sys 957920008 930
-sys/man/1/rc - 664 sys sys 953844589 19457
+sys/man/1/rc - 664 sys sys 1100894083 19898
 sys/man/1/replica - 664 sys sys 1021927495 6619
 sys/man/1/replica - 664 sys sys 1021927495 6619
 sys/man/1/resample - 664 sys sys 1015024740 1083
 sys/man/1/resample - 664 sys sys 1015024740 1083
 sys/man/1/rio - 664 sys sys 1072729053 14321
 sys/man/1/rio - 664 sys sys 1072729053 14321
@@ -7326,7 +7328,7 @@ sys/src/cmd/dict/ahd.c - 664 sys sys 944960882 2082
 sys/src/cmd/dict/canonind.awk - 664 sys sys 944960880 665
 sys/src/cmd/dict/canonind.awk - 664 sys sys 944960880 665
 sys/src/cmd/dict/comfix.awk - 664 sys sys 944960880 1202
 sys/src/cmd/dict/comfix.awk - 664 sys sys 944960880 1202
 sys/src/cmd/dict/dict.c - 664 sys sys 1063660142 12040
 sys/src/cmd/dict/dict.c - 664 sys sys 1063660142 12040
-sys/src/cmd/dict/dict.h - 664 sys sys 1063656965 4087
+sys/src/cmd/dict/dict.h - 664 sys sys 1100894436 4172
 sys/src/cmd/dict/egfix - 775 sys sys 944960880 179
 sys/src/cmd/dict/egfix - 775 sys sys 944960880 179
 sys/src/cmd/dict/egfix2 - 775 sys sys 944960880 134
 sys/src/cmd/dict/egfix2 - 775 sys sys 944960880 134
 sys/src/cmd/dict/fromemf - 664 sys sys 944960880 2231
 sys/src/cmd/dict/fromemf - 664 sys sys 944960880 2231
@@ -7335,7 +7337,7 @@ sys/src/cmd/dict/gefix - 775 sys sys 944960880 447
 sys/src/cmd/dict/getneeds - 775 sys sys 944960880 205
 sys/src/cmd/dict/getneeds - 775 sys sys 944960880 205
 sys/src/cmd/dict/jis208.c - 664 sys sys 944960882 60007
 sys/src/cmd/dict/jis208.c - 664 sys sys 944960882 60007
 sys/src/cmd/dict/kuten.h - 664 sys sys 944960882 3073
 sys/src/cmd/dict/kuten.h - 664 sys sys 944960882 3073
-sys/src/cmd/dict/mkfile - 664 sys sys 1063656964 385
+sys/src/cmd/dict/mkfile - 664 sys sys 1100894435 394
 sys/src/cmd/dict/mkindex.c - 664 sys sys 1063855359 1871
 sys/src/cmd/dict/mkindex.c - 664 sys sys 1063855359 1871
 sys/src/cmd/dict/movie.c - 664 sys sys 944960880 5361
 sys/src/cmd/dict/movie.c - 664 sys sys 944960880 5361
 sys/src/cmd/dict/oed.c - 664 sys sys 1014925320 35942
 sys/src/cmd/dict/oed.c - 664 sys sys 1014925320 35942
@@ -7344,11 +7346,12 @@ sys/src/cmd/dict/pcollinsg.c - 664 sys sys 944960881 5114
 sys/src/cmd/dict/pgw.c - 664 sys sys 1063656967 29729
 sys/src/cmd/dict/pgw.c - 664 sys sys 1063656967 29729
 sys/src/cmd/dict/rev.awk - 664 sys sys 944960880 74
 sys/src/cmd/dict/rev.awk - 664 sys sys 944960880 74
 sys/src/cmd/dict/robert.c - 664 sys sys 944960882 6835
 sys/src/cmd/dict/robert.c - 664 sys sys 944960882 6835
+sys/src/cmd/dict/roget.c - 664 sys sys 1100894437 2500
 sys/src/cmd/dict/simple.c - 664 sys sys 944960882 692
 sys/src/cmd/dict/simple.c - 664 sys sys 944960882 692
 sys/src/cmd/dict/slang.c - 664 sys sys 944960880 3229
 sys/src/cmd/dict/slang.c - 664 sys sys 944960880 3229
 sys/src/cmd/dict/t.awk - 664 sys sys 944960880 189
 sys/src/cmd/dict/t.awk - 664 sys sys 944960880 189
 sys/src/cmd/dict/thesaurus.c - 664 sys sys 944960881 1273
 sys/src/cmd/dict/thesaurus.c - 664 sys sys 944960881 1273
-sys/src/cmd/dict/utils.c - 664 sys sys 1063656968 14200
+sys/src/cmd/dict/utils.c - 664 sys sys 1100894437 14345
 sys/src/cmd/dict/world.c - 664 sys sys 944960882 4264
 sys/src/cmd/dict/world.c - 664 sys sys 944960882 4264
 sys/src/cmd/diff - 20000000775 sys sys 944960882 0
 sys/src/cmd/diff - 20000000775 sys sys 944960882 0
 sys/src/cmd/diff/diff.h - 664 sys sys 1014925333 769
 sys/src/cmd/diff/diff.h - 664 sys sys 1014925333 769
@@ -10184,10 +10187,10 @@ sys/src/cmd/ratfs/mkfile - 664 sys sys 1016943965 142
 sys/src/cmd/ratfs/proto.c - 664 sys sys 1016943965 8528
 sys/src/cmd/ratfs/proto.c - 664 sys sys 1016943965 8528
 sys/src/cmd/ratfs/ratfs.h - 664 sys sys 1016943965 2743
 sys/src/cmd/ratfs/ratfs.h - 664 sys sys 1016943965 2743
 sys/src/cmd/rc - 20000000775 sys sys 945182874 0
 sys/src/cmd/rc - 20000000775 sys sys 945182874 0
-sys/src/cmd/rc/code.c - 664 sys sys 1055698766 8158
+sys/src/cmd/rc/code.c - 664 sys sys 1100894086 8215
 sys/src/cmd/rc/compiling.on.unix - 664 sys sys 1071884773 37638
 sys/src/cmd/rc/compiling.on.unix - 664 sys sys 1071884773 37638
-sys/src/cmd/rc/exec.c - 664 sys sys 1055698767 16060
-sys/src/cmd/rc/exec.h - 664 sys sys 1055698767 2779
+sys/src/cmd/rc/exec.c - 664 sys sys 1100894087 16525
+sys/src/cmd/rc/exec.h - 664 sys sys 1100894087 2804
 sys/src/cmd/rc/fmtquote.c - 664 sys sys 1055698768 3609
 sys/src/cmd/rc/fmtquote.c - 664 sys sys 1055698768 3609
 sys/src/cmd/rc/fns.h - 664 sys sys 1055698768 1377
 sys/src/cmd/rc/fns.h - 664 sys sys 1055698768 1377
 sys/src/cmd/rc/getflags.c - 664 sys sys 1055698770 3954
 sys/src/cmd/rc/getflags.c - 664 sys sys 1055698770 3954
@@ -10198,12 +10201,12 @@ sys/src/cmd/rc/haventfork.c - 664 sys sys 1055698771 3122
 sys/src/cmd/rc/here.c - 664 sys sys 1055698771 2497
 sys/src/cmd/rc/here.c - 664 sys sys 1055698771 2497
 sys/src/cmd/rc/io.c - 664 sys sys 1055698773 3623
 sys/src/cmd/rc/io.c - 664 sys sys 1055698773 3623
 sys/src/cmd/rc/io.h - 664 sys sys 944961082 532
 sys/src/cmd/rc/io.h - 664 sys sys 944961082 532
-sys/src/cmd/rc/lex.c - 664 sys sys 1055698774 6042
+sys/src/cmd/rc/lex.c - 664 sys sys 1100894085 6100
 sys/src/cmd/rc/mkfile - 664 sys sys 1055698774 812
 sys/src/cmd/rc/mkfile - 664 sys sys 1055698774 812
-sys/src/cmd/rc/pcmd.c - 664 sys sys 1055698775 2628
-sys/src/cmd/rc/pfnc.c - 664 sys sys 1055698776 1303
+sys/src/cmd/rc/pcmd.c - 664 sys sys 1100894086 2681
+sys/src/cmd/rc/pfnc.c - 664 sys sys 1100894087 1320
 sys/src/cmd/rc/plan9.c - 664 sys sys 1055698776 9382
 sys/src/cmd/rc/plan9.c - 664 sys sys 1055698776 9382
-sys/src/cmd/rc/rc.h - 664 sys sys 1091904421 3314
+sys/src/cmd/rc/rc.h - 664 sys sys 1100894086 3329
 sys/src/cmd/rc/simple.c - 664 sys sys 1055698777 8993
 sys/src/cmd/rc/simple.c - 664 sys sys 1055698777 8993
 sys/src/cmd/rc/subr.c - 664 sys sys 1055698779 1206
 sys/src/cmd/rc/subr.c - 664 sys sys 1055698779 1206
 sys/src/cmd/rc/syn.y - 664 sys sys 944961083 3128
 sys/src/cmd/rc/syn.y - 664 sys sys 944961083 3128
@@ -10916,7 +10919,7 @@ sys/src/cmd/upas/smtp/rfc822.y - 664 sys sys 1064589606 13417
 sys/src/cmd/upas/smtp/rmtdns.c - 664 sys sys 1015013150 1069
 sys/src/cmd/upas/smtp/rmtdns.c - 664 sys sys 1015013150 1069
 sys/src/cmd/upas/smtp/smtp.c - 664 sys sys 1097901337 19565
 sys/src/cmd/upas/smtp/smtp.c - 664 sys sys 1097901337 19565
 sys/src/cmd/upas/smtp/smtp.h - 664 sys sys 1064589597 1084
 sys/src/cmd/upas/smtp/smtp.h - 664 sys sys 1064589597 1084
-sys/src/cmd/upas/smtp/smtpd.c - 664 sys sys 1098803934 30216
+sys/src/cmd/upas/smtp/smtpd.c - 664 sys sys 1100893957 30201
 sys/src/cmd/upas/smtp/smtpd.h - 664 sys sys 1067722781 1111
 sys/src/cmd/upas/smtp/smtpd.h - 664 sys sys 1067722781 1111
 sys/src/cmd/upas/smtp/smtpd.y - 664 sys sys 1061836986 6949
 sys/src/cmd/upas/smtp/smtpd.y - 664 sys sys 1061836986 6949
 sys/src/cmd/upas/smtp/spam.c - 664 sys sys 1098803961 10231
 sys/src/cmd/upas/smtp/spam.c - 664 sys sys 1098803961 10231
@@ -12391,3 +12394,6 @@ usr/glenda/lib/profile - 664 glenda glenda 1021580005 847
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
+386/bin/dict - 775 sys sys 1100924601 185420
+386/bin/rc - 775 sys sys 1100924601 141176
+386/bin/upas/smtpd - 775 sys sys 1100924602 326474

+ 18 - 15
dist/replica/plan9.db

@@ -193,7 +193,7 @@
 386/bin/dial/drain - 775 sys sys 1068385869 4120
 386/bin/dial/drain - 775 sys sys 1068385869 4120
 386/bin/dial/expect - 775 sys sys 1085077029 58049
 386/bin/dial/expect - 775 sys sys 1085077029 58049
 386/bin/dial/pass - 775 sys sys 1085077030 38786
 386/bin/dial/pass - 775 sys sys 1085077030 38786
-386/bin/dict - 775 sys sys 1085077031 183178
+386/bin/dict - 775 sys sys 1100924601 185420
 386/bin/diff - 775 sys sys 1099800611 81711
 386/bin/diff - 775 sys sys 1099800611 81711
 386/bin/disk - 20000000775 sys sys 984788664 0
 386/bin/disk - 20000000775 sys sys 984788664 0
 386/bin/disk/dump9660 - 775 sys sys 1085077032 150298
 386/bin/disk/dump9660 - 775 sys sys 1085077032 150298
@@ -356,7 +356,7 @@
 386/bin/ps - 775 sys sys 1085077090 63831
 386/bin/ps - 775 sys sys 1085077090 63831
 386/bin/pwd - 775 sys sys 1085077091 36869
 386/bin/pwd - 775 sys sys 1085077091 36869
 386/bin/ramfs - 775 sys sys 1085077091 86527
 386/bin/ramfs - 775 sys sys 1085077091 86527
-386/bin/rc - 775 sys sys 1085077091 140758
+386/bin/rc - 775 sys sys 1100924601 141176
 386/bin/rdbfs - 775 sys sys 1089397315 166357
 386/bin/rdbfs - 775 sys sys 1089397315 166357
 386/bin/read - 775 sys sys 1085077092 56014
 386/bin/read - 775 sys sys 1085077092 56014
 386/bin/replica - 20000000775 sys sys 1018321168 0
 386/bin/replica - 20000000775 sys sys 1018321168 0
@@ -450,7 +450,7 @@
 386/bin/upas/scanmail - 775 sys sys 1085077115 126758
 386/bin/upas/scanmail - 775 sys sys 1085077115 126758
 386/bin/upas/send - 775 sys sys 1098848045 189497
 386/bin/upas/send - 775 sys sys 1098848045 189497
 386/bin/upas/smtp - 775 sys sys 1098848046 270306
 386/bin/upas/smtp - 775 sys sys 1098848046 270306
-386/bin/upas/smtpd - 775 sys sys 1098848047 326493
+386/bin/upas/smtpd - 775 sys sys 1100924602 326474
 386/bin/upas/spam - 775 sys sys 1064598366 36
 386/bin/upas/spam - 775 sys sys 1064598366 36
 386/bin/upas/testscan - 775 sys sys 1085077117 81626
 386/bin/upas/testscan - 775 sys sys 1085077117 81626
 386/bin/upas/token - 775 sys sys 1085077117 75518
 386/bin/upas/token - 775 sys sys 1085077117 75518
@@ -890,6 +890,7 @@ lib/constitution - 644 sys sys 1020369312 45285
 lib/dicewords - 664 sys sys 1037463439 89128
 lib/dicewords - 664 sys sys 1037463439 89128
 lib/dict - 20000000775 sys sys 1063656980 0
 lib/dict - 20000000775 sys sys 1063656980 0
 lib/dict/README.pgw - 664 sys sys 1063660179 147
 lib/dict/README.pgw - 664 sys sys 1063660179 147
+lib/dict/README.roget - 664 sys sys 1100894426 105
 lib/face - 20000000775 sys sys 945049943 0
 lib/face - 20000000775 sys sys 945049943 0
 lib/face/.machinelist - 644 sys sys 944945676 97
 lib/face/.machinelist - 644 sys sys 944945676 97
 lib/face/48x48x1 - 20000000755 sys sys 944941680 0
 lib/face/48x48x1 - 20000000755 sys sys 944941680 0
@@ -3897,6 +3898,7 @@ sys/lib/kbmap - 20000000775 sys sys 1079535430 0
 sys/lib/kbmap/ascii - 664 sys sys 1082221421 6248
 sys/lib/kbmap/ascii - 664 sys sys 1082221421 6248
 sys/lib/kbmap/azerty - 644 sys sys 1079473812 735
 sys/lib/kbmap/azerty - 644 sys sys 1079473812 735
 sys/lib/kbmap/bgmap - 664 sys sys 1079475826 561
 sys/lib/kbmap/bgmap - 664 sys sys 1079475826 561
+sys/lib/kbmap/de - 664 sys sys 1100894012 6265
 sys/lib/kbmap/ee - 644 sys sys 1080222237 429
 sys/lib/kbmap/ee - 644 sys sys 1080222237 429
 sys/lib/kbmap/es - 664 sys sys 1079535430 1360
 sys/lib/kbmap/es - 664 sys sys 1079535430 1360
 sys/lib/kbmap/fi - 664 sys sys 1079617317 369
 sys/lib/kbmap/fi - 664 sys sys 1079617317 369
@@ -4744,7 +4746,7 @@ sys/man/1/proof - 664 sys sys 950892796 2297
 sys/man/1/ps - 664 sys sys 1019769758 1642
 sys/man/1/ps - 664 sys sys 1019769758 1642
 sys/man/1/ps2pdf - 664 sys sys 1032632098 1359
 sys/man/1/ps2pdf - 664 sys sys 1032632098 1359
 sys/man/1/pwd - 664 sys sys 957920008 930
 sys/man/1/pwd - 664 sys sys 957920008 930
-sys/man/1/rc - 664 sys sys 953844589 19457
+sys/man/1/rc - 664 sys sys 1100894083 19898
 sys/man/1/replica - 664 sys sys 1021927495 6619
 sys/man/1/replica - 664 sys sys 1021927495 6619
 sys/man/1/resample - 664 sys sys 1015024740 1083
 sys/man/1/resample - 664 sys sys 1015024740 1083
 sys/man/1/rio - 664 sys sys 1072729053 14321
 sys/man/1/rio - 664 sys sys 1072729053 14321
@@ -7326,7 +7328,7 @@ sys/src/cmd/dict/ahd.c - 664 sys sys 944960882 2082
 sys/src/cmd/dict/canonind.awk - 664 sys sys 944960880 665
 sys/src/cmd/dict/canonind.awk - 664 sys sys 944960880 665
 sys/src/cmd/dict/comfix.awk - 664 sys sys 944960880 1202
 sys/src/cmd/dict/comfix.awk - 664 sys sys 944960880 1202
 sys/src/cmd/dict/dict.c - 664 sys sys 1063660142 12040
 sys/src/cmd/dict/dict.c - 664 sys sys 1063660142 12040
-sys/src/cmd/dict/dict.h - 664 sys sys 1063656965 4087
+sys/src/cmd/dict/dict.h - 664 sys sys 1100894436 4172
 sys/src/cmd/dict/egfix - 775 sys sys 944960880 179
 sys/src/cmd/dict/egfix - 775 sys sys 944960880 179
 sys/src/cmd/dict/egfix2 - 775 sys sys 944960880 134
 sys/src/cmd/dict/egfix2 - 775 sys sys 944960880 134
 sys/src/cmd/dict/fromemf - 664 sys sys 944960880 2231
 sys/src/cmd/dict/fromemf - 664 sys sys 944960880 2231
@@ -7335,7 +7337,7 @@ sys/src/cmd/dict/gefix - 775 sys sys 944960880 447
 sys/src/cmd/dict/getneeds - 775 sys sys 944960880 205
 sys/src/cmd/dict/getneeds - 775 sys sys 944960880 205
 sys/src/cmd/dict/jis208.c - 664 sys sys 944960882 60007
 sys/src/cmd/dict/jis208.c - 664 sys sys 944960882 60007
 sys/src/cmd/dict/kuten.h - 664 sys sys 944960882 3073
 sys/src/cmd/dict/kuten.h - 664 sys sys 944960882 3073
-sys/src/cmd/dict/mkfile - 664 sys sys 1063656964 385
+sys/src/cmd/dict/mkfile - 664 sys sys 1100894435 394
 sys/src/cmd/dict/mkindex.c - 664 sys sys 1063855359 1871
 sys/src/cmd/dict/mkindex.c - 664 sys sys 1063855359 1871
 sys/src/cmd/dict/movie.c - 664 sys sys 944960880 5361
 sys/src/cmd/dict/movie.c - 664 sys sys 944960880 5361
 sys/src/cmd/dict/oed.c - 664 sys sys 1014925320 35942
 sys/src/cmd/dict/oed.c - 664 sys sys 1014925320 35942
@@ -7344,11 +7346,12 @@ sys/src/cmd/dict/pcollinsg.c - 664 sys sys 944960881 5114
 sys/src/cmd/dict/pgw.c - 664 sys sys 1063656967 29729
 sys/src/cmd/dict/pgw.c - 664 sys sys 1063656967 29729
 sys/src/cmd/dict/rev.awk - 664 sys sys 944960880 74
 sys/src/cmd/dict/rev.awk - 664 sys sys 944960880 74
 sys/src/cmd/dict/robert.c - 664 sys sys 944960882 6835
 sys/src/cmd/dict/robert.c - 664 sys sys 944960882 6835
+sys/src/cmd/dict/roget.c - 664 sys sys 1100894437 2500
 sys/src/cmd/dict/simple.c - 664 sys sys 944960882 692
 sys/src/cmd/dict/simple.c - 664 sys sys 944960882 692
 sys/src/cmd/dict/slang.c - 664 sys sys 944960880 3229
 sys/src/cmd/dict/slang.c - 664 sys sys 944960880 3229
 sys/src/cmd/dict/t.awk - 664 sys sys 944960880 189
 sys/src/cmd/dict/t.awk - 664 sys sys 944960880 189
 sys/src/cmd/dict/thesaurus.c - 664 sys sys 944960881 1273
 sys/src/cmd/dict/thesaurus.c - 664 sys sys 944960881 1273
-sys/src/cmd/dict/utils.c - 664 sys sys 1063656968 14200
+sys/src/cmd/dict/utils.c - 664 sys sys 1100894437 14345
 sys/src/cmd/dict/world.c - 664 sys sys 944960882 4264
 sys/src/cmd/dict/world.c - 664 sys sys 944960882 4264
 sys/src/cmd/diff - 20000000775 sys sys 944960882 0
 sys/src/cmd/diff - 20000000775 sys sys 944960882 0
 sys/src/cmd/diff/diff.h - 664 sys sys 1014925333 769
 sys/src/cmd/diff/diff.h - 664 sys sys 1014925333 769
@@ -10184,10 +10187,10 @@ sys/src/cmd/ratfs/mkfile - 664 sys sys 1016943965 142
 sys/src/cmd/ratfs/proto.c - 664 sys sys 1016943965 8528
 sys/src/cmd/ratfs/proto.c - 664 sys sys 1016943965 8528
 sys/src/cmd/ratfs/ratfs.h - 664 sys sys 1016943965 2743
 sys/src/cmd/ratfs/ratfs.h - 664 sys sys 1016943965 2743
 sys/src/cmd/rc - 20000000775 sys sys 945182874 0
 sys/src/cmd/rc - 20000000775 sys sys 945182874 0
-sys/src/cmd/rc/code.c - 664 sys sys 1055698766 8158
+sys/src/cmd/rc/code.c - 664 sys sys 1100894086 8215
 sys/src/cmd/rc/compiling.on.unix - 664 sys sys 1071884773 37638
 sys/src/cmd/rc/compiling.on.unix - 664 sys sys 1071884773 37638
-sys/src/cmd/rc/exec.c - 664 sys sys 1055698767 16060
-sys/src/cmd/rc/exec.h - 664 sys sys 1055698767 2779
+sys/src/cmd/rc/exec.c - 664 sys sys 1100894087 16525
+sys/src/cmd/rc/exec.h - 664 sys sys 1100894087 2804
 sys/src/cmd/rc/fmtquote.c - 664 sys sys 1055698768 3609
 sys/src/cmd/rc/fmtquote.c - 664 sys sys 1055698768 3609
 sys/src/cmd/rc/fns.h - 664 sys sys 1055698768 1377
 sys/src/cmd/rc/fns.h - 664 sys sys 1055698768 1377
 sys/src/cmd/rc/getflags.c - 664 sys sys 1055698770 3954
 sys/src/cmd/rc/getflags.c - 664 sys sys 1055698770 3954
@@ -10198,12 +10201,12 @@ sys/src/cmd/rc/haventfork.c - 664 sys sys 1055698771 3122
 sys/src/cmd/rc/here.c - 664 sys sys 1055698771 2497
 sys/src/cmd/rc/here.c - 664 sys sys 1055698771 2497
 sys/src/cmd/rc/io.c - 664 sys sys 1055698773 3623
 sys/src/cmd/rc/io.c - 664 sys sys 1055698773 3623
 sys/src/cmd/rc/io.h - 664 sys sys 944961082 532
 sys/src/cmd/rc/io.h - 664 sys sys 944961082 532
-sys/src/cmd/rc/lex.c - 664 sys sys 1055698774 6042
+sys/src/cmd/rc/lex.c - 664 sys sys 1100894085 6100
 sys/src/cmd/rc/mkfile - 664 sys sys 1055698774 812
 sys/src/cmd/rc/mkfile - 664 sys sys 1055698774 812
-sys/src/cmd/rc/pcmd.c - 664 sys sys 1055698775 2628
-sys/src/cmd/rc/pfnc.c - 664 sys sys 1055698776 1303
+sys/src/cmd/rc/pcmd.c - 664 sys sys 1100894086 2681
+sys/src/cmd/rc/pfnc.c - 664 sys sys 1100894087 1320
 sys/src/cmd/rc/plan9.c - 664 sys sys 1055698776 9382
 sys/src/cmd/rc/plan9.c - 664 sys sys 1055698776 9382
-sys/src/cmd/rc/rc.h - 664 sys sys 1091904421 3314
+sys/src/cmd/rc/rc.h - 664 sys sys 1100894086 3329
 sys/src/cmd/rc/simple.c - 664 sys sys 1055698777 8993
 sys/src/cmd/rc/simple.c - 664 sys sys 1055698777 8993
 sys/src/cmd/rc/subr.c - 664 sys sys 1055698779 1206
 sys/src/cmd/rc/subr.c - 664 sys sys 1055698779 1206
 sys/src/cmd/rc/syn.y - 664 sys sys 944961083 3128
 sys/src/cmd/rc/syn.y - 664 sys sys 944961083 3128
@@ -10916,7 +10919,7 @@ sys/src/cmd/upas/smtp/rfc822.y - 664 sys sys 1064589606 13417
 sys/src/cmd/upas/smtp/rmtdns.c - 664 sys sys 1015013150 1069
 sys/src/cmd/upas/smtp/rmtdns.c - 664 sys sys 1015013150 1069
 sys/src/cmd/upas/smtp/smtp.c - 664 sys sys 1097901337 19565
 sys/src/cmd/upas/smtp/smtp.c - 664 sys sys 1097901337 19565
 sys/src/cmd/upas/smtp/smtp.h - 664 sys sys 1064589597 1084
 sys/src/cmd/upas/smtp/smtp.h - 664 sys sys 1064589597 1084
-sys/src/cmd/upas/smtp/smtpd.c - 664 sys sys 1098803934 30216
+sys/src/cmd/upas/smtp/smtpd.c - 664 sys sys 1100893957 30201
 sys/src/cmd/upas/smtp/smtpd.h - 664 sys sys 1067722781 1111
 sys/src/cmd/upas/smtp/smtpd.h - 664 sys sys 1067722781 1111
 sys/src/cmd/upas/smtp/smtpd.y - 664 sys sys 1061836986 6949
 sys/src/cmd/upas/smtp/smtpd.y - 664 sys sys 1061836986 6949
 sys/src/cmd/upas/smtp/spam.c - 664 sys sys 1098803961 10231
 sys/src/cmd/upas/smtp/spam.c - 664 sys sys 1098803961 10231

+ 18 - 0
dist/replica/plan9.log

@@ -17068,3 +17068,21 @@
 1100793608 0 c sys/games/lib/fortunes - 664 sys sys 1100793355 251029
 1100793608 0 c sys/games/lib/fortunes - 664 sys sys 1100793355 251029
 1100795409 0 c sys/games/lib/fortunes - 664 sys sys 1100793812 251061
 1100795409 0 c sys/games/lib/fortunes - 664 sys sys 1100793812 251061
 1100797209 0 c sys/games/lib/fortunes - 664 sys sys 1100795513 251274
 1100797209 0 c sys/games/lib/fortunes - 664 sys sys 1100795513 251274
+1100894427 0 a lib/dict/README.roget - 664 sys sys 1100894426 105
+1100894427 1 a sys/lib/kbmap/de - 664 sys sys 1100894012 6265
+1100894427 2 c sys/man/1/rc - 664 sys sys 1100894083 19898
+1100894427 3 c sys/src/cmd/dict/dict.h - 664 sys sys 1100894436 4172
+1100894427 4 c sys/src/cmd/dict/mkfile - 664 sys sys 1100894435 394
+1100894427 5 a sys/src/cmd/dict/roget.c - 664 sys sys 1100894437 2500
+1100894427 6 c sys/src/cmd/dict/utils.c - 664 sys sys 1100894437 14345
+1100894427 7 c sys/src/cmd/rc/code.c - 664 sys sys 1100894086 8215
+1100894427 8 c sys/src/cmd/rc/exec.c - 664 sys sys 1100894087 16525
+1100894427 9 c sys/src/cmd/rc/exec.h - 664 sys sys 1100894087 2804
+1100894427 10 c sys/src/cmd/rc/lex.c - 664 sys sys 1100894085 6100
+1100894427 11 c sys/src/cmd/rc/pcmd.c - 664 sys sys 1100894086 2681
+1100894427 12 c sys/src/cmd/rc/pfnc.c - 664 sys sys 1100894087 1320
+1100894427 13 c sys/src/cmd/rc/rc.h - 664 sys sys 1100894086 3329
+1100894427 14 c sys/src/cmd/upas/smtp/smtpd.c - 664 sys sys 1100893957 30201
+1100925033 0 c 386/bin/dict - 775 sys sys 1100924601 185420
+1100925033 1 c 386/bin/rc - 775 sys sys 1100924601 141176
+1100925033 2 c 386/bin/upas/smtpd - 775 sys sys 1100924602 326474

+ 5 - 0
lib/dict/README.roget

@@ -0,0 +1,5 @@
+To get the Project Gutenberg Roget's thesaurus use
+
+	9fs sources
+	cp /n/sources/extra/roget/* /lib/dict
+

+ 640 - 0
sys/lib/kbmap/de

@@ -0,0 +1,640 @@
+0	0	0x0
+0	1	0x1b
+0	2	0x31
+0	3	0x32
+0	4	0x33
+0	5	0x34
+0	6	0x35
+0	7	0x36
+0	8	0x37
+0	9	0x38
+0	10	0x39
+0	11	0x30
+0	12	0xdf
+0	13	0x27
+0	14	0x8
+0	15	0x9
+0	16	0x71
+0	17	0x77
+0	18	0x65
+0	19	0x72
+0	20	0x74
+0	21	0x7a
+0	22	0x75
+0	23	0x69
+0	24	0x6f
+0	25	0x70
+0	26	0xfc
+0	27	0x2b
+0	28	0xa
+0	29	0xf862
+0	30	0x61
+0	31	0x73
+0	32	0x64
+0	33	0x66
+0	34	0x67
+0	35	0x68
+0	36	0x6a
+0	37	0x6b
+0	38	0x6c
+0	39	0xf6
+0	40	0xe4
+0	41	0x5e
+0	42	0xf860
+0	43	0x23
+0	44	0x79
+0	45	0x78
+0	46	0x63
+0	47	0x76
+0	48	0x62
+0	49	0x6e
+0	50	0x6d
+0	51	0x2c
+0	52	0x2e
+0	53	0x2d
+0	54	0xf860
+0	55	0x2a
+0	56	0xf863
+0	57	0x20
+0	58	0xf862
+0	59	0xf001
+0	60	0xf002
+0	61	0xf003
+0	62	0xf004
+0	63	0xf005
+0	64	0xf006
+0	65	0xf007
+0	66	0xf008
+0	67	0xf009
+0	68	0xf00a
+0	69	0xf865
+0	70	0xf015
+0	71	0x37
+0	72	0x38
+0	73	0x39
+0	74	0x2d
+0	75	0x34
+0	76	0x35
+0	77	0x36
+0	78	0x2b
+0	79	0x31
+0	80	0x32
+0	81	0x33
+0	82	0x30
+0	83	0x2e
+0	84	0x0
+0	85	0x0
+0	86	0x3c
+0	87	0xf00b
+0	88	0xf00c
+0	89	0x0
+0	90	0x0
+0	91	0x0
+0	92	0x0
+0	93	0x0
+0	94	0x0
+0	95	0x0
+0	96	0x0
+0	97	0x0
+0	98	0x0
+0	99	0x0
+0	100	0x0
+0	101	0x0
+0	102	0x0
+0	103	0x0
+0	104	0x0
+0	105	0x0
+0	106	0x0
+0	107	0x0
+0	108	0x0
+0	109	0x0
+0	110	0x0
+0	111	0x0
+0	112	0x0
+0	113	0x0
+0	114	0x0
+0	115	0x0
+0	116	0x0
+0	117	0x0
+0	118	0x0
+0	119	0x0
+0	120	0x0
+0	121	0xf800
+0	122	0x0
+0	123	0xf00e
+0	124	0x0
+0	125	0x0
+0	126	0x0
+0	127	0x0
+1	0	0x0
+1	1	0x1b
+1	2	0x21
+1	3	0x22
+1	4	0xa7
+1	5	0x24
+1	6	0x25
+1	7	0x26
+1	8	0x2f
+1	9	0x28
+1	10	0x29
+1	11	0x3d
+1	12	0x3f
+1	13	0x60
+1	14	0x8
+1	15	0x9
+1	16	0x51
+1	17	0x57
+1	18	0x45
+1	19	0x52
+1	20	0x54
+1	21	0x5a
+1	22	0x55
+1	23	0x49
+1	24	0x4f
+1	25	0x50
+1	26	0xdc
+1	27	0x2a
+1	28	0xa
+1	29	0xf862
+1	30	0x41
+1	31	0x53
+1	32	0x44
+1	33	0x46
+1	34	0x47
+1	35	0x48
+1	36	0x4a
+1	37	0x4b
+1	38	0x4c
+1	39	0xd6
+1	40	0xc4
+1	41	0xb0
+1	42	0xf860
+1	43	0x27
+1	44	0x59
+1	45	0x58
+1	46	0x43
+1	47	0x56
+1	48	0x42
+1	49	0x4e
+1	50	0x4d
+1	51	0x3b
+1	52	0x3a
+1	53	0x5f
+1	54	0xf860
+1	55	0x2a
+1	56	0xf863
+1	57	0x20
+1	58	0xf862
+1	59	0xf001
+1	60	0xf002
+1	61	0xf003
+1	62	0xf004
+1	63	0xf005
+1	64	0xf006
+1	65	0xf007
+1	66	0xf008
+1	67	0xf009
+1	68	0xf00a
+1	69	0xf865
+1	70	0xf015
+1	71	0x37
+1	72	0x38
+1	73	0x39
+1	74	0x2d
+1	75	0x34
+1	76	0x35
+1	77	0x36
+1	78	0x2b
+1	79	0x31
+1	80	0x32
+1	81	0x33
+1	82	0x30
+1	83	0x2e
+1	84	0x0
+1	85	0x0
+1	86	0x3e
+1	87	0xf00b
+1	88	0xf00c
+1	89	0x0
+1	90	0x0
+1	91	0x0
+1	92	0x0
+1	93	0x0
+1	94	0x0
+1	95	0x0
+1	96	0x0
+1	97	0x0
+1	98	0x0
+1	99	0x0
+1	100	0x0
+1	101	0x0
+1	102	0x0
+1	103	0x0
+1	104	0x0
+1	105	0x0
+1	106	0x0
+1	107	0x0
+1	108	0x0
+1	109	0x0
+1	110	0x0
+1	111	0x0
+1	112	0x0
+1	113	0x0
+1	114	0x0
+1	115	0x0
+1	116	0x0
+1	117	0x0
+1	118	0x0
+1	119	0x0
+1	120	0x0
+1	121	0xf00e
+1	122	0x0
+1	123	0xf00e
+1	124	0x0
+1	125	0x0
+1	126	0x0
+1	127	0x0
+2	0	0x0
+2	1	0x0
+2	2	0x0
+2	3	0x0
+2	4	0x0
+2	5	0x0
+2	6	0x0
+2	7	0x0
+2	8	0x0
+2	9	0x0
+2	10	0x0
+2	11	0x0
+2	12	0x0
+2	13	0x0
+2	14	0x0
+2	15	0x0
+2	16	0x0
+2	17	0x0
+2	18	0x0
+2	19	0x0
+2	20	0x0
+2	21	0x0
+2	22	0x0
+2	23	0x0
+2	24	0x0
+2	25	0x0
+2	26	0x0
+2	27	0x0
+2	28	0xa
+2	29	0xf862
+2	30	0x0
+2	31	0x0
+2	32	0x0
+2	33	0x0
+2	34	0x0
+2	35	0x0
+2	36	0x0
+2	37	0x0
+2	38	0x0
+2	39	0x0
+2	40	0x0
+2	41	0x0
+2	42	0xf860
+2	43	0x0
+2	44	0x0
+2	45	0x0
+2	46	0x0
+2	47	0x0
+2	48	0x0
+2	49	0x0
+2	50	0x0
+2	51	0x0
+2	52	0x0
+2	53	0x2f
+2	54	0x0
+2	55	0xf010
+2	56	0xf867
+2	57	0x0
+2	58	0x0
+2	59	0x0
+2	60	0x0
+2	61	0x0
+2	62	0x0
+2	63	0x0
+2	64	0x0
+2	65	0x0
+2	66	0x0
+2	67	0x0
+2	68	0x0
+2	69	0x0
+2	70	0xf861
+2	71	0xf00d
+2	72	0xf00e
+2	73	0xf00f
+2	74	0x0
+2	75	0xf011
+2	76	0x0
+2	77	0xf012
+2	78	0x0
+2	79	0xf018
+2	80	0xf800
+2	81	0xf013
+2	82	0xf014
+2	83	0x7f
+2	84	0x0
+2	85	0x0
+2	86	0x0
+2	87	0x0
+2	88	0x0
+2	89	0x0
+2	90	0x0
+2	91	0x0
+2	92	0x0
+2	93	0x0
+2	94	0x0
+2	95	0x0
+2	96	0x0
+2	97	0x0
+2	98	0x0
+2	99	0x0
+2	100	0x0
+2	101	0x0
+2	102	0x0
+2	103	0x0
+2	104	0x0
+2	105	0x0
+2	106	0x0
+2	107	0x0
+2	108	0x0
+2	109	0x0
+2	110	0x0
+2	111	0x0
+2	112	0x0
+2	113	0x0
+2	114	0x0
+2	115	0x0
+2	116	0x0
+2	117	0x0
+2	118	0x0
+2	119	0x0
+2	120	0x0
+2	121	0xf00e
+2	122	0x0
+2	123	0x0
+2	124	0x0
+2	125	0x0
+2	126	0x0
+2	127	0x0
+3	0	0x0
+3	1	0x0
+3	2	0x0
+3	3	0xb2
+3	4	0xb3
+3	5	0x0
+3	6	0x0
+3	7	0x0
+3	8	0x7b
+3	9	0x5b
+3	10	0x5d
+3	11	0x7d
+3	12	0x5c
+3	13	0x0
+3	14	0x0
+3	15	0x0
+3	16	0x40
+3	17	0x0
+3	18	0x20ac
+3	19	0x0
+3	20	0x0
+3	21	0x0
+3	22	0x0
+3	23	0x0
+3	24	0x0
+3	25	0x0
+3	26	0x0
+3	27	0x7e
+3	28	0xa
+3	29	0xf862
+3	30	0x0
+3	31	0x0
+3	32	0x0
+3	33	0x0
+3	34	0x0
+3	35	0x0
+3	36	0x0
+3	37	0x0
+3	38	0x0
+3	39	0x0
+3	40	0x0
+3	41	0x0
+3	42	0xf860
+3	43	0x0
+3	44	0x0
+3	45	0x0
+3	46	0x0
+3	47	0x0
+3	48	0x0
+3	49	0x0
+3	50	0x3bc
+3	51	0x0
+3	52	0x0
+3	53	0x2f
+3	54	0x0
+3	55	0xf010
+3	56	0xf867
+3	57	0x0
+3	58	0x0
+3	59	0x0
+3	60	0x0
+3	61	0x0
+3	62	0x0
+3	63	0x0
+3	64	0x0
+3	65	0x0
+3	66	0x0
+3	67	0x0
+3	68	0x0
+3	69	0x0
+3	70	0xf861
+3	71	0xf00d
+3	72	0xf00e
+3	73	0xf00f
+3	74	0x0
+3	75	0xf011
+3	76	0x0
+3	77	0xf012
+3	78	0x0
+3	79	0xf018
+3	80	0xf800
+3	81	0xf013
+3	82	0xf014
+3	83	0x7f
+3	84	0x0
+3	85	0x0
+3	86	0x7c
+3	87	0x0
+3	88	0x0
+3	89	0x0
+3	90	0x0
+3	91	0x0
+3	92	0x0
+3	93	0x0
+3	94	0x0
+3	95	0x0
+3	96	0x0
+3	97	0x0
+3	98	0x0
+3	99	0x0
+3	100	0x0
+3	101	0x0
+3	102	0x0
+3	103	0x0
+3	104	0x0
+3	105	0x0
+3	106	0x0
+3	107	0x0
+3	108	0x0
+3	109	0x0
+3	110	0x0
+3	111	0x0
+3	112	0x0
+3	113	0x0
+3	114	0x0
+3	115	0x0
+3	116	0x0
+3	117	0x0
+3	118	0x0
+3	119	0x0
+3	120	0x0
+3	121	0xf00e
+3	122	0x0
+3	123	0x0
+3	124	0x0
+3	125	0x0
+3	126	0x0
+3	127	0x0
+4	0	0x0
+4	1	0x1b
+4	2	0x11
+4	3	0x12
+4	4	0x13
+4	5	0x14
+4	6	0x15
+4	7	0x16
+4	8	0x17
+4	9	0x18
+4	10	0x19
+4	11	0x10
+4	12	0xd
+4	13	0x1d
+4	14	0x8
+4	15	0x9
+4	16	0x11
+4	17	0x17
+4	18	0x5
+4	19	0x12
+4	20	0x14
+4	21	0x19
+4	22	0x15
+4	23	0x9
+4	24	0xf
+4	25	0x10
+4	26	0x1b
+4	27	0x1d
+4	28	0xa
+4	29	0xf862
+4	30	0x1
+4	31	0x13
+4	32	0x4
+4	33	0x6
+4	34	0x7
+4	35	0x8
+4	36	0xa
+4	37	0xb
+4	38	0xc
+4	39	0x1b
+4	40	0x7
+4	41	0x0
+4	42	0xf860
+4	43	0x1c
+4	44	0x1a
+4	45	0x18
+4	46	0x3
+4	47	0x16
+4	48	0x2
+4	49	0xe
+4	50	0xd
+4	51	0xc
+4	52	0xe
+4	53	0xf
+4	54	0xf860
+4	55	0xa
+4	56	0xf863
+4	57	0x0
+4	58	0xf862
+4	59	0x5
+4	60	0x6
+4	61	0x7
+4	62	0x4
+4	63	0x5
+4	64	0x6
+4	65	0x7
+4	66	0xc
+4	67	0xd
+4	68	0xe
+4	69	0x5
+4	70	0x6
+4	71	0x17
+4	72	0x18
+4	73	0x19
+4	74	0xd
+4	75	0x14
+4	76	0x15
+4	77	0x16
+4	78	0xb
+4	79	0x11
+4	80	0x12
+4	81	0x13
+4	82	0x10
+4	83	0xe
+4	84	0x0
+4	85	0x0
+4	86	0x0
+4	87	0xf
+4	88	0xc
+4	89	0x0
+4	90	0x0
+4	91	0x0
+4	92	0x0
+4	93	0x0
+4	94	0x0
+4	95	0x0
+4	96	0x0
+4	97	0x0
+4	98	0x0
+4	99	0x0
+4	100	0x0
+4	101	0x0
+4	102	0x0
+4	103	0x0
+4	104	0x0
+4	105	0x0
+4	106	0x0
+4	107	0x0
+4	108	0x0
+4	109	0x0
+4	110	0x0
+4	111	0x0
+4	112	0x0
+4	113	0x0
+4	114	0x0
+4	115	0x0
+4	116	0x0
+4	117	0x0
+4	118	0x0
+4	119	0x0
+4	120	0x0
+4	121	0x7
+4	122	0x0
+4	123	0x8
+4	124	0x0
+4	125	0x0
+4	126	0x0
+4	127	0x0

+ 17 - 1
sys/man/1/rc

@@ -333,6 +333,12 @@ the caret is deleted.
 If
 If
 .I eof-marker
 .I eof-marker
 is quoted, no substitution occurs.
 is quoted, no substitution occurs.
+The standard input file
+may also be redirected from a file by the sequence
+.BI <> file \f1,
+which opens
+.I file
+exactly once, for reading and writing.
 .PP
 .PP
 Redirections may be applied to a file-descriptor other than standard input
 Redirections may be applied to a file-descriptor other than standard input
 or output by qualifying the redirection operator
 or output by qualifying the redirection operator
@@ -342,7 +348,8 @@ may be redirected by writing
 .BR "cc junk.c >[2]junk" .
 .BR "cc junk.c >[2]junk" .
 .PP
 .PP
 A file descriptor may be redirected to an already open descriptor by writing
 A file descriptor may be redirected to an already open descriptor by writing
-.BI >[ fd0 = fd1 ]
+.BI >[ fd0 = fd1 ],
+.BI <>[ fd0 = fd1 ],
 or
 or
 .BI <[ fd0 = fd1 ]\f1.
 .BI <[ fd0 = fd1 ]\f1.
 .I Fd1
 .I Fd1
@@ -366,6 +373,15 @@ have different effects: the first puts standard output in
 and then puts diagnostic output in the same place, where the second
 and then puts diagnostic output in the same place, where the second
 directs diagnostic output to the terminal and sends standard output to
 directs diagnostic output to the terminal and sends standard output to
 .BR /dev/null .
 .BR /dev/null .
+.PP
+.B newconn <>/net/tcp/clone >[1=0]
+opens
+.B /net/tcp/clone
+exactly once for reading and writing and puts it on standard input and output.
+.B lpd <>[3]/net/tcp/42/data
+opens
+.B /net/tcp/42/data
+exactly once for reading and writing and puts it on file descriptor 3.
 .SS Compound Commands
 .SS Compound Commands
 A pair of commands separated by a pipe operator
 A pair of commands separated by a pipe operator
 .RB ( | )
 .RB ( | )

+ 3 - 0
sys/src/cmd/dict/dict.h

@@ -130,6 +130,9 @@ void	movieprintkey(void);
 long	pgwnextoff(long);
 long	pgwnextoff(long);
 void	pgwprintentry(Entry,int);
 void	pgwprintentry(Entry,int);
 void	pgwprintkey(void);
 void	pgwprintkey(void);
+void	rogetprintentry(Entry, int);
+long	rogetnextoff(long);
+void	rogetprintkey(void);
 long	slangnextoff(long);
 long	slangnextoff(long);
 void	slangprintentry(Entry, int);
 void	slangprintentry(Entry, int);
 void	slangprintkey(void);
 void	slangprintkey(void);

+ 1 - 1
sys/src/cmd/dict/mkfile

@@ -2,7 +2,7 @@
 
 
 TARG=dict
 TARG=dict
 LFILES=oed.$O ahd.$O pcollins.$O pcollinsg.$O movie.$O slang.$O robert.$O\
 LFILES=oed.$O ahd.$O pcollins.$O pcollinsg.$O movie.$O slang.$O robert.$O\
-	world.$O jis208.$O gb2312.$O thesaurus.$O simple.$O pgw.$O
+	world.$O jis208.$O gb2312.$O thesaurus.$O simple.$O pgw.$O roget.$O
 
 
 OFILES=dict.$O\
 OFILES=dict.$O\
 	$LFILES\
 	$LFILES\

+ 147 - 0
sys/src/cmd/dict/roget.c

@@ -0,0 +1,147 @@
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#include <ctype.h>
+#include "dict.h"
+
+/* Roget's Thesaurus from project Gutenberg */
+
+static long Last = 0;
+
+void
+rogetprintentry(Entry e, int cmd)
+{
+	int spc;
+	char c, *p;
+
+	spc = 0;
+	p = e.start;
+
+	if(cmd == 'h'){
+		while(!isspace(*p) && p < e.end)
+			p++;
+		while(strncmp(p, " -- ", 4) != 0 && p < e.end){
+			while(isspace(*p) && p < e.end)
+				p++;
+			if (*p == '[' || *p == '{'){	
+				c = (*p == '[')? ']': '}';
+				while(*p != c && p < e.end)
+					p++;
+				p++;
+				continue;
+			}
+			if (isdigit(*p) || ispunct(*p)){
+				while(!isspace(*p) && p < e.end)
+					p++;
+				continue;
+			}
+
+
+			if (isspace(*p))
+				spc = 1;
+			else
+			if (spc){
+				outchar(' ');
+				spc = 0;
+			}
+
+			while(!isspace(*p) && p < e.end)
+				outchar(*p++);
+		}
+		return;
+	}	
+
+	while(p < e.end && !isspace(*p))
+		p++;
+	while(p < e.end && isspace(*p))
+		p++;
+
+	while (p < e.end){
+		if (p < e.end -4 && strncmp(p, " -- ", 4) == 0){	/* first line */
+			outnl(2);
+			p += 4;
+			spc = 0;
+		}
+			
+		if (p < e.end -2 && strncmp(p, "[ ", 4) == 0){		/* twiddle layout */
+			outchars(" [");
+			continue;
+		}
+
+		if (p < e.end -4 && strncmp(p, "&c (", 4) == 0){	/* usefull xref */
+			if (spc)
+				outchar(' ');
+			outchar('/');
+			while(p < e.end && *p != '(')
+				p++;
+			p++;
+			while(p < e.end && *p != ')')
+				outchar(*p++);
+			p++;
+			while(p < e.end && isspace(*p))
+				p++;
+			while(p < e.end && isdigit(*p))
+				p++;
+			outchar('/');
+			continue;
+		}
+
+		if (p < e.end -3 && strncmp(p, "&c ", 3) == 0){		/* less usefull xref */
+			while(p < e.end && !isdigit(*p))
+				p++;
+			while(p < e.end && isdigit(*p))
+				p++;
+			continue;
+		}
+
+		if (*p == '\n' && p < (e.end -1)){			/* their newlines */
+			spc = 0;
+			p++;
+			if (isspace(*p)){				/* their continuation line */
+				while (isspace(*p))
+					p++;
+				p--;
+			}
+			else{
+				outnl(2);
+			}
+		}
+		if (spc && *p != ';' && *p != '.' &&
+		    *p != ',' && !isspace(*p)){				/* drop spaces before punct */
+			spc = 0;
+			outchar(' ');
+		}
+		if (isspace(*p))
+			spc = 1;
+		else
+			outchar(*p);
+		p++;
+	}
+	outnl(0);
+}
+
+long
+rogetnextoff(long fromoff)
+{
+	int i;
+	vlong l;
+	char *p;
+
+	Bseek(bdict, fromoff, 0);
+	Brdline(bdict, '\n');
+	while ((p = Brdline(bdict, '\n')) != nil){
+		l = Blinelen(bdict);
+		if (!isdigit(*p))
+			continue;
+		for (i = 0; i < l-4; i++)
+			if (strncmp(p+i, " -- ", 4) == 0)
+				return Boffset(bdict)-l;
+	}
+	return Boffset(bdict);
+}
+
+void
+rogetprintkey(void)
+{
+	Bprint(bout, "No pronunciation key.\n");
+}

+ 3 - 0
sys/src/cmd/dict/utils.c

@@ -16,6 +16,9 @@ Dict dicts[] = {
 	{"thesaurus",	"Collins Thesaurus",
 	{"thesaurus",	"Collins Thesaurus",
 	 "/lib/dict/thesaurus",	"/lib/dict/thesindex",
 	 "/lib/dict/thesaurus",	"/lib/dict/thesindex",
 	 thesnextoff,	thesprintentry,	thesprintkey},
 	 thesnextoff,	thesprintentry,	thesprintkey},
+	{"roget",		"Project Gutenberg Roget's Thesaurus",
+	 "/lib/dict/roget", "/lib/dict/rogetindex",
+	 rogetnextoff,	rogetprintentry,	rogetprintkey},
 
 
 	{"ce",		"Gendai Chinese->English",
 	{"ce",		"Gendai Chinese->English",
 	 "/lib/dict/world/sansdata/sandic24.dat",
 	 "/lib/dict/world/sansdata/sandic24.dat",

+ 4 - 0
sys/src/cmd/rc/code.c

@@ -319,6 +319,9 @@ outcode(tree *t, int eflag)
 		case HERE:
 		case HERE:
 			emitf(Xread);
 			emitf(Xread);
 			break;
 			break;
+		case RDWR:
+			emitf(Xrdwr);
+			break;
 		}
 		}
 		emiti(t->fd0);
 		emiti(t->fd0);
 		outcode(c1, eflag);
 		outcode(c1, eflag);
@@ -466,6 +469,7 @@ codefree(code *cp)
 		return;
 		return;
 	for(p = cp+1;p->f;p++){
 	for(p = cp+1;p->f;p++){
 		if(p->f==Xappend || p->f==Xclose || p->f==Xread || p->f==Xwrite
 		if(p->f==Xappend || p->f==Xclose || p->f==Xread || p->f==Xwrite
+		|| p->f==Xrdwr
 		|| p->f==Xasync || p->f==Xbackq || p->f==Xcase || p->f==Xfalse
 		|| p->f==Xasync || p->f==Xbackq || p->f==Xcase || p->f==Xfalse
 		|| p->f==Xfor || p->f==Xjump
 		|| p->f==Xfor || p->f==Xjump
 		|| p->f==Xsubshell || p->f==Xtrue) p++;
 		|| p->f==Xsubshell || p->f==Xtrue) p++;

+ 28 - 0
sys/src/cmd/rc/exec.c

@@ -219,6 +219,7 @@ main(int argc, char *argv[])
  * Xpipefd[type]{... Xreturn}		connect {} to pipe (input or output,
  * Xpipefd[type]{... Xreturn}		connect {} to pipe (input or output,
  * 					depending on type), push /dev/fd/??
  * 					depending on type), push /dev/fd/??
  * Xpopm(value)				pop value from stack
  * Xpopm(value)				pop value from stack
+ * Xrdwr(file)[fd]			open file for reading and writing
  * Xread(file)[fd]			open file to read
  * Xread(file)[fd]			open file to read
  * Xsettraps(names){... Xreturn}		define trap functions
  * Xsettraps(names){... Xreturn}		define trap functions
  * Xshowtraps				print trap list
  * Xshowtraps				print trap list
@@ -374,6 +375,33 @@ Xread(void)
 	poplist();
 	poplist();
 }
 }
 
 
+void
+Xrdwr(void)
+{
+	char *file;
+	int f;
+
+	switch(count(runq->argv->words)){
+	default:
+		Xerror1("<> requires singleton\n");
+		return;
+	case 0:
+		Xerror1("<> requires file\n");
+		return;
+	case 1:
+		break;
+	}
+	file = runq->argv->words->word;
+	if((f = open(file, ORDWR))<0){
+		pfmt(err, "%s: ", file);
+		Xerror("can't open");
+		return;
+	}
+	pushredir(ROPEN, f, runq->code[runq->pc].i);
+	runq->pc++;
+	poplist();
+}
+
 void
 void
 turfredir(void)
 turfredir(void)
 {
 {

+ 1 - 0
sys/src/cmd/rc/exec.h

@@ -5,6 +5,7 @@ extern void Xappend(void), Xasync(void), Xbackq(void), Xbang(void), Xclose(void)
 extern void Xconc(void), Xcount(void), Xdelfn(void), Xdol(void), Xqdol(void), Xdup(void);
 extern void Xconc(void), Xcount(void), Xdelfn(void), Xdol(void), Xqdol(void), Xdup(void);
 extern void Xexit(void), Xfalse(void), Xfn(void), Xfor(void), Xglob(void);
 extern void Xexit(void), Xfalse(void), Xfn(void), Xfor(void), Xglob(void);
 extern void Xjump(void), Xmark(void), Xmatch(void), Xpipe(void), Xread(void);
 extern void Xjump(void), Xmark(void), Xmatch(void), Xpipe(void), Xread(void);
+extern void Xrdwr(void);
 extern void Xrdfn(void), Xunredir(void), Xstar(void), Xreturn(void), Xsubshell(void);
 extern void Xrdfn(void), Xunredir(void), Xstar(void), Xreturn(void), Xsubshell(void);
 extern void Xtrue(void), Xword(void), Xwrite(void), Xpipefd(void), Xcase(void);
 extern void Xtrue(void), Xword(void), Xwrite(void), Xpipefd(void), Xcase(void);
 extern void Xlocal(void), Xunlocal(void), Xassign(void), Xsimple(void), Xpopm(void);
 extern void Xlocal(void), Xunlocal(void), Xassign(void), Xsimple(void), Xpopm(void);

+ 4 - 2
sys/src/cmd/rc/lex.c

@@ -267,8 +267,10 @@ yylex(void)
 			if(nextis(c)){
 			if(nextis(c)){
 				t->rtype = HERE;
 				t->rtype = HERE;
 				*w++=c;
 				*w++=c;
-			}
-			else t->rtype = READ;
+			} else if (nextis('>')){
+				t->rtype = RDWR;
+				*w++=c;
+			} else t->rtype = READ;
 			t->fd0 = 0;
 			t->fd0 = 0;
 			break;
 			break;
 		}
 		}

+ 3 - 0
sys/src/cmd/rc/pcmd.c

@@ -110,7 +110,10 @@ pcmd(io *f, tree *t)
 		case HERE:
 		case HERE:
 			pchr(f, '<');
 			pchr(f, '<');
 		case READ:
 		case READ:
+		case RDWR:
 			pchr(f, '<');
 			pchr(f, '<');
+			if(t->rtype==RDWR)
+				pchr(f, '>');
 			if(t->fd0!=0)
 			if(t->fd0!=0)
 				pfmt(f, "[%d]", t->fd0);
 				pfmt(f, "[%d]", t->fd0);
 			break;
 			break;

+ 1 - 0
sys/src/cmd/rc/pfnc.c

@@ -18,6 +18,7 @@ struct{
 	Xjump, "Xjump",
 	Xjump, "Xjump",
 	Xmark, "Xmark",
 	Xmark, "Xmark",
 	Xpopm, "Xpopm",
 	Xpopm, "Xpopm",
+	Xrdwr, "Xrdwr",
 	Xread, "Xread",
 	Xread, "Xread",
 	Xreturn, "Xreturn",
 	Xreturn, "Xreturn",
 	Xtrue, "Xtrue",
 	Xtrue, "Xtrue",

+ 1 - 0
sys/src/cmd/rc/rc.h

@@ -74,6 +74,7 @@ char tok[NTOK];
 #define	HERE	4
 #define	HERE	4
 #define	DUPFD	5
 #define	DUPFD	5
 #define	CLOSE	6
 #define	CLOSE	6
+#define RDWR	7
 struct var{
 struct var{
 	char *name;		/* ascii name */
 	char *name;		/* ascii name */
 	word *val;	/* value */
 	word *val;	/* value */

+ 1 - 1
sys/src/cmd/upas/smtp/smtpd.c

@@ -1347,7 +1347,7 @@ auth(String *mech, String *resp)
 		goto bomb_out;
 		goto bomb_out;
 
 
  	syslog(0, "smtpd", "auth(%s, %s) from %s", s_to_c(mech),
  	syslog(0, "smtpd", "auth(%s, %s) from %s", s_to_c(mech),
-		resp==nil?"nil":s_to_c(resp), him);
+		"(protected)", him);
 
 
 	if (authenticated) {
 	if (authenticated) {
 	bad_sequence:
 	bad_sequence: