# HG changeset patch # User Erik Quanstrom # Date 1329923379 -3600 # Node ID c7fcc2202d7c9e80d233174f75c66fabdfe92d55 # Parent 0a28e31635376cca8751312157727dcc79f6a453 src/cmd: correct superscripts 1, 2 and 3 unicode unified the latin1 superscripts with the 2070 range, so 2071-2073 were not defined codepoints even in unicode 1.0 http://www.unicode.org/Public/reconstructed/1.0.1/UnicodeData.txt and in unicode 4.0, 2071 became a superscript i. http://www.unicode.org/Public/4.0-Update/UnicodeData-4.0.0.txt R=nixiedev, john, nemo CC=nix-dev http://codereview.appspot.com/5656060 Committer: Francisco J Ballesteros diff -r 0a28e3163537 -r c7fcc2202d7c sys/src/cmd/cwfs/main.c --- a/sys/src/cmd/cwfs/main.c Wed Feb 22 16:08:09 2012 +0100 +++ b/sys/src/cmd/cwfs/main.c Wed Feb 22 16:09:39 2012 +0100 @@ -149,7 +149,7 @@ } /* - * compute BUFSIZE*(NDBLOCK+INDPERBUF+INDPERBUF⁲+INDPERBUF⁳+INDPERBUF⁴) + * compute BUFSIZE*(NDBLOCK+INDPERBUF+INDPERBUF²+INDPERBUF³+INDPERBUF⁴) * while watching for overflow; in that case, return 0. */ @@ -191,8 +191,8 @@ } enum { - INDPERBUF⁲ = ((uvlong)INDPERBUF *INDPERBUF), - INDPERBUF⁴ = ((uvlong)INDPERBUF⁲*INDPERBUF⁲), + INDPERBUF² = ((uvlong)INDPERBUF *INDPERBUF), + INDPERBUF⁴ = ((uvlong)INDPERBUF²*INDPERBUF²), }; static void @@ -210,9 +210,9 @@ max = offlim - 1; print("max file size = %,llud\n", (Wideoff)max); } - if (INDPERBUF⁲/INDPERBUF != INDPERBUF) - print("overflow computing INDPERBUF⁲\n"); - if (INDPERBUF⁴/INDPERBUF⁲ != INDPERBUF⁲) + if (INDPERBUF²/INDPERBUF != INDPERBUF) + print("overflow computing INDPERBUF²\n"); + if (INDPERBUF⁴/INDPERBUF² != INDPERBUF²) print("overflow computing INDPERBUF⁴\n"); print("\tINDPERBUF = %d, INDPERBUF^4 = %,lld, ", INDPERBUF, (Wideoff)INDPERBUF⁴); diff -r 0a28e3163537 -r c7fcc2202d7c sys/src/cmd/dict/oed.c --- a/sys/src/cmd/dict/oed.c Wed Feb 22 16:08:09 2012 +0100 +++ b/sys/src/cmd/dict/oed.c Wed Feb 22 16:09:39 2012 +0100 @@ -204,6 +204,7 @@ static Assoc spectab[] = { {"3on4", L'¾'}, + {"3on8", L'⅜'}, {"Aacu", L'Á'}, {"Aang", L'Å'}, {"Abarab", L'Ā'}, @@ -237,7 +238,7 @@ {"Lambda", L'Λ'}, {"Lbar", L'Ł'}, {"Mu", L'Μ'}, - {"Naira", L'N'}, /* should have bar through */ + {"Naira", L'₦'}, {"Nplus", L'N'}, /* should have plus above */ {"Ntilde", L'Ñ'}, {"Nu", L'Ν'}, @@ -742,7 +743,7 @@ {"ssTau", L'Τ'}, {"star", L'*'}, {"stlig", MLST}, - {"sup2", L'⁲'}, + {"sup2", L'²'}, {"supgt", L'˃'}, {"suplt", L'˂'}, {"sur", L'ʳ'}, @@ -807,7 +808,6 @@ equivalents in Unicode, so aren't in the above table. 22n 2^(2^n) Cf Fermat 2on4 2/4 - 3on8 3/8 Bantuo Bantu O. Cf Otshi-herero Car C with circular arrow on top albrtime cut-time: C with vertical line @@ -974,7 +974,7 @@ NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, /*20*/ L' ', L'!', L'"', L'#', L'$', L'%', SPCS, L'\'', L'⁽', L'⁾', L'*', L'⁺', L',', L'⁻', L'.', L'/', -/*30*/ L'⁰', L'ⁱ', L'⁲', L'⁳', L'⁴', L'⁵', L'⁶', L'⁷', +/*30*/ L'⁰', L'¹', L'²', L'³', L'⁴', L'⁵', L'⁶', L'⁷', L'⁸', L'⁹', L':', L';', TAGS, L'⁼', TAGE, L'?', /*40*/ L'@', L'A', L'B', L'C', L'D', L'E', L'F', L'G', L'H', L'I', L'J', L'K', L'L', L'M', L'N', L'O', diff -r 0a28e3163537 -r c7fcc2202d7c sys/src/cmd/dict/pgw.c --- a/sys/src/cmd/dict/pgw.c Wed Feb 22 16:08:09 2012 +0100 +++ b/sys/src/cmd/dict/pgw.c Wed Feb 22 16:09:39 2012 +0100 @@ -599,7 +599,7 @@ {"ssTau", L'Τ'}, {"star", L'*'}, {"stlig", MLST}, - {"sup2", L'⁲'}, + {"sup2", L'²'}, {"supgt", L'˃'}, {"suplt", L'˂'}, {"sur", L'ʳ'}, @@ -831,7 +831,7 @@ NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, /*20*/ L' ', L'!', L'"', L'#', L'$', L'%', SPCS, L'\'', L'⁽', L'⁾', L'*', L'⁺', L',', L'⁻', L'.', L'/', -/*30*/ L'⁰', L'ⁱ', L'⁲', L'⁳', L'⁴', L'⁵', L'⁶', L'⁷', +/*30*/ L'⁰', L'¹', L'²', L'³', L'⁴', L'⁵', L'⁶', L'⁷', L'⁸', L'⁹', L':', L';', TAGS, L'⁼', TAGE, L'?', /*40*/ L'@', L'A', L'B', L'C', L'D', L'E', L'F', L'G', L'H', L'I', L'J', L'K', L'L', L'M', L'N', L'O', diff -r 0a28e3163537 -r c7fcc2202d7c sys/src/cmd/dict/robert.c --- a/sys/src/cmd/dict/robert.c Wed Feb 22 16:08:09 2012 +0100 +++ b/sys/src/cmd/dict/robert.c Wed Feb 22 16:09:39 2012 +0100 @@ -59,7 +59,7 @@ }; static Rune suptab[] = { - ['0'] L'⁰', ['1'] L'ⁱ', ['2'] L'⁲', ['3'] L'⁳', + ['0'] L'⁰', ['1'] L'¹', ['2'] L'²', ['3'] L'³', ['4'] L'⁴', ['5'] L'⁵', ['6'] L'⁶', ['7'] L'⁷', ['8'] L'⁸', ['9'] L'⁹', ['+'] L'⁺', ['-'] L'⁻', ['='] L'⁼', ['('] L'⁽', [')'] L'⁾', ['a'] L'ª', @@ -106,6 +106,8 @@ if(db == 0) db = Bouvrir(dfile); def.start = malloc(dl+1); + if(def.start == nil) + sysfatal("malloc: %r"); def.end = def.start + dl; def.doff = da; Bseek(db, da, 0); @@ -118,6 +120,8 @@ eb = Bouvrir(efile); etym.start = malloc(el+1); etym.end = etym.start + el; + if(etym.start == nil) + sysfatal("malloc: %r"); etym.doff = ea; Bseek(eb, ea, 0); Bread(eb, etym.start, el); diff -r 0a28e3163537 -r c7fcc2202d7c sys/src/cmd/scuzz/scsireq.h --- a/sys/src/cmd/scuzz/scsireq.h Wed Feb 22 16:08:09 2012 +0100 +++ b/sys/src/cmd/scuzz/scsireq.h Wed Feb 22 16:09:39 2012 +0100 @@ -144,7 +144,7 @@ Cmd1sili = 2, /* don't set Sd2ili */ /* limit of block #s in 24-bit ccbs */ - Max24off = (1<<21) - 1, /* 2⁲ⁱ - 1 */ + Max24off = (1<<21) - 1, /* 2²¹ - 1 */ /* mode pages */ Allmodepages = 0x3F, diff -r 0a28e3163537 -r c7fcc2202d7c sys/src/cmd/units.y --- a/sys/src/cmd/units.y Wed Feb 22 16:08:09 2012 +0100 +++ b/sys/src/cmd/units.y Wed Feb 22 16:09:39 2012 +0100 @@ -62,7 +62,7 @@ extern void mul(Node*, Node*, Node*); extern void ofile(void); extern double pname(void); -extern void printdim(char*, int, int); +extern char* printdim(char*, char*, int, int); extern int ralpha(int); extern int readline(void); extern void sub(Node*, Node*, Node*); @@ -239,17 +239,32 @@ case L'÷': return '/'; case L'¹': - case L'ⁱ': yylval.numb = 1; return SUP; case L'²': - case L'⁲': yylval.numb = 2; return SUP; case L'³': - case L'⁳': yylval.numb = 3; return SUP; + case L'⁴': + yylval.numb = 4; + return SUP; + case L'⁵': + yylval.numb = 5; + return SUP; + case L'⁶': + yylval.numb = 6; + return SUP; + case L'⁷': + yylval.numb = 7; + return SUP; + case L'⁸': + yylval.numb = 8; + return SUP; + case L'⁹': + yylval.numb = 9; + return SUP; } return c; @@ -376,12 +391,13 @@ case '|': case '#': case L'¹': - case L'ⁱ': case L'²': - case L'⁲': case L'³': - case L'⁳': - case L'×': + case L'⁴': + case L'⁵': + case L'⁶': + case L'⁷': + case L'⁹': case L'÷': return 0; } @@ -531,47 +547,49 @@ return 0; } -void -printdim(char *str, int d, int n) +char* +printdim(char *p, char *e, int d, int n) { Var *v; if(n) { v = fund[d]; if(v) - sprint(strchr(str, 0), " %S", v->name); + p = seprint(p, e, " %S", v->name); else - sprint(strchr(str, 0), " [%d]", d); + p = seprint(p, e, " [%d]", d); switch(n) { case 1: break; case 2: - strcat(str, "²"); + p = seprint(p, e, "²"); break; case 3: - strcat(str, "³"); + p = seprint(p, e, "³"); break; default: - sprint(strchr(str, 0), "^%d", n); + p = seprint(p, e, "^%d", n); } } + return p; } int Ufmt(Fmt *fp) { - char str[200]; + char str[200], *p, *e; Node *n; int f, i, d; n = va_arg(fp->args, Node*); - sprint(str, "%g", n->val); + e = str + sizeof str; + p = seprint(str, e, "%g", n->val); f = 0; for(i=1; idim[i]; if(d > 0) - printdim(str, i, d); + p = printdim(p, e, i, d); else if(d < 0) f = 1; @@ -582,7 +600,7 @@ for(i=1; idim[i]; if(d < 0) - printdim(str, i, -d); + p = printdim(p, e, i, -d); } } diff -r 0a28e3163537 -r c7fcc2202d7c sys/src/cmd/usb/disk/scsireq.h --- a/sys/src/cmd/usb/disk/scsireq.h Wed Feb 22 16:08:09 2012 +0100 +++ b/sys/src/cmd/usb/disk/scsireq.h Wed Feb 22 16:09:39 2012 +0100 @@ -154,7 +154,7 @@ Cmd1sili = 2, /* don't set Sd2ili */ /* limit of block #s in 24-bit ccbs */ - Max24off = (1<<21) - 1, /* 2⁲ⁱ - 1 */ + Max24off = (1<<21) - 1, /* 2²¹ - 1 */ /* mode pages */ Allmodepages = 0x3F, diff -r 0a28e3163537 -r c7fcc2202d7c sys/src/cmd/vnc/latin1.h --- a/sys/src/cmd/vnc/latin1.h Wed Feb 22 16:08:09 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ - " ", " i", L"␣ı", - "!~", "-=~", L"≄≇≉", - "!", "!<=>?bmp", L"¡≮≠≯‽⊄∉⊅", - "\"*", "IUiu", L"ΪΫϊϋ", - "\"", "\"AEIOUYaeiouy", L"¨ÄËÏÖÜŸäëïöüÿ", - "$*", "fhk", L"ϕϑϰ", - "$", "BEFHILMRVaefglopv", L"ℬℰℱℋℐℒℳℛƲɑℯƒℊℓℴ℘ʋ", - "\'\"", "Uu", L"Ǘǘ", - "\'", "\'ACEILNORSUYZacegilnorsuyz", L"´ÁĆÉÍĹŃÓŔŚÚÝŹáćéģíĺńóŕśúýź", - "*", "*ABCDEFGHIKLMNOPQRSTUWXYZabcdefghiklmnopqrstuwxyz", L"∗ΑΒΞΔΕΦΓΘΙΚΛΜΝΟΠΨΡΣΤΥΩΧΗΖαβξδεφγθικλμνοπψρστυωχηζ", - "+", "-O", L"±⊕", - ",", ",ACEGIKLNORSTUacegiklnorstu", L"¸ĄÇĘĢĮĶĻŅǪŖŞŢŲąçęģįķļņǫŗşţų", - "-*", "l", L"ƛ", - "-", "+-2:>DGHILOTZbdghiltuz~", L"∓­ƻ÷→ÐǤĦƗŁ⊖ŦƵƀðǥℏɨłŧʉƶ≂", - ".", ".CEGILOZceglz", L"·ĊĖĠİĿ⊙Żċėġŀż", - "/", "Oo", L"Øø", - "1", "234568", L"½⅓¼⅕⅙⅛", - "2", "-35", L"ƻ⅔⅖", - "3", "458", L"¾⅗⅜", - "4", "5", L"⅘", - "5", "68", L"⅚⅝", - "7", "8", L"⅞", - ":", ")-=", L"☺÷≔", - "~", L"←«≤≶≲", - "=", ":<=>OV", L"≕⋜≡⋝⊜⇒", - ">!", "=~", L"≩⋧", - ">", "<=>~", L"≷≥»≳", - "?", "!?", L"‽¿", - "@\'", "\'", L"ъ", - "@@", "\'EKSTYZekstyz", L"ьЕКСТЫЗекстыз", - "@C", "Hh", L"ЧЧ", - "@E", "Hh", L"ЭЭ", - "@K", "Hh", L"ХХ", - "@S", "CHch", L"ЩШЩШ", - "@T", "Ss", L"ЦЦ", - "@Y", "AEOUaeou", L"ЯЕЁЮЯЕЁЮ", - "@Z", "Hh", L"ЖЖ", - "@c", "h", L"ч", - "@e", "h", L"э", - "@k", "h", L"х", - "@s", "ch", L"щш", - "@t", "s", L"ц", - "@y", "aeou", L"яеёю", - "@z", "h", L"ж", - "@", "ABDFGIJLMNOPRUVXabdfgijlmnopruvx", L"АБДФГИЙЛМНОПРУВХабдфгийлмнопрувх", - "A", "E", L"Æ", - "C", "ACU", L"⋂ℂ⋃", - "Dv", "Zz", L"DŽDž", - "D", "-e", L"Ð∆", - "G", "-", L"Ǥ", - "H", "-H", L"Ħℍ", - "I", "-J", L"ƗIJ", - "L", "&-Jj|", L"⋀ŁLJLj⋁", - "N", "JNj", L"NJℕNj", - "O", "*+-./=EIcoprx", L"⊛⊕⊖⊙⊘⊜ŒƢ©⊚℗®⊗", - "P", "P", L"ℙ", - "Q", "Q", L"ℚ", - "R", "R", L"ℝ", - "S", "123S", L"¹²³§", - "T", "-u", L"Ŧ⊨", - "V", "=", L"⇐", - "Y", "R", L"Ʀ", - "Z", "-ACSZ", L"Ƶℤ", - "^", "ACEGHIJOSUWYaceghijosuwy", L"ÂĈÊĜĤÎĴÔŜÛŴŶâĉêĝĥîĵôŝûŵŷ", - "_\"", "AUau", L"ǞǕǟǖ", - "_,", "Oo", L"Ǭǭ", - "_.", "Aa", L"Ǡǡ", - "_", "AEIOU_aeiou", L"ĀĒĪŌŪ¯āēīōū", - "`\"", "Uu", L"Ǜǜ", - "`", "AEIOUaeiou", L"ÀÈÌÒÙàèìòù", - "a", "ben", L"↔æ∠", - "b", "()+-0123456789=bknpqru", L"₍₎₊₋₀₁₂₃₄₅₆₇₈₉₌♝♚♞♟♛♜•", - "c", "$Oagu", L"¢©∩≅∪", - "dv", "z", L"dž", - "d", "-adegz", L"ð↓‡°†ʣ", - "e", "$lmns", L"€⋯—–∅", - "f", "a", L"∀", - "g", "$-r", L"¤ǥ∇", - "h", "-v", L"ℏƕ", - "i", "-bfjps", L"ɨ⊆∞ij⊇∫", - "l", "\"$&\'-jz|", L"“£∧‘łlj⋄∨", - "m", "iou", L"µ∈×", - "n", "jo", L"nj¬", - "o", "AOUaeiu", L"Å⊚Ůåœƣů", - "p", "Odgrt", L"℗∂¶∏∝", - "r", "\"\'O", L"”’®", - "s", "()+-0123456789=abnoprstu", L"⁽⁾⁺⁻⁰ⁱ⁲⁳⁴⁵⁶⁷⁸⁹⁼ª⊂ⁿº⊃√ß∍∑", - "t", "-efmsu", L"ŧ∃∴™ς⊢", - "u", "-AEGIOUaegiou", L"ʉĂĔĞĬŎŬ↑ĕğĭŏŭ", - "v\"", "Uu", L"Ǚǚ", - "v", "ACDEGIKLNORSTUZacdegijklnorstuz", L"ǍČĎĚǦǏǨĽŇǑŘŠŤǓŽǎčďěǧǐǰǩľňǒřšťǔž", - "w", "bknpqr", L"♗♔♘♙♕♖", - "x", "O", L"⊗", - "y", "$", L"¥", - "z", "-", L"ƶ", - "|", "Pp|", L"Þþ¦", - "~!", "=", L"≆", - "~", "-=AINOUainou~", L"≃≅ÃĨÑÕŨãĩñõũ≈", diff -r 0a28e3163537 -r c7fcc2202d7c sys/src/cmd/vnc/mkfile --- a/sys/src/cmd/vnc/mkfile Wed Feb 22 16:08:09 2012 +0100 +++ b/sys/src/cmd/vnc/mkfile Wed Feb 22 16:09:39 2012 +0100 @@ -38,6 +38,9 @@ vncv.h\ vncs.h\ +CLEANFILES=\ + latin1.h + UPDATE=\ mkfile\ $HFILES\ @@ -55,6 +58,9 @@ $O.vncv: $COFILES +latin1.h: /lib/keyboard /bin/aux/mklatinkbd + aux/mklatinkbd /lib/keyboard > latin1.h + errstr.h: error.h sed 's/extern //;s,;.*/\* (.*) \*/, = "\1";,' < error.h > errstr.h