Browse Source

Plan 9 from Bell Labs 2006-04-02

David du Colombier 18 years ago
parent
commit
e894da136d

+ 11 - 11
adm/timezone/US_Alaska

@@ -11,14 +11,14 @@ AKS -32400 AKD -28800
  860292000  877827600  891741600  909277200  923191200  941331600
  860292000  877827600  891741600  909277200  923191200  941331600
  954640800  972781200  986090400 1004230800 1018144800 1035680400
  954640800  972781200  986090400 1004230800 1018144800 1035680400
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
-1143943200 1162083600 1175392800 1193533200 1207447200 1224982800
-1238896800 1256432400 1270346400 1288486800 1301796000 1319936400
-1333245600 1351386000 1365300000 1382835600 1396749600 1414285200
-1428199200 1445734800 1459648800 1477789200 1491098400 1509238800
-1522548000 1540688400 1554602400 1572138000 1586052000 1603587600
-1617501600 1635642000 1648951200 1667091600 1680400800 1698541200
-1712455200 1729990800 1743904800 1761440400 1775354400 1792890000
-1806804000 1824944400 1838253600 1856394000 1869703200 1887843600
-1901757600 1919293200 1933207200 1950742800 1964656800 1982797200
-1996106400 2014246800 2027556000 2045696400 2059005600 2077146000
-2091060000 2108595600 2122509600 2140045200
+1143943200 1162083600 1173578400 1194141600 1205028000 1225591200
+1236477600 1257040800 1268532000 1289095200 1299981600 1320544800
+1331431200 1351994400 1362880800 1383444000 1394330400 1414893600
+1425780000 1446343200 1457834400 1478397600 1489284000 1509847200
+1520733600 1541296800 1552183200 1572746400 1583632800 1604196000
+1615687200 1636250400 1647136800 1667700000 1678586400 1699149600
+1710036000 1730599200 1741485600 1762048800 1772935200 1793498400
+1804989600 1825552800 1836439200 1857002400 1867888800 1888452000
+1899338400 1919901600 1930788000 1951351200 1962842400 1983405600
+1994292000 2014855200 2025741600 2046304800 2057191200 2077754400
+2088640800 2109204000 2120090400 2140653600

+ 11 - 11
adm/timezone/US_Central

@@ -11,14 +11,14 @@ CST -21600 CDT -18000
  860292000  877827600  891741600  909277200  923191200  941331600
  860292000  877827600  891741600  909277200  923191200  941331600
  954640800  972781200  986090400 1004230800 1018144800 1035680400
  954640800  972781200  986090400 1004230800 1018144800 1035680400
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
-1143943200 1162083600 1175392800 1193533200 1207447200 1224982800
-1238896800 1256432400 1270346400 1288486800 1301796000 1319936400
-1333245600 1351386000 1365300000 1382835600 1396749600 1414285200
-1428199200 1445734800 1459648800 1477789200 1491098400 1509238800
-1522548000 1540688400 1554602400 1572138000 1586052000 1603587600
-1617501600 1635642000 1648951200 1667091600 1680400800 1698541200
-1712455200 1729990800 1743904800 1761440400 1775354400 1792890000
-1806804000 1824944400 1838253600 1856394000 1869703200 1887843600
-1901757600 1919293200 1933207200 1950742800 1964656800 1982797200
-1996106400 2014246800 2027556000 2045696400 2059005600 2077146000
-2091060000 2108595600 2122509600 2140045200
+1143943200 1162083600 1173578400 1194141600 1205028000 1225591200
+1236477600 1257040800 1268532000 1289095200 1299981600 1320544800
+1331431200 1351994400 1362880800 1383444000 1394330400 1414893600
+1425780000 1446343200 1457834400 1478397600 1489284000 1509847200
+1520733600 1541296800 1552183200 1572746400 1583632800 1604196000
+1615687200 1636250400 1647136800 1667700000 1678586400 1699149600
+1710036000 1730599200 1741485600 1762048800 1772935200 1793498400
+1804989600 1825552800 1836439200 1857002400 1867888800 1888452000
+1899338400 1919901600 1930788000 1951351200 1962842400 1983405600
+1994292000 2014855200 2025741600 2046304800 2057191200 2077754400
+2088640800 2109204000 2120090400 2140653600

+ 11 - 11
adm/timezone/US_East-Indiana

@@ -1,12 +1,12 @@
 EST -18000 EDT -14400
 EST -18000 EDT -14400
-1143943200 1162083600 1175392800 1193533200 1207447200 1224982800
-1238896800 1256432400 1270346400 1288486800 1301796000 1319936400
-1333245600 1351386000 1365300000 1382835600 1396749600 1414285200
-1428199200 1445734800 1459648800 1477789200 1491098400 1509238800
-1522548000 1540688400 1554602400 1572138000 1586052000 1603587600
-1617501600 1635642000 1648951200 1667091600 1680400800 1698541200
-1712455200 1729990800 1743904800 1761440400 1775354400 1792890000
-1806804000 1824944400 1838253600 1856394000 1869703200 1887843600
-1901757600 1919293200 1933207200 1950742800 1964656800 1982797200
-1996106400 2014246800 2027556000 2045696400 2059005600 2077146000
-2091060000 2108595600 2122509600 2140045200
+1143943200 1162083600 1173578400 1194141600 1205028000 1225591200
+1236477600 1257040800 1268532000 1289095200 1299981600 1320544800
+1331431200 1351994400 1362880800 1383444000 1394330400 1414893600
+1425780000 1446343200 1457834400 1478397600 1489284000 1509847200
+1520733600 1541296800 1552183200 1572746400 1583632800 1604196000
+1615687200 1636250400 1647136800 1667700000 1678586400 1699149600
+1710036000 1730599200 1741485600 1762048800 1772935200 1793498400
+1804989600 1825552800 1836439200 1857002400 1867888800 1888452000
+1899338400 1919901600 1930788000 1951351200 1962842400 1983405600
+1994292000 2014855200 2025741600 2046304800 2057191200 2077754400
+2088640800 2109204000 2120090400 2140653600

+ 11 - 11
adm/timezone/US_Eastern

@@ -11,14 +11,14 @@ EST -18000 EDT -14400
  860292000  877827600  891741600  909277200  923191200  941331600
  860292000  877827600  891741600  909277200  923191200  941331600
  954640800  972781200  986090400 1004230800 1018144800 1035680400
  954640800  972781200  986090400 1004230800 1018144800 1035680400
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
-1143943200 1162083600 1175392800 1193533200 1207447200 1224982800
-1238896800 1256432400 1270346400 1288486800 1301796000 1319936400
-1333245600 1351386000 1365300000 1382835600 1396749600 1414285200
-1428199200 1445734800 1459648800 1477789200 1491098400 1509238800
-1522548000 1540688400 1554602400 1572138000 1586052000 1603587600
-1617501600 1635642000 1648951200 1667091600 1680400800 1698541200
-1712455200 1729990800 1743904800 1761440400 1775354400 1792890000
-1806804000 1824944400 1838253600 1856394000 1869703200 1887843600
-1901757600 1919293200 1933207200 1950742800 1964656800 1982797200
-1996106400 2014246800 2027556000 2045696400 2059005600 2077146000
-2091060000 2108595600 2122509600 2140045200
+1143943200 1162083600 1173578400 1194141600 1205028000 1225591200
+1236477600 1257040800 1268532000 1289095200 1299981600 1320544800
+1331431200 1351994400 1362880800 1383444000 1394330400 1414893600
+1425780000 1446343200 1457834400 1478397600 1489284000 1509847200
+1520733600 1541296800 1552183200 1572746400 1583632800 1604196000
+1615687200 1636250400 1647136800 1667700000 1678586400 1699149600
+1710036000 1730599200 1741485600 1762048800 1772935200 1793498400
+1804989600 1825552800 1836439200 1857002400 1867888800 1888452000
+1899338400 1919901600 1930788000 1951351200 1962842400 1983405600
+1994292000 2014855200 2025741600 2046304800 2057191200 2077754400
+2088640800 2109204000 2120090400 2140653600

+ 12 - 11
adm/timezone/US_Michigan

@@ -1,4 +1,5 @@
 EST -18000 EDT -14400
 EST -18000 EDT -14400
+   9943200   25664400   41392800   57718800   73447200   89168400
  104896800  120618000  126669600  152067600  162352800  183517200
  104896800  120618000  126669600  152067600  162352800  183517200
  199245600  215571600  230695200  247021200  262749600  278470800
  199245600  215571600  230695200  247021200  262749600  278470800
  294199200  309920400  325648800  341370000  357098400  372819600
  294199200  309920400  325648800  341370000  357098400  372819600
@@ -10,14 +11,14 @@ EST -18000 EDT -14400
  860292000  877827600  891741600  909277200  923191200  941331600
  860292000  877827600  891741600  909277200  923191200  941331600
  954640800  972781200  986090400 1004230800 1018144800 1035680400
  954640800  972781200  986090400 1004230800 1018144800 1035680400
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
-1143943200 1162083600 1175392800 1193533200 1207447200 1224982800
-1238896800 1256432400 1270346400 1288486800 1301796000 1319936400
-1333245600 1351386000 1365300000 1382835600 1396749600 1414285200
-1428199200 1445734800 1459648800 1477789200 1491098400 1509238800
-1522548000 1540688400 1554602400 1572138000 1586052000 1603587600
-1617501600 1635642000 1648951200 1667091600 1680400800 1698541200
-1712455200 1729990800 1743904800 1761440400 1775354400 1792890000
-1806804000 1824944400 1838253600 1856394000 1869703200 1887843600
-1901757600 1919293200 1933207200 1950742800 1964656800 1982797200
-1996106400 2014246800 2027556000 2045696400 2059005600 2077146000
-2091060000 2108595600 2122509600 2140045200
+1143943200 1162083600 1173578400 1194141600 1205028000 1225591200
+1236477600 1257040800 1268532000 1289095200 1299981600 1320544800
+1331431200 1351994400 1362880800 1383444000 1394330400 1414893600
+1425780000 1446343200 1457834400 1478397600 1489284000 1509847200
+1520733600 1541296800 1552183200 1572746400 1583632800 1604196000
+1615687200 1636250400 1647136800 1667700000 1678586400 1699149600
+1710036000 1730599200 1741485600 1762048800 1772935200 1793498400
+1804989600 1825552800 1836439200 1857002400 1867888800 1888452000
+1899338400 1919901600 1930788000 1951351200 1962842400 1983405600
+1994292000 2014855200 2025741600 2046304800 2057191200 2077754400
+2088640800 2109204000 2120090400 2140653600

+ 11 - 11
adm/timezone/US_Mountain

@@ -11,14 +11,14 @@ MST -25200 MDT -21600
  860292000  877827600  891741600  909277200  923191200  941331600
  860292000  877827600  891741600  909277200  923191200  941331600
  954640800  972781200  986090400 1004230800 1018144800 1035680400
  954640800  972781200  986090400 1004230800 1018144800 1035680400
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
-1143943200 1162083600 1175392800 1193533200 1207447200 1224982800
-1238896800 1256432400 1270346400 1288486800 1301796000 1319936400
-1333245600 1351386000 1365300000 1382835600 1396749600 1414285200
-1428199200 1445734800 1459648800 1477789200 1491098400 1509238800
-1522548000 1540688400 1554602400 1572138000 1586052000 1603587600
-1617501600 1635642000 1648951200 1667091600 1680400800 1698541200
-1712455200 1729990800 1743904800 1761440400 1775354400 1792890000
-1806804000 1824944400 1838253600 1856394000 1869703200 1887843600
-1901757600 1919293200 1933207200 1950742800 1964656800 1982797200
-1996106400 2014246800 2027556000 2045696400 2059005600 2077146000
-2091060000 2108595600 2122509600 2140045200
+1143943200 1162083600 1173578400 1194141600 1205028000 1225591200
+1236477600 1257040800 1268532000 1289095200 1299981600 1320544800
+1331431200 1351994400 1362880800 1383444000 1394330400 1414893600
+1425780000 1446343200 1457834400 1478397600 1489284000 1509847200
+1520733600 1541296800 1552183200 1572746400 1583632800 1604196000
+1615687200 1636250400 1647136800 1667700000 1678586400 1699149600
+1710036000 1730599200 1741485600 1762048800 1772935200 1793498400
+1804989600 1825552800 1836439200 1857002400 1867888800 1888452000
+1899338400 1919901600 1930788000 1951351200 1962842400 1983405600
+1994292000 2014855200 2025741600 2046304800 2057191200 2077754400
+2088640800 2109204000 2120090400 2140653600

+ 11 - 11
adm/timezone/US_Pacific

@@ -11,14 +11,14 @@ PST -28800 PDT -25200
  860292000  877827600  891741600  909277200  923191200  941331600
  860292000  877827600  891741600  909277200  923191200  941331600
  954640800  972781200  986090400 1004230800 1018144800 1035680400
  954640800  972781200  986090400 1004230800 1018144800 1035680400
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
-1143943200 1162083600 1175392800 1193533200 1207447200 1224982800
-1238896800 1256432400 1270346400 1288486800 1301796000 1319936400
-1333245600 1351386000 1365300000 1382835600 1396749600 1414285200
-1428199200 1445734800 1459648800 1477789200 1491098400 1509238800
-1522548000 1540688400 1554602400 1572138000 1586052000 1603587600
-1617501600 1635642000 1648951200 1667091600 1680400800 1698541200
-1712455200 1729990800 1743904800 1761440400 1775354400 1792890000
-1806804000 1824944400 1838253600 1856394000 1869703200 1887843600
-1901757600 1919293200 1933207200 1950742800 1964656800 1982797200
-1996106400 2014246800 2027556000 2045696400 2059005600 2077146000
-2091060000 2108595600 2122509600 2140045200
+1143943200 1162083600 1173578400 1194141600 1205028000 1225591200
+1236477600 1257040800 1268532000 1289095200 1299981600 1320544800
+1331431200 1351994400 1362880800 1383444000 1394330400 1414893600
+1425780000 1446343200 1457834400 1478397600 1489284000 1509847200
+1520733600 1541296800 1552183200 1572746400 1583632800 1604196000
+1615687200 1636250400 1647136800 1667700000 1678586400 1699149600
+1710036000 1730599200 1741485600 1762048800 1772935200 1793498400
+1804989600 1825552800 1836439200 1857002400 1867888800 1888452000
+1899338400 1919901600 1930788000 1951351200 1962842400 1983405600
+1994292000 2014855200 2025741600 2046304800 2057191200 2077754400
+2088640800 2109204000 2120090400 2140653600

+ 11 - 11
adm/timezone/US_Yukon

@@ -11,14 +11,14 @@ YST -32400 YDT -28800
  860292000  877827600  891741600  909277200  923191200  941331600
  860292000  877827600  891741600  909277200  923191200  941331600
  954640800  972781200  986090400 1004230800 1018144800 1035680400
  954640800  972781200  986090400 1004230800 1018144800 1035680400
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
 1049594400 1067130000 1081044000 1099184400 1112493600 1130634000
-1143943200 1162083600 1175392800 1193533200 1207447200 1224982800
-1238896800 1256432400 1270346400 1288486800 1301796000 1319936400
-1333245600 1351386000 1365300000 1382835600 1396749600 1414285200
-1428199200 1445734800 1459648800 1477789200 1491098400 1509238800
-1522548000 1540688400 1554602400 1572138000 1586052000 1603587600
-1617501600 1635642000 1648951200 1667091600 1680400800 1698541200
-1712455200 1729990800 1743904800 1761440400 1775354400 1792890000
-1806804000 1824944400 1838253600 1856394000 1869703200 1887843600
-1901757600 1919293200 1933207200 1950742800 1964656800 1982797200
-1996106400 2014246800 2027556000 2045696400 2059005600 2077146000
-2091060000 2108595600 2122509600 2140045200
+1143943200 1162083600 1173578400 1194141600 1205028000 1225591200
+1236477600 1257040800 1268532000 1289095200 1299981600 1320544800
+1331431200 1351994400 1362880800 1383444000 1394330400 1414893600
+1425780000 1446343200 1457834400 1478397600 1489284000 1509847200
+1520733600 1541296800 1552183200 1572746400 1583632800 1604196000
+1615687200 1636250400 1647136800 1667700000 1678586400 1699149600
+1710036000 1730599200 1741485600 1762048800 1772935200 1793498400
+1804989600 1825552800 1836439200 1857002400 1867888800 1888452000
+1899338400 1919901600 1930788000 1951351200 1962842400 1983405600
+1994292000 2014855200 2025741600 2046304800 2057191200 2077754400
+2088640800 2109204000 2120090400 2140653600

+ 20 - 19
dist/replica/_plan9.db

@@ -1,8 +1,8 @@
 386 - 20000000775 sys sys 1010957353 0
 386 - 20000000775 sys sys 1010957353 0
 386/9load - 775 sys sys 1131317303 216948
 386/9load - 775 sys sys 1131317303 216948
-386/9loaddebug - 775 sys sys 1143146512 312489
+386/9loaddebug - 775 sys sys 1143931720 312489
 386/9loadlite - 775 sys sys 1131317306 135668
 386/9loadlite - 775 sys sys 1131317306 135668
-386/9loadlitedebug - 775 sys sys 1143146513 200137
+386/9loadlitedebug - 775 sys sys 1143931720 200137
 386/9pc - 775 sys sys 1143137104 1913157
 386/9pc - 775 sys sys 1143137104 1913157
 386/9pc.gz - 664 sys sys 1141258202 668936
 386/9pc.gz - 664 sys sys 1141258202 668936
 386/9pccpu - 775 sys sys 1141258205 1583315
 386/9pccpu - 775 sys sys 1141258205 1583315
@@ -149,7 +149,7 @@
 386/bin/aux/trampoline - 775 sys sys 1143777767 83990
 386/bin/aux/trampoline - 775 sys sys 1143777767 83990
 386/bin/aux/typepasswd - 775 sys sys 1143777767 69833
 386/bin/aux/typepasswd - 775 sys sys 1143777767 69833
 386/bin/aux/usage - 775 sys sys 1143777768 59904
 386/bin/aux/usage - 775 sys sys 1143777768 59904
-386/bin/aux/vga - 775 sys sys 1143777769 334185
+386/bin/aux/vga - 775 sys sys 1143950134 334335
 386/bin/aux/vmmousepoll - 775 sys sys 1032480572 41434
 386/bin/aux/vmmousepoll - 775 sys sys 1032480572 41434
 386/bin/aux/vmware - 775 sys sys 1049428256 453
 386/bin/aux/vmware - 775 sys sys 1049428256 453
 386/bin/aux/vmwarefs - 775 sys sys 1095563640 99117
 386/bin/aux/vmwarefs - 775 sys sys 1095563640 99117
@@ -784,16 +784,16 @@ adm/timezone/ROC - 664 adm adm 1020313577 20
 adm/timezone/ROK - 664 adm adm 1020313577 64
 adm/timezone/ROK - 664 adm adm 1020313577 64
 adm/timezone/Singapore - 664 adm adm 1020313577 20
 adm/timezone/Singapore - 664 adm adm 1020313577 20
 adm/timezone/Turkey - 664 adm adm 1020313577 1164
 adm/timezone/Turkey - 664 adm adm 1020313577 1164
-adm/timezone/US_Alaska - 664 adm adm 1020313577 1518
+adm/timezone/US_Alaska - 664 adm adm 1143927130 1518
 adm/timezone/US_Arizona - 664 adm adm 1020313577 22
 adm/timezone/US_Arizona - 664 adm adm 1020313577 22
-adm/timezone/US_Central - 664 adm adm 1020313577 1518
-adm/timezone/US_East-Indiana - 664 adm adm 1143844688 726
-adm/timezone/US_Eastern - 664 adm adm 1020313577 1518
+adm/timezone/US_Central - 664 adm adm 1143927129 1518
+adm/timezone/US_East-Indiana - 664 adm adm 1143927129 726
+adm/timezone/US_Eastern - 664 adm adm 1143927130 1518
 adm/timezone/US_Hawaii - 664 adm adm 1020313577 22
 adm/timezone/US_Hawaii - 664 adm adm 1020313577 22
-adm/timezone/US_Michigan - 664 adm adm 1020313577 1452
-adm/timezone/US_Mountain - 664 adm adm 1020313577 1518
-adm/timezone/US_Pacific - 664 adm adm 1020313578 1518
-adm/timezone/US_Yukon - 664 adm adm 1020313578 1518
+adm/timezone/US_Michigan - 664 adm adm 1143927131 1518
+adm/timezone/US_Mountain - 664 adm adm 1143927130 1518
+adm/timezone/US_Pacific - 664 adm adm 1143927129 1518
+adm/timezone/US_Yukon - 664 adm adm 1143927130 1518
 adm/timezone/W-SU - 664 adm adm 1020313578 1164
 adm/timezone/W-SU - 664 adm adm 1020313578 1164
 adm/timezone/WET - 664 adm adm 1020313578 1159
 adm/timezone/WET - 664 adm adm 1020313578 1159
 adm/timezone/local - 664 adm adm 1020313578 1518
 adm/timezone/local - 664 adm adm 1020313578 1518
@@ -5213,7 +5213,7 @@ lib/tftpd - 20000000775 sys sys 944944178 0
 lib/unicode - 664 sys sys 958440028 223312
 lib/unicode - 664 sys sys 958440028 223312
 lib/unicode.notice - 664 sys sys 958504386 1398
 lib/unicode.notice - 664 sys sys 958504386 1398
 lib/units - 664 sys sys 1071415518 9997
 lib/units - 664 sys sys 1071415518 9997
-lib/vgadb - 664 sys sys 1142693929 29319
+lib/vgadb - 664 sys sys 1143927653 29342
 lib/volcanoes - 664 sys sys 944944024 119831
 lib/volcanoes - 664 sys sys 944944024 119831
 lib/words - 664 sys sys 1014923442 247097
 lib/words - 664 sys sys 1014923442 247097
 lp - 20000000775 sys sys 958199268 0
 lp - 20000000775 sys sys 958199268 0
@@ -5408,7 +5408,7 @@ rc/bin/ape/false - 775 sys sys 945617285 17
 rc/bin/ape/grep - 775 sys sys 1023738308 60
 rc/bin/ape/grep - 775 sys sys 1023738308 60
 rc/bin/ape/install - 775 sys sys 1015089725 572
 rc/bin/ape/install - 775 sys sys 1015089725 572
 rc/bin/ape/ld - 775 sys sys 1107957880 98
 rc/bin/ape/ld - 775 sys sys 1107957880 98
-rc/bin/ape/ls - 775 sys sys 1139841321 1018
+rc/bin/ape/ls - 775 sys sys 1143927118 1032
 rc/bin/ape/printf - 664 sys sys 1139841311 60
 rc/bin/ape/printf - 664 sys sys 1139841311 60
 rc/bin/ape/psh - 775 sys sys 1040481105 240
 rc/bin/ape/psh - 775 sys sys 1040481105 240
 rc/bin/ape/ranlib - 775 sys sys 1099176402 18
 rc/bin/ape/ranlib - 775 sys sys 1099176402 18
@@ -8045,7 +8045,7 @@ sys/src/9/pc/vgahiqvideo.c - 664 sys sys 1131290601 4098
 sys/src/9/pc/vgai81x.c - 664 sys sys 1135487942 4421
 sys/src/9/pc/vgai81x.c - 664 sys sys 1135487942 4421
 sys/src/9/pc/vgamach64xx.c - 664 sys sys 1131290601 28257
 sys/src/9/pc/vgamach64xx.c - 664 sys sys 1131290601 28257
 sys/src/9/pc/vgamga2164w.c - 664 sys sys 1132331257 4769
 sys/src/9/pc/vgamga2164w.c - 664 sys sys 1132331257 4769
-sys/src/9/pc/vgamga4xx.c - 664 sys sys 1143648125 9489
+sys/src/9/pc/vgamga4xx.c - 664 sys sys 1143927896 9573
 sys/src/9/pc/vganeomagic.c - 664 sys sys 1131422294 10255
 sys/src/9/pc/vganeomagic.c - 664 sys sys 1131422294 10255
 sys/src/9/pc/vganvidia.c - 664 sys sys 1137689150 12395
 sys/src/9/pc/vganvidia.c - 664 sys sys 1137689150 12395
 sys/src/9/pc/vgargb524.c - 664 sys sys 1131290602 4251
 sys/src/9/pc/vgargb524.c - 664 sys sys 1131290602 4251
@@ -9708,7 +9708,7 @@ sys/src/cmd/aux/vga/mach64.c - 664 sys sys 1014925009 8279
 sys/src/cmd/aux/vga/mach64xx.c - 664 sys sys 1097900455 30266
 sys/src/cmd/aux/vga/mach64xx.c - 664 sys sys 1097900455 30266
 sys/src/cmd/aux/vga/main.c - 664 sys sys 1131741978 9725
 sys/src/cmd/aux/vga/main.c - 664 sys sys 1131741978 9725
 sys/src/cmd/aux/vga/mga2164w.c - 664 sys sys 1135487945 13173
 sys/src/cmd/aux/vga/mga2164w.c - 664 sys sys 1135487945 13173
-sys/src/cmd/aux/vga/mga4xx.c - 664 sys sys 1135487948 35804
+sys/src/cmd/aux/vga/mga4xx.c - 664 sys sys 1143927895 36098
 sys/src/cmd/aux/vga/mkfile - 664 sys sys 1115734903 927
 sys/src/cmd/aux/vga/mkfile - 664 sys sys 1115734903 927
 sys/src/cmd/aux/vga/neomagic.c - 664 sys sys 1104430499 8975
 sys/src/cmd/aux/vga/neomagic.c - 664 sys sys 1104430499 8975
 sys/src/cmd/aux/vga/notes.txt - 664 sys sys 1028334647 14376
 sys/src/cmd/aux/vga/notes.txt - 664 sys sys 1028334647 14376
@@ -12774,7 +12774,7 @@ sys/src/cmd/postscript/common/path.h - 664 sys sys 944961053 1369
 sys/src/cmd/postscript/common/request.c - 664 sys sys 944961053 3707
 sys/src/cmd/postscript/common/request.c - 664 sys sys 944961053 3707
 sys/src/cmd/postscript/common/request.h - 664 sys sys 944961053 794
 sys/src/cmd/postscript/common/request.h - 664 sys sys 944961053 794
 sys/src/cmd/postscript/common/rune.c - 664 sys sys 944961053 2137
 sys/src/cmd/postscript/common/rune.c - 664 sys sys 944961053 2137
-sys/src/cmd/postscript/common/rune.h - 664 sys sys 944961053 374
+sys/src/cmd/postscript/common/rune.h - 664 sys sys 1143918283 376
 sys/src/cmd/postscript/common/tempnam.c - 664 sys sys 944961054 554
 sys/src/cmd/postscript/common/tempnam.c - 664 sys sys 944961054 554
 sys/src/cmd/postscript/config - 664 sys sys 953348309 176
 sys/src/cmd/postscript/config - 664 sys sys 953348309 176
 sys/src/cmd/postscript/cropmarks - 20000000775 sys sys 944961054 0
 sys/src/cmd/postscript/cropmarks - 20000000775 sys sys 944961054 0
@@ -13956,14 +13956,15 @@ sys/src/cmd/upas/filterkit/pipeto.sample-hold - 664 sys sys 1019837081 872
 sys/src/cmd/upas/filterkit/readaddrs.c - 664 sys sys 1143759341 1331
 sys/src/cmd/upas/filterkit/readaddrs.c - 664 sys sys 1143759341 1331
 sys/src/cmd/upas/filterkit/token.c - 664 sys sys 1018549521 1312
 sys/src/cmd/upas/filterkit/token.c - 664 sys sys 1018549521 1312
 sys/src/cmd/upas/fs - 20000000775 sys sys 988250018 0
 sys/src/cmd/upas/fs - 20000000775 sys sys 988250018 0
-sys/src/cmd/upas/fs/dat.h - 664 sys sys 1143845990 4272
-sys/src/cmd/upas/fs/fs.c - 664 sys sys 1143845990 27463
+sys/src/cmd/upas/fs/dat.h - 664 sys sys 1143929916 4189
+sys/src/cmd/upas/fs/fs.c - 664 sys sys 1143946869 26924
 sys/src/cmd/upas/fs/imap4.c - 664 sys sys 1133147970 16258
 sys/src/cmd/upas/fs/imap4.c - 664 sys sys 1133147970 16258
-sys/src/cmd/upas/fs/mbox.c - 664 sys sys 1143845990 29022
+sys/src/cmd/upas/fs/mbox.c - 664 sys sys 1143929917 26636
 sys/src/cmd/upas/fs/mkfile - 664 sys sys 1047490336 321
 sys/src/cmd/upas/fs/mkfile - 664 sys sys 1047490336 321
 sys/src/cmd/upas/fs/plan9.c - 664 sys sys 1071334861 7465
 sys/src/cmd/upas/fs/plan9.c - 664 sys sys 1071334861 7465
 sys/src/cmd/upas/fs/pop3.c - 664 sys sys 1133988332 13024
 sys/src/cmd/upas/fs/pop3.c - 664 sys sys 1133988332 13024
 sys/src/cmd/upas/fs/readdir.c - 664 sys sys 944961331 203
 sys/src/cmd/upas/fs/readdir.c - 664 sys sys 944961331 203
+sys/src/cmd/upas/fs/rfc2047-test - 664 sys sys 1143946985 1146
 sys/src/cmd/upas/fs/strtotm.c - 664 sys sys 1041137528 1904
 sys/src/cmd/upas/fs/strtotm.c - 664 sys sys 1041137528 1904
 sys/src/cmd/upas/fs/tester.c - 664 sys sys 985037420 1418
 sys/src/cmd/upas/fs/tester.c - 664 sys sys 985037420 1418
 sys/src/cmd/upas/marshal - 20000000775 sys sys 1015009721 0
 sys/src/cmd/upas/marshal - 20000000775 sys sys 1015009721 0

+ 20 - 19
dist/replica/plan9.db

@@ -1,8 +1,8 @@
 386 - 20000000775 sys sys 1010957353 0
 386 - 20000000775 sys sys 1010957353 0
 386/9load - 775 sys sys 1131317303 216948
 386/9load - 775 sys sys 1131317303 216948
-386/9loaddebug - 775 sys sys 1143146512 312489
+386/9loaddebug - 775 sys sys 1143931720 312489
 386/9loadlite - 775 sys sys 1131317306 135668
 386/9loadlite - 775 sys sys 1131317306 135668
-386/9loadlitedebug - 775 sys sys 1143146513 200137
+386/9loadlitedebug - 775 sys sys 1143931720 200137
 386/9pc - 775 sys sys 1143137104 1913157
 386/9pc - 775 sys sys 1143137104 1913157
 386/9pc.gz - 664 sys sys 1141258202 668936
 386/9pc.gz - 664 sys sys 1141258202 668936
 386/9pccpu - 775 sys sys 1141258205 1583315
 386/9pccpu - 775 sys sys 1141258205 1583315
@@ -149,7 +149,7 @@
 386/bin/aux/trampoline - 775 sys sys 1143777767 83990
 386/bin/aux/trampoline - 775 sys sys 1143777767 83990
 386/bin/aux/typepasswd - 775 sys sys 1143777767 69833
 386/bin/aux/typepasswd - 775 sys sys 1143777767 69833
 386/bin/aux/usage - 775 sys sys 1143777768 59904
 386/bin/aux/usage - 775 sys sys 1143777768 59904
-386/bin/aux/vga - 775 sys sys 1143777769 334185
+386/bin/aux/vga - 775 sys sys 1143950134 334335
 386/bin/aux/vmmousepoll - 775 sys sys 1032480572 41434
 386/bin/aux/vmmousepoll - 775 sys sys 1032480572 41434
 386/bin/aux/vmware - 775 sys sys 1049428256 453
 386/bin/aux/vmware - 775 sys sys 1049428256 453
 386/bin/aux/vmwarefs - 775 sys sys 1095563640 99117
 386/bin/aux/vmwarefs - 775 sys sys 1095563640 99117
@@ -784,16 +784,16 @@ adm/timezone/ROC - 664 adm adm 1020313577 20
 adm/timezone/ROK - 664 adm adm 1020313577 64
 adm/timezone/ROK - 664 adm adm 1020313577 64
 adm/timezone/Singapore - 664 adm adm 1020313577 20
 adm/timezone/Singapore - 664 adm adm 1020313577 20
 adm/timezone/Turkey - 664 adm adm 1020313577 1164
 adm/timezone/Turkey - 664 adm adm 1020313577 1164
-adm/timezone/US_Alaska - 664 adm adm 1020313577 1518
+adm/timezone/US_Alaska - 664 adm adm 1143927130 1518
 adm/timezone/US_Arizona - 664 adm adm 1020313577 22
 adm/timezone/US_Arizona - 664 adm adm 1020313577 22
-adm/timezone/US_Central - 664 adm adm 1020313577 1518
-adm/timezone/US_East-Indiana - 664 adm adm 1143844688 726
-adm/timezone/US_Eastern - 664 adm adm 1020313577 1518
+adm/timezone/US_Central - 664 adm adm 1143927129 1518
+adm/timezone/US_East-Indiana - 664 adm adm 1143927129 726
+adm/timezone/US_Eastern - 664 adm adm 1143927130 1518
 adm/timezone/US_Hawaii - 664 adm adm 1020313577 22
 adm/timezone/US_Hawaii - 664 adm adm 1020313577 22
-adm/timezone/US_Michigan - 664 adm adm 1020313577 1452
-adm/timezone/US_Mountain - 664 adm adm 1020313577 1518
-adm/timezone/US_Pacific - 664 adm adm 1020313578 1518
-adm/timezone/US_Yukon - 664 adm adm 1020313578 1518
+adm/timezone/US_Michigan - 664 adm adm 1143927131 1518
+adm/timezone/US_Mountain - 664 adm adm 1143927130 1518
+adm/timezone/US_Pacific - 664 adm adm 1143927129 1518
+adm/timezone/US_Yukon - 664 adm adm 1143927130 1518
 adm/timezone/W-SU - 664 adm adm 1020313578 1164
 adm/timezone/W-SU - 664 adm adm 1020313578 1164
 adm/timezone/WET - 664 adm adm 1020313578 1159
 adm/timezone/WET - 664 adm adm 1020313578 1159
 adm/timezone/local - 664 adm adm 1020313578 1518
 adm/timezone/local - 664 adm adm 1020313578 1518
@@ -5213,7 +5213,7 @@ lib/tftpd - 20000000775 sys sys 944944178 0
 lib/unicode - 664 sys sys 958440028 223312
 lib/unicode - 664 sys sys 958440028 223312
 lib/unicode.notice - 664 sys sys 958504386 1398
 lib/unicode.notice - 664 sys sys 958504386 1398
 lib/units - 664 sys sys 1071415518 9997
 lib/units - 664 sys sys 1071415518 9997
-lib/vgadb - 664 sys sys 1142693929 29319
+lib/vgadb - 664 sys sys 1143927653 29342
 lib/volcanoes - 664 sys sys 944944024 119831
 lib/volcanoes - 664 sys sys 944944024 119831
 lib/words - 664 sys sys 1014923442 247097
 lib/words - 664 sys sys 1014923442 247097
 lp - 20000000775 sys sys 958199268 0
 lp - 20000000775 sys sys 958199268 0
@@ -5408,7 +5408,7 @@ rc/bin/ape/false - 775 sys sys 945617285 17
 rc/bin/ape/grep - 775 sys sys 1023738308 60
 rc/bin/ape/grep - 775 sys sys 1023738308 60
 rc/bin/ape/install - 775 sys sys 1015089725 572
 rc/bin/ape/install - 775 sys sys 1015089725 572
 rc/bin/ape/ld - 775 sys sys 1107957880 98
 rc/bin/ape/ld - 775 sys sys 1107957880 98
-rc/bin/ape/ls - 775 sys sys 1139841321 1018
+rc/bin/ape/ls - 775 sys sys 1143927118 1032
 rc/bin/ape/printf - 664 sys sys 1139841311 60
 rc/bin/ape/printf - 664 sys sys 1139841311 60
 rc/bin/ape/psh - 775 sys sys 1040481105 240
 rc/bin/ape/psh - 775 sys sys 1040481105 240
 rc/bin/ape/ranlib - 775 sys sys 1099176402 18
 rc/bin/ape/ranlib - 775 sys sys 1099176402 18
@@ -8045,7 +8045,7 @@ sys/src/9/pc/vgahiqvideo.c - 664 sys sys 1131290601 4098
 sys/src/9/pc/vgai81x.c - 664 sys sys 1135487942 4421
 sys/src/9/pc/vgai81x.c - 664 sys sys 1135487942 4421
 sys/src/9/pc/vgamach64xx.c - 664 sys sys 1131290601 28257
 sys/src/9/pc/vgamach64xx.c - 664 sys sys 1131290601 28257
 sys/src/9/pc/vgamga2164w.c - 664 sys sys 1132331257 4769
 sys/src/9/pc/vgamga2164w.c - 664 sys sys 1132331257 4769
-sys/src/9/pc/vgamga4xx.c - 664 sys sys 1143648125 9489
+sys/src/9/pc/vgamga4xx.c - 664 sys sys 1143927896 9573
 sys/src/9/pc/vganeomagic.c - 664 sys sys 1131422294 10255
 sys/src/9/pc/vganeomagic.c - 664 sys sys 1131422294 10255
 sys/src/9/pc/vganvidia.c - 664 sys sys 1137689150 12395
 sys/src/9/pc/vganvidia.c - 664 sys sys 1137689150 12395
 sys/src/9/pc/vgargb524.c - 664 sys sys 1131290602 4251
 sys/src/9/pc/vgargb524.c - 664 sys sys 1131290602 4251
@@ -9708,7 +9708,7 @@ sys/src/cmd/aux/vga/mach64.c - 664 sys sys 1014925009 8279
 sys/src/cmd/aux/vga/mach64xx.c - 664 sys sys 1097900455 30266
 sys/src/cmd/aux/vga/mach64xx.c - 664 sys sys 1097900455 30266
 sys/src/cmd/aux/vga/main.c - 664 sys sys 1131741978 9725
 sys/src/cmd/aux/vga/main.c - 664 sys sys 1131741978 9725
 sys/src/cmd/aux/vga/mga2164w.c - 664 sys sys 1135487945 13173
 sys/src/cmd/aux/vga/mga2164w.c - 664 sys sys 1135487945 13173
-sys/src/cmd/aux/vga/mga4xx.c - 664 sys sys 1135487948 35804
+sys/src/cmd/aux/vga/mga4xx.c - 664 sys sys 1143927895 36098
 sys/src/cmd/aux/vga/mkfile - 664 sys sys 1115734903 927
 sys/src/cmd/aux/vga/mkfile - 664 sys sys 1115734903 927
 sys/src/cmd/aux/vga/neomagic.c - 664 sys sys 1104430499 8975
 sys/src/cmd/aux/vga/neomagic.c - 664 sys sys 1104430499 8975
 sys/src/cmd/aux/vga/notes.txt - 664 sys sys 1028334647 14376
 sys/src/cmd/aux/vga/notes.txt - 664 sys sys 1028334647 14376
@@ -12774,7 +12774,7 @@ sys/src/cmd/postscript/common/path.h - 664 sys sys 944961053 1369
 sys/src/cmd/postscript/common/request.c - 664 sys sys 944961053 3707
 sys/src/cmd/postscript/common/request.c - 664 sys sys 944961053 3707
 sys/src/cmd/postscript/common/request.h - 664 sys sys 944961053 794
 sys/src/cmd/postscript/common/request.h - 664 sys sys 944961053 794
 sys/src/cmd/postscript/common/rune.c - 664 sys sys 944961053 2137
 sys/src/cmd/postscript/common/rune.c - 664 sys sys 944961053 2137
-sys/src/cmd/postscript/common/rune.h - 664 sys sys 944961053 374
+sys/src/cmd/postscript/common/rune.h - 664 sys sys 1143918283 376
 sys/src/cmd/postscript/common/tempnam.c - 664 sys sys 944961054 554
 sys/src/cmd/postscript/common/tempnam.c - 664 sys sys 944961054 554
 sys/src/cmd/postscript/config - 664 sys sys 953348309 176
 sys/src/cmd/postscript/config - 664 sys sys 953348309 176
 sys/src/cmd/postscript/cropmarks - 20000000775 sys sys 944961054 0
 sys/src/cmd/postscript/cropmarks - 20000000775 sys sys 944961054 0
@@ -13956,14 +13956,15 @@ sys/src/cmd/upas/filterkit/pipeto.sample-hold - 664 sys sys 1019837081 872
 sys/src/cmd/upas/filterkit/readaddrs.c - 664 sys sys 1143759341 1331
 sys/src/cmd/upas/filterkit/readaddrs.c - 664 sys sys 1143759341 1331
 sys/src/cmd/upas/filterkit/token.c - 664 sys sys 1018549521 1312
 sys/src/cmd/upas/filterkit/token.c - 664 sys sys 1018549521 1312
 sys/src/cmd/upas/fs - 20000000775 sys sys 988250018 0
 sys/src/cmd/upas/fs - 20000000775 sys sys 988250018 0
-sys/src/cmd/upas/fs/dat.h - 664 sys sys 1143845990 4272
-sys/src/cmd/upas/fs/fs.c - 664 sys sys 1143845990 27463
+sys/src/cmd/upas/fs/dat.h - 664 sys sys 1143929916 4189
+sys/src/cmd/upas/fs/fs.c - 664 sys sys 1143946869 26924
 sys/src/cmd/upas/fs/imap4.c - 664 sys sys 1133147970 16258
 sys/src/cmd/upas/fs/imap4.c - 664 sys sys 1133147970 16258
-sys/src/cmd/upas/fs/mbox.c - 664 sys sys 1143845990 29022
+sys/src/cmd/upas/fs/mbox.c - 664 sys sys 1143929917 26636
 sys/src/cmd/upas/fs/mkfile - 664 sys sys 1047490336 321
 sys/src/cmd/upas/fs/mkfile - 664 sys sys 1047490336 321
 sys/src/cmd/upas/fs/plan9.c - 664 sys sys 1071334861 7465
 sys/src/cmd/upas/fs/plan9.c - 664 sys sys 1071334861 7465
 sys/src/cmd/upas/fs/pop3.c - 664 sys sys 1133988332 13024
 sys/src/cmd/upas/fs/pop3.c - 664 sys sys 1133988332 13024
 sys/src/cmd/upas/fs/readdir.c - 664 sys sys 944961331 203
 sys/src/cmd/upas/fs/readdir.c - 664 sys sys 944961331 203
+sys/src/cmd/upas/fs/rfc2047-test - 664 sys sys 1143946985 1146
 sys/src/cmd/upas/fs/strtotm.c - 664 sys sys 1041137528 1904
 sys/src/cmd/upas/fs/strtotm.c - 664 sys sys 1041137528 1904
 sys/src/cmd/upas/fs/tester.c - 664 sys sys 985037420 1418
 sys/src/cmd/upas/fs/tester.c - 664 sys sys 985037420 1418
 sys/src/cmd/upas/marshal - 20000000775 sys sys 1015009721 0
 sys/src/cmd/upas/marshal - 20000000775 sys sys 1015009721 0

+ 21 - 0
dist/replica/plan9.log

@@ -29211,3 +29211,24 @@
 1143864032 0 c 386/bin/upas/fs - 775 sys sys 1143863649 334451
 1143864032 0 c 386/bin/upas/fs - 775 sys sys 1143863649 334451
 1143864032 1 c 386/bin/upas/marshal - 775 sys sys 1143863649 134381
 1143864032 1 c 386/bin/upas/marshal - 775 sys sys 1143863649 134381
 1143864032 2 c 386/lib/libmach.a - 664 sys sys 1143863651 782098
 1143864032 2 c 386/lib/libmach.a - 664 sys sys 1143863651 782098
+1143919848 0 c sys/src/cmd/postscript/common/rune.h - 664 sys sys 1143918283 376
+1143928853 0 c adm/timezone/US_Alaska - 664 adm adm 1143927130 1518
+1143928853 1 c adm/timezone/US_Central - 664 adm adm 1143927129 1518
+1143928853 2 c adm/timezone/US_East-Indiana - 664 adm adm 1143927129 726
+1143928853 3 c adm/timezone/US_Eastern - 664 adm adm 1143927130 1518
+1143928853 4 c adm/timezone/US_Michigan - 664 adm adm 1143927131 1518
+1143928853 5 c adm/timezone/US_Mountain - 664 adm adm 1143927130 1518
+1143928853 6 c adm/timezone/US_Pacific - 664 adm adm 1143927129 1518
+1143928853 7 c adm/timezone/US_Yukon - 664 adm adm 1143927130 1518
+1143928853 8 c lib/vgadb - 664 sys sys 1143927653 29342
+1143928853 9 c rc/bin/ape/ls - 775 sys sys 1143927118 1032
+1143928853 10 c sys/src/9/pc/vgamga4xx.c - 664 sys sys 1143927896 9573
+1143928853 11 c sys/src/cmd/aux/vga/mga4xx.c - 664 sys sys 1143927895 36098
+1143930653 0 c sys/src/cmd/upas/fs/dat.h - 664 sys sys 1143929916 4189
+1143930653 1 c sys/src/cmd/upas/fs/fs.c - 664 sys sys 1143929917 26776
+1143930653 2 c sys/src/cmd/upas/fs/mbox.c - 664 sys sys 1143929917 26636
+1143932454 0 c 386/9loaddebug - 775 sys sys 1143931720 312489
+1143932454 1 c 386/9loadlitedebug - 775 sys sys 1143931720 200137
+1143946859 0 c sys/src/cmd/upas/fs/fs.c - 664 sys sys 1143946869 26924
+1143948659 0 a sys/src/cmd/upas/fs/rfc2047-test - 664 sys sys 1143946985 1146
+1143950460 0 c 386/bin/aux/vga - 775 sys sys 1143950134 334335

+ 3 - 3
lib/vgadb

@@ -380,9 +380,9 @@ ctlr
 	hwgc=vmwarehwgc
 	hwgc=vmwarehwgc
 
 
 ctlr
 ctlr
-	0xC002D="MATROX/Matrox G400"
-	0xC002D="MATROX/Matrox G450"
-	0xC002D="MATROX/MGA-G200 VGA"
+	vid=0x102B did=0x0521		# Matrox G200
+	vid=0x102B did=0x0525		# Matrox G450
+	vid=0x102B did=0x2527		# Matrox G550
 	link=vga
 	link=vga
 	ctlr=mga4xx linear=1
 	ctlr=mga4xx linear=1
 	hwgc=mga4xxhwgc
 	hwgc=mga4xxhwgc

+ 1 - 1
rc/bin/ape/ls

@@ -33,7 +33,7 @@ if(! ifs=() eval `{aux/getflags $*}){
 
 
 fn fixlong {
 fn fixlong {
 	echo total 1000
 	echo total 1000
-	sed 's/^(.).(.........) . [0-9]+ /\1\2 1 /'
+	/$cputype/bin/sed 's/^(.).(.........) . [0-9]+ /\1\2 1 /'
 }
 }
 
 
 post=cat
 post=cat

+ 7 - 4
sys/src/9/pc/vgamga4xx.c

@@ -20,6 +20,7 @@
 
 
 enum {
 enum {
 	MATROX			= 0x102B,
 	MATROX			= 0x102B,
+	MGA550			= 0x2527,
 	MGA4xx			= 0x0525,
 	MGA4xx			= 0x0525,
 	MGA200			= 0x0521,
 	MGA200			= 0x0521,
 
 
@@ -77,6 +78,8 @@ mgapcimatch(void)
 	Pcidev *p;
 	Pcidev *p;
 	
 	
 	p = pcimatch(nil, MATROX, MGA4xx);
 	p = pcimatch(nil, MATROX, MGA4xx);
+	if(p == nil)
+		p = pcimatch(nil, MATROX, MGA550);
 	if(p == nil)
 	if(p == nil)
 		p = pcimatch(nil, MATROX, MGA200);
 		p = pcimatch(nil, MATROX, MGA200);
 	return p;
 	return p;
@@ -132,7 +135,7 @@ mga4xxenable(VGAscr* scr)
 	addvgaseg("mga4xxmmio", pci->mem[1].bar&~0x0F, pci->mem[1].size);
 	addvgaseg("mga4xxmmio", pci->mem[1].bar&~0x0F, pci->mem[1].size);
 
 
 	/* need to map frame buffer here too, so vga can find memory size */
 	/* need to map frame buffer here too, so vga can find memory size */
-	if(pci->did == MGA4xx)
+	if(pci->did == MGA4xx || pci->did == MGA550)
 		size = 32*MB;
 		size = 32*MB;
 	else
 	else
 		size = 8*MB;
 		size = 8*MB;
@@ -464,9 +467,9 @@ mga4xxdrawinit(VGAscr *scr)
 	uchar *mga;
 	uchar *mga;
  	Pcidev *p;
  	Pcidev *p;
 
 
-	p = pcimatch(nil, MATROX, MGA4xx);
-	if(p == nil)
-		return ;
+	p = mgapcimatch();
+	if(p->did == MGA200)
+		return;
 
 
 	if(scr->mmio == 0)
 	if(scr->mmio == 0)
 		return;
 		return;

+ 21 - 13
sys/src/cmd/aux/vga/mga4xx.c

@@ -8,6 +8,7 @@
 				  Big Endian format ! (+ Fix for the palette init. )
 				  Big Endian format ! (+ Fix for the palette init. )
 	- 2001-09-06 : Added Full 2D Accel ! (see drivers in /sys/src/9/pc)
 	- 2001-09-06 : Added Full 2D Accel ! (see drivers in /sys/src/9/pc)
 	- 2001-10-01 : Rid Fix.
 	- 2001-10-01 : Rid Fix.
+	- 2006-04-01 : Add MGA550 support.
 
 
      Greets and Acknowledgements go to :
      Greets and Acknowledgements go to :
      	- Sylvain Chipaux <a.k.a. asle>.
      	- Sylvain Chipaux <a.k.a. asle>.
@@ -34,7 +35,8 @@ enum {
 	Meg			= 1024*1024,
 	Meg			= 1024*1024,
 	
 	
 	MATROX			= 0x102B,	/* pci chip manufacturer */
 	MATROX			= 0x102B,	/* pci chip manufacturer */
-	MGA4XX			= 0x0525,	/* pci chip device ids */
+	MGA550			= 0x2527, /* pci chip device ids */
+	MGA4XX			= 0x0525,
 	MGA200			= 0x0521,
 	MGA200			= 0x0521,
 
 
 	/* Pci configuration space mapping */
 	/* Pci configuration space mapping */
@@ -513,16 +515,21 @@ snarf(Vga* vga, Ctlr* ctlr)
 	trace("%s->snarf\n", ctlr->name);
 	trace("%s->snarf\n", ctlr->name);
 	if(vga->private == nil) {
 	if(vga->private == nil) {
 		pci = pcimatch(nil, MATROX, MGA4XX);
 		pci = pcimatch(nil, MATROX, MGA4XX);
-		if(pci == nil) {
+		if(pci == nil)
+			pci = pcimatch(nil, MATROX, MGA550);
+		if(pci == nil)
 			pci = pcimatch(nil, MATROX, MGA200);
 			pci = pcimatch(nil, MATROX, MGA200);
-			if(pci == nil) {
-				error("%s: no Pcidev with Vid=0x102B, Did=0x052[51]\n", ctlr->name);
-			}
-		}
+		if(pci == nil)
+			error("%s: cannot find matrox adapter\n", ctlr->name);
 
 
 		rid = pcicfgr8(pci, PciRID); // PciRID = 0x08
 		rid = pcicfgr8(pci, PciRID); // PciRID = 0x08
 
 
-		trace("%s: G%d%d0 rev %d\n", ctlr->name, pci->did==0x0521?2:4, rid&0x80?5:0, rid&(~0x80));
+		trace("%s: G%d%d0 rev %d\n", ctlr->name, 
+			2*(pci->did==MGA200)
+			+4*(pci->did==MGA4XX)
+			+5*(pci->did==MGA550),
+			rid&0x80 ? 5 : 0,
+			rid&~0x80);
 		i = pcicfgr32(pci, PCfgMgaDevCtrl);
 		i = pcicfgr32(pci, PCfgMgaDevCtrl);
 		if ((i & 2) != 2)
 		if ((i & 2) != 2)
 			error("%s: Memory Space not enabled ... Aborting ...\n", ctlr->name);	
 			error("%s: Memory Space not enabled ... Aborting ...\n", ctlr->name);	
@@ -982,7 +989,7 @@ g400_calcclock(Mga* mga, long Fneeded)
 	double 	Ferr, Fcalc;
 	double 	Ferr, Fcalc;
 	int		m, n, p;
 	int		m, n, p;
 	
 	
-	if (mga->devid == 0x0525) {
+	if (mga->devid == MGA4XX || mga->devid == MGA550) {
 		/* These values are taken from Matrox G400 Specification - p 4-91 */
 		/* These values are taken from Matrox G400 Specification - p 4-91 */
 		Fref     		= 27000000.0;
 		Fref     		= 27000000.0;
 		pixpll_n_min 	= 7;
 		pixpll_n_min 	= 7;
@@ -990,7 +997,7 @@ g400_calcclock(Mga* mga, long Fneeded)
 		pixpll_m_min	= 1;
 		pixpll_m_min	= 1;
 		pixpll_m_max	= 31;
 		pixpll_m_max	= 31;
 		pixpll_p_max 	= 7;
 		pixpll_p_max 	= 7;
-	} else { 				/* 0x0521 */
+	} else { 				/* MGA200 */
 		/* These values are taken from Matrox G200 Specification - p 4-77 */
 		/* These values are taken from Matrox G200 Specification - p 4-77 */
 		//Fref     		= 14318180.0;
 		//Fref     		= 14318180.0;
 		Fref     		= 27050500.0;
 		Fref     		= 27050500.0;
@@ -1024,7 +1031,7 @@ g400_calcclock(Mga* mga, long Fneeded)
 	
 	
 	Fvco = Fref * (mga->pixpll_n + 1) / (mga->pixpll_m + 1);
 	Fvco = Fref * (mga->pixpll_n + 1) / (mga->pixpll_m + 1);
 
 
-	if (mga->devid == 0x0525) {
+	if (mga->devid == MGA4XX || mga->devid == MGA550) {
 		if ( (50000000.0 <= Fvco) && (Fvco < 110000000.0) )
 		if ( (50000000.0 <= Fvco) && (Fvco < 110000000.0) )
 			mga->pixpll_p |= 0;	
 			mga->pixpll_p |= 0;	
 		if ( (110000000.0 <= Fvco) && (Fvco < 170000000.0) )
 		if ( (110000000.0 <= Fvco) && (Fvco < 170000000.0) )
@@ -1089,7 +1096,7 @@ init(Vga* vga, Ctlr* ctlr)
 	trace("%s: Interlace = %d\n", 			ctlr->name, mode->interlace);
 	trace("%s: Interlace = %d\n", 			ctlr->name, mode->interlace);
 
 
 	/* TODO : G400 Max : 360000000 */
 	/* TODO : G400 Max : 360000000 */
-	if (mga->devid == 0x0525)
+	if (mga->devid == MGA4XX || mga->devid == MGA550)
 		mga->maxpclk	= 300000000;
 		mga->maxpclk	= 300000000;
 	else
 	else
 		mga->maxpclk	= 250000000;
 		mga->maxpclk	= 250000000;
@@ -1103,7 +1110,7 @@ init(Vga* vga, Ctlr* ctlr)
 			mode->frequency, mga->maxpclk);
 			mode->frequency, mga->maxpclk);
 	
 	
 	trace("mga: revision ID is %x\n", mga->revid);
 	trace("mga: revision ID is %x\n", mga->revid);
-	if ((mga->revid == 0x0521) || ((mga->revid & 0x80) == 0x00)) { 
+	if ((mga->devid == MGA200) || ((mga->devid == MGA4XX) && (mga->revid & 0x80) == 0x00)) {
 		/* Is it G200/G400 or G450 ? */
 		/* Is it G200/G400 or G450 ? */
 		Fpll = g400_calcclock(mga, mode->frequency);
 		Fpll = g400_calcclock(mga, mode->frequency);
 		trace("Fpll set to %f\n", Fpll);
 		trace("Fpll set to %f\n", Fpll);
@@ -1483,7 +1490,7 @@ load(Vga* vga, Ctlr* ctlr)
 	for (i = 0; i < 50; i++)
 	for (i = 0; i < 50; i++)
 		mgaread32(mga, MGA_STATUS);
 		mgaread32(mga, MGA_STATUS);
 
 
-	if ((mga->devid == 0x0521) || ((mga->revid & 0x80) == 0x00))	{ 
+	if ((mga->devid == MGA200) || ((mga->devid == MGA4XX) && (mga->revid & 0x80) == 0x00)) { 
 		dacset(mga, Dac_Xpixpllcm, mga->pixpll_m, 0xff);
 		dacset(mga, Dac_Xpixpllcm, mga->pixpll_m, 0xff);
 		dacset(mga, Dac_Xpixpllcn, mga->pixpll_n, 0xff);
 		dacset(mga, Dac_Xpixpllcn, mga->pixpll_n, 0xff);
 		dacset(mga, Dac_Xpixpllcp, mga->pixpll_p, 0xff);
 		dacset(mga, Dac_Xpixpllcp, mga->pixpll_p, 0xff);
@@ -1494,6 +1501,7 @@ load(Vga* vga, Ctlr* ctlr)
 			;
 			;
 		trace("mga: pixpll locked !\n");
 		trace("mga: pixpll locked !\n");
 	} else {
 	} else {
+	/* MGA450 and MGA550 */
 		/* Wait until new clock becomes stable */
 		/* Wait until new clock becomes stable */
 		trace("mga450: waiting for the clock source becomes stable ...\n");
 		trace("mga450: waiting for the clock source becomes stable ...\n");
 		while ((dacget(mga, Dac_Xpixpllstat) & Pixlock) != Pixlock)
 		while ((dacget(mga, Dac_Xpixpllstat) & Pixlock) != Pixlock)

+ 1 - 1
sys/src/cmd/postscript/common/rune.h

@@ -14,6 +14,6 @@ enum
 	UTFmax		= 3,		/* maximum bytes per rune */
 	UTFmax		= 3,		/* maximum bytes per rune */
 	Runesync	= 0x80,		/* cannot represent part of a utf sequence (<) */
 	Runesync	= 0x80,		/* cannot represent part of a utf sequence (<) */
 	Runeself	= 0x80,		/* rune and utf sequences are the same (<) */
 	Runeself	= 0x80,		/* rune and utf sequences are the same (<) */
-	Runeerror	= 0x80,		/* decoding error in utf */
+	Runeerror	= 0xFFFD,		/* decoding error in utf */
 };
 };
 #endif
 #endif

+ 0 - 2
sys/src/cmd/upas/fs/dat.h

@@ -132,8 +132,6 @@ void		convert(Message*);
 void		decode(Message*);
 void		decode(Message*);
 int		cistrncmp(char*, char*, int);
 int		cistrncmp(char*, char*, int);
 int		cistrcmp(char*, char*);
 int		cistrcmp(char*, char*);
-int		latin1toutf(char*, char*, char*);
-int		windows1257toutf(char*, char*, char*);
 int		decquoted(char*, char*, char*, int);
 int		decquoted(char*, char*, char*, int);
 int		xtoutf(char*, char**, char*, char*);
 int		xtoutf(char*, char**, char*, char*);
 void		countlines(Message*);
 void		countlines(Message*);

+ 30 - 62
sys/src/cmd/upas/fs/fs.c

@@ -2,6 +2,7 @@
 #include <auth.h>
 #include <auth.h>
 #include <fcall.h>
 #include <fcall.h>
 #include <libsec.h>
 #include <libsec.h>
+#include <ctype.h>
 #include "dat.h"
 #include "dat.h"
 
 
 enum
 enum
@@ -139,7 +140,7 @@ int	logging;
 void
 void
 usage(void)
 usage(void)
 {
 {
-	fprint(2, "usage: %s [-b -m mountpoint]\n", argv0);
+	fprint(2, "usage: upas/fs [-bdlnps] [-f mboxfile] [-m mountpoint]\n");
 	exits("usage");
 	exits("usage");
 }
 }
 
 
@@ -176,10 +177,10 @@ main(int argc, char *argv[])
 		break;
 		break;
 	case 'f':
 	case 'f':
 		fflag = 1;
 		fflag = 1;
-		mboxfile = ARGF();
+		mboxfile = EARGF(usage());
 		break;
 		break;
 	case 'm':
 	case 'm':
-		mntpt = ARGF();
+		mntpt = EARGF(usage());
 		break;
 		break;
 	case 'd':
 	case 'd':
 		debug = 1;
 		debug = 1;
@@ -200,6 +201,8 @@ main(int argc, char *argv[])
 		usage();
 		usage();
 	}ARGEND
 	}ARGEND
 
 
+	if(argc)
+		usage();
 	if(pipe(p) < 0)
 	if(pipe(p) < 0)
 		error("pipe failed");
 		error("pipe failed");
 	mfd[0] = p[0];
 	mfd[0] = p[0];
@@ -1349,32 +1352,12 @@ hdrlen(char *p, char *e)
 	return ep - p;
 	return ep - p;
 }
 }
 
 
-// rfc2047 non-ascii
-typedef struct Charset Charset;
-struct Charset {
-	char *name;
-	int len;
-	int convert;
-	char *tcsname;
-} charsets[] =
-{
-	{ "us-ascii",		8,	1, nil, },
-	{ "utf-8",		5,	0, nil, },
-	{ "iso-8859-1",		10,	1, nil, },
-	{ "iso-8859-2",		10,	2, "8859-2", },
-	{ "big5",		4,	2, "big5", },
-	{ "iso-2022-jp",	11, 2, "jis", },
-	{ "windows-1251",	12,	2, "cp1251"},
-	{ "koi8-r",		6,	2, "koi8"},
-};
-
+// rfc2047 non-ascii: =?charset?q?encoded-text?=
 int
 int
 rfc2047convert(String *s, char *token, int len)
 rfc2047convert(String *s, char *token, int len)
 {
 {
-	char decoded[1024];
-	char utfbuf[2*1024];
-	int i;
-	char *e, *x;
+	char charset[100], decoded[1024], *e, *x;
+	int l;
 
 
 	if(len == 0)
 	if(len == 0)
 		return -1;
 		return -1;
@@ -1382,15 +1365,13 @@ rfc2047convert(String *s, char *token, int len)
 	e = token+len-2;
 	e = token+len-2;
 	token += 2;
 	token += 2;
 
 
-	// bail if we don't understand the character set
-	for(i = 0; i < nelem(charsets); i++)
-		if(cistrncmp(charsets[i].name, token, charsets[i].len) == 0)
-		if(token[charsets[i].len] == '?'){
-			token += charsets[i].len + 1;
-			break;
-		}
-	if(i >= nelem(charsets))
+	x = memchr(token, '?', e-token);
+	if(x == nil || (l=x-token) >= sizeof charset)
 		return -1;
 		return -1;
+	memmove(charset, token, l);
+	charset[l] = 0;
+
+	token = x+1;
 
 
 	// bail if it doesn't fit 
 	// bail if it doesn't fit 
 	if(e-token > sizeof(decoded)-1)
 	if(e-token > sizeof(decoded)-1)
@@ -1410,24 +1391,12 @@ rfc2047convert(String *s, char *token, int len)
 	} else
 	} else
 		return -1;
 		return -1;
 
 
-	switch(charsets[i].convert){
-	case 0:
+	if(xtoutf(charset, &x, decoded, decoded+len) <= 0)
 		s_append(s, decoded);
 		s_append(s, decoded);
-		break;
-	case 1:
-		latin1toutf(utfbuf, decoded, decoded+len);
-		s_append(s, utfbuf);
-		break;
-	case 2:
-		if(xtoutf(charsets[i].tcsname, &x, decoded, decoded+len) <= 0){
-			s_append(s, decoded);
-		} else {
-			s_append(s, x);
-			free(x);
-		}
-		break;
+	else {
+		s_append(s, x);
+		free(x);
 	}
 	}
-
 	return 0;
 	return 0;
 }
 }
 
 
@@ -1466,21 +1435,20 @@ rfc2047start(char *start, char *end)
 String*
 String*
 stringconvert(String *s, char *uneaten, int len)
 stringconvert(String *s, char *uneaten, int len)
 {
 {
-	char *token;
-	char *p;
-	int i;
+	char *token, *p, *e;
 
 
 	s = s_reset(s);
 	s = s_reset(s);
 	p = uneaten;
 	p = uneaten;
-	for(i = 0; i < len; i++){
-		if(*p++ == '='){
-			token = rfc2047start(uneaten, p);
-			if(token != nil){
-				s_nappend(s, uneaten, token-uneaten);
-				if(rfc2047convert(s, token, p - token) < 0)
-					s_nappend(s, token, p - token);
-				uneaten = p;
-			}
+	for(e = p+len; p < e; ){
+		while(*p++ == '=' && (token = rfc2047start(uneaten, p))){
+			s_nappend(s, uneaten, token-uneaten);
+			if(rfc2047convert(s, token, p - token) < 0)
+				s_nappend(s, token, p - token);
+			uneaten = p;
+			for(; p<e && isspace(*p);)
+				p++;
+			if(p+2 < e && p[0] == '=' && p[1] == '?')
+				uneaten = p;	// paste
 		}
 		}
 	}
 	}
 	if(p > uneaten)
 	if(p > uneaten)

+ 52 - 164
sys/src/cmd/upas/fs/mbox.c

@@ -1070,112 +1070,17 @@ convert(Message *m)
 	if(cistrncmp(s_to_c(m->type), "text", 4) != 0)
 	if(cistrncmp(s_to_c(m->type), "text", 4) != 0)
 		return;
 		return;
 
 
-	if(cistrcmp(s_to_c(m->charset), "us-ascii") == 0 ||
-	   cistrcmp(s_to_c(m->charset), "iso-8859-1") == 0){
-		len = is8bit(m);
-		if(len > 0){
-			len = 2*len + m->bend - m->body + 1;
-			x = emalloc(len);
-			len = latin1toutf(x, m->body, m->bend);
-			if(m->ballocd)
-				free(m->body);
-			m->body = x;
-			m->bend = x + len;
-			m->ballocd = 1;
-		}
-	} else if(cistrcmp(s_to_c(m->charset), "iso-8859-2") == 0){
-		len = xtoutf("8859-2", &x, m->body, m->bend);
-		if(len != 0){
-			if(m->ballocd)
-				free(m->body);
-			m->body = x;
-			m->bend = x + len;
-			m->ballocd = 1;
-		}
-	} else if(cistrcmp(s_to_c(m->charset), "iso-8859-15") == 0){
-		len = xtoutf("8859-15", &x, m->body, m->bend);
-		if(len != 0){
-			if(m->ballocd)
-				free(m->body);
-			m->body = x;
-			m->bend = x + len;
-			m->ballocd = 1;
-		}
-	} else if(cistrcmp(s_to_c(m->charset), "big5") == 0){
-		len = xtoutf("big5", &x, m->body, m->bend);
-		if(len != 0){
-			if(m->ballocd)
-				free(m->body);
-			m->body = x;
-			m->bend = x + len;
-			m->ballocd = 1;
-		}
-	} else if(cistrcmp(s_to_c(m->charset), "iso-2022-jp") == 0){
-		len = xtoutf("jis", &x, m->body, m->bend);
-		if(len != 0){
-			if(m->ballocd)
-				free(m->body);
-			m->body = x;
-			m->bend = x + len;
-			m->ballocd = 1;
-		}
-	} else if(cistrcmp(s_to_c(m->charset), "windows-1257") == 0
-			|| cistrcmp(s_to_c(m->charset), "windows-1252") == 0){
-		len = is8bit(m);
-		if(len > 0){
-			len = 2*len + m->bend - m->body + 1;
-			x = emalloc(len);
-			len = windows1257toutf(x, m->body, m->bend);
-			if(m->ballocd)
-				free(m->body);
-			m->body = x;
-			m->bend = x + len;
-			m->ballocd = 1;
-		}
-	} else if(cistrcmp(s_to_c(m->charset), "windows-1251") == 0){
-		len = xtoutf("cp1251", &x, m->body, m->bend);
-		if(len != 0){
-			if(m->ballocd)
-				free(m->body);
-			m->body = x;
-			m->bend = x + len;
-			m->ballocd = 1;
-		}
-	} else if(cistrcmp(s_to_c(m->charset), "koi8-r") == 0){
-		len = xtoutf("koi8", &x, m->body, m->bend);
-		if(len != 0){
-			if(m->ballocd)
-				free(m->body);
-			m->body = x;
-			m->bend = x + len;
-			m->ballocd = 1;
-		}
+	len = xtoutf(s_to_c(m->charset), &x, m->body, m->bend);
+	if(len > 0){
+		if(m->ballocd)
+			free(m->body);
+		m->body = x;
+		m->bend = x + len;
+		m->ballocd = 1;
 	}
 	}
-
 	m->converted = 1;
 	m->converted = 1;
 }
 }
 
 
-enum
-{
-	Self=	1,
-	Hex=	2,
-};
-uchar	tableqp[256];
-
-static void
-initquoted(void)
-{
-	int c;
-
-	memset(tableqp, 0, 256);
-	for(c = ' '; c <= '<'; c++)
-		tableqp[c] = Self;
-	for(c = '>'; c <= '~'; c++)
-		tableqp[c] = Self;
-	tableqp['\t'] = Self;
-	tableqp['='] = Hex;
-}
-
 static int
 static int
 hex2int(int x)
 hex2int(int x)
 {
 {
@@ -1188,6 +1093,8 @@ hex2int(int x)
 	return 0;
 	return 0;
 }
 }
 
 
+// underscores are translated in 2047 headers (uscores=1) 
+// but not in the body (uscores=0)
 static char*
 static char*
 decquotedline(char *out, char *in, char *e, int uscores)
 decquotedline(char *out, char *in, char *e, int uscores)
 {
 {
@@ -1206,13 +1113,16 @@ decquotedline(char *out, char *in, char *e, int uscores)
 
 
 	while(in <= e){
 	while(in <= e){
 		c = (*in++) & 0xff;
 		c = (*in++) & 0xff;
-		switch(tableqp[c]){
-		case Self:
-			if(uscores && c == '_')
-				c = ' ';
+		switch(c){
+		case '_':
+			if(uscores){
+				*out++ = ' ';
+				break;
+			}
+		default:
 			*out++ = c;
 			*out++ = c;
 			break;
 			break;
-		case Hex:
+		case '=':
 			c = hex2int(*in++)<<4;
 			c = hex2int(*in++)<<4;
 			c |= hex2int(*in++);
 			c |= hex2int(*in++);
 			*out++ = c;
 			*out++ = c;
@@ -1231,9 +1141,6 @@ decquoted(char *out, char *in, char *e, int uscores)
 {
 {
 	char *p, *nl;
 	char *p, *nl;
 
 
-	if(tableqp[' '] == 0)
-		initquoted();
-
 	p = out;
 	p = out;
 	while((nl = strchr(in, '\n')) != nil && nl < e){
 	while((nl = strchr(in, '\n')) != nil && nl < e){
 		p = decquotedline(p, in, nl, uscores);
 		p = decquotedline(p, in, nl, uscores);
@@ -1263,38 +1170,35 @@ lowercase(char *p)
 	return op;
 	return op;
 }
 }
 
 
-/*
- *  return number of 8 bit characters
- */
+// translate latin1 directly since it fits neatly in utf
 static int
 static int
-is8bit(Message *m)
+latin1toutf(char **out, char *in, char *e)
 {
 {
-	int count = 0;
+	int n;
 	char *p;
 	char *p;
+	Rune r;
 
 
-	for(p = m->body; p < m->bend; p++)
+	n = 0;
+	for(p = in; p < e; p++)
 		if(*p & 0x80)
 		if(*p & 0x80)
-			count++;
-	return count;
-}
+			n++;
+	if(n == 0)
+		return 0;
 
 
-// translate latin1 directly since it fits neatly in utf
-int
-latin1toutf(char *out, char *in, char *e)
-{
-	Rune r;
-	char *p;
+	n += e-in;
+	*out = p = malloc(n+1);
+	if(p == nil)
+		return 0;
 
 
-	p = out;
 	for(; in < e; in++){
 	for(; in < e; in++){
-		r = (*in) & 0xff;
+		r = (uchar)*in;
 		p += runetochar(p, &r);
 		p += runetochar(p, &r);
 	}
 	}
 	*p = 0;
 	*p = 0;
-	return p - out;
+	return p - *out;
 }
 }
 
 
-// translate any thing else using the tcs program
+// translate any thing using the tcs program
 int
 int
 xtoutf(char *charset, char **out, char *in, char *e)
 xtoutf(char *charset, char **out, char *in, char *e)
 {
 {
@@ -1304,6 +1208,12 @@ xtoutf(char *charset, char **out, char *in, char *e)
 	int n, len, sofar;
 	int n, len, sofar;
 	char *p;
 	char *p;
 
 
+	// might not need to convert
+	if(cistrcmp(charset, "us-ascii") == 0 || cistrcmp(charset, "utf-8") == 0)
+		return 0;
+	if(cistrcmp(charset, "iso-8859-1") == 0)
+		return latin1toutf(out, in, e);
+
 	len = e-in+1;
 	len = e-in+1;
 	sofar = 0;
 	sofar = 0;
 	*out = p = malloc(len+1);
 	*out = p = malloc(len+1);
@@ -1315,16 +1225,16 @@ xtoutf(char *charset, char **out, char *in, char *e)
 	av[2] = charset;
 	av[2] = charset;
 	av[3] = 0;
 	av[3] = 0;
 	if(pipe(totcs) < 0)
 	if(pipe(totcs) < 0)
-		return 0;
+		goto error;
 	if(pipe(fromtcs) < 0){
 	if(pipe(fromtcs) < 0){
 		close(totcs[0]); close(totcs[1]);
 		close(totcs[0]); close(totcs[1]);
-		return 0;
+		goto error;
 	}
 	}
 	switch(rfork(RFPROC|RFFDG|RFNOWAIT)){
 	switch(rfork(RFPROC|RFFDG|RFNOWAIT)){
 	case -1:
 	case -1:
 		close(fromtcs[0]); close(fromtcs[1]);
 		close(fromtcs[0]); close(fromtcs[1]);
 		close(totcs[0]); close(totcs[1]);
 		close(totcs[0]); close(totcs[1]);
-		return 0;
+		goto error;
 	case 0:
 	case 0:
 		close(fromtcs[0]); close(totcs[1]);
 		close(fromtcs[0]); close(totcs[1]);
 		dup(fromtcs[1], 1);
 		dup(fromtcs[1], 1);
@@ -1338,7 +1248,7 @@ xtoutf(char *charset, char **out, char *in, char *e)
 		switch(rfork(RFPROC|RFFDG|RFNOWAIT)){
 		switch(rfork(RFPROC|RFFDG|RFNOWAIT)){
 		case -1:
 		case -1:
 			close(fromtcs[0]); close(totcs[1]);
 			close(fromtcs[0]); close(totcs[1]);
-			return 0;
+			goto error;
 		case 0:
 		case 0:
 			close(fromtcs[0]);
 			close(fromtcs[0]);
 			while(in < e){
 			while(in < e){
@@ -1359,9 +1269,10 @@ xtoutf(char *charset, char **out, char *in, char *e)
 				p[sofar] = 0;
 				p[sofar] = 0;
 				if(sofar == len){
 				if(sofar == len){
 					len += 1024;
 					len += 1024;
-					*out = p = realloc(p, len+1);
+					p = realloc(p, len+1);
 					if(p == nil)
 					if(p == nil)
-						return 0;
+						goto error;
+					*out = p;
 				}
 				}
 			}
 			}
 			close(fromtcs[0]);
 			close(fromtcs[0]);
@@ -1369,37 +1280,14 @@ xtoutf(char *charset, char **out, char *in, char *e)
 		}
 		}
 		break;
 		break;
 	}
 	}
+	if(sofar == 0)
+		goto error;
 	return sofar;
 	return sofar;
-}
-
-enum {
-	Winstart= 0x7f,
-	Winend= 0x9f,
-};
-
-Rune winchars[] = {
-	L'•',
-	L'•', L'•', L'‚', L'ƒ', L'„', L'…', L'†', L'‡',
-	L'ˆ', L'‰', L'Š', L'‹', L'Œ', L'•', L'•', L'•',
-	L'•', L'‘', L'’', L'“', L'”', L'•', L'–', L'—',
-	L'˜', L'™', L'š', L'›', L'œ', L'•', L'•', L'Ÿ',
-};
 
 
-int
-windows1257toutf(char *out, char *in, char *e)
-{
-	Rune r;
-	char *p;
-
-	p = out;
-	for(; in < e; in++){
-		r = (*in) & 0xff;
-		if(r >= 0x7f && r <= 0x9f)
-			r = winchars[r-0x7f];
-		p += runetochar(p, &r);
-	}
-	*p = 0;
-	return p - out;
+error:
+	free(*out);
+	*out = nil;
+	return 0;
 }
 }
 
 
 void *
 void *

+ 28 - 0
sys/src/cmd/upas/fs/rfc2047-test

@@ -0,0 +1,28 @@
+From moore@cs.utk.edu Tue Mar 28 21:58:10 CST 2006
+From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>
+To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
+CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>
+Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
+    =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
+
+From moore@cs.utk.edu Tue Mar 28 21:58:10 CST 2006
+From: =?ISO-8859-1?Q?Olle_J=E4rnefors?= <ojarnef@admin.kth.se>
+To: ietf-822@dimacs.rutgers.edu, ojarnef@admin.kth.se
+Subject: Time for ISO 10646?
+
+From moore@cs.utk.edu Tue Mar 28 21:58:10 CST 2006
+To: Dave Crocker <dcrocker@mordor.stanford.edu>
+Cc: ietf-822@dimacs.rutgers.edu, paf@comsol.se
+From: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= <paf@nada.kth.se>
+Subject: Re: RFC-HDR care and feeding
+
+From moore@cs.utk.edu Tue Mar 28 21:58:10 CST 2006
+From: Nathaniel Borenstein <nsb@thumper.bellcore.com>
+	(=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)
+To: Greg Vaudreuil <gvaudre@NRI.Reston.VA.US>, Ned Freed
+      <ned@innosoft.com>, Keith Moore <moore@cs.utk.edu>
+Subject: Test of new header generator
+MIME-Version: 1.0
+Content-type: text/plain; charset=ISO-8859-1
+
+