widecolor: oh what fun

This commit is contained in:
nick black 2019-12-06 04:31:37 -05:00
parent 065f8170ef
commit 6248714cd0
No known key found for this signature in database
GPG Key ID: 5F43400C21CBFACC
2 changed files with 44 additions and 20 deletions

View File

@ -6,6 +6,8 @@
#include <string.h> #include <string.h>
#include "demo.h" #include "demo.h"
// "🍺🚬🌿💉💊🔫💣🤜🤛🐌🐍🐎🐑🐒🐔🐗🐘🐙🐚🐛🐜🐝🐞🐟🐠🐡🐢🐣🐤🐥🐦🐧🐨🐩🐫🐬🐭🐮🐯🐰🐱🐲🐳🐴🐵🐶🐷🐸🐹🐺🐻🐼🦉🐊🐸🦕🦖🐬🐙🦂🦠🦀",
// show unicode blocks. a block is always a multiple of 16 codepoints. // show unicode blocks. a block is always a multiple of 16 codepoints.
#define BLOCKSIZE 512 // show this many per page #define BLOCKSIZE 512 // show this many per page
#define CHUNKSIZE 32 // show this many per line #define CHUNKSIZE 32 // show this many per line

View File

@ -331,7 +331,6 @@ message(struct ncplane* n, int maxy, int maxx, int num, int total,
// Much of this text comes from http://kermitproject.org/utf8.html // Much of this text comes from http://kermitproject.org/utf8.html
int widecolor_demo(struct notcurses* nc){ int widecolor_demo(struct notcurses* nc){
static const char* strs[] = { static const char* strs[] = {
"🍺🚬🌿💉💊🔫💣🤜🤛🐌🐍🐎🐑🐒🐔🐗🐘🐙🐚🐛🐜🐝🐞🐟🐠🐡🐢🐣🐤🐥🐦🐧🐨🐩🐫🐬🐭🐮🐯🐰🐱🐲🐳🐴🐵🐶🐷🐸🐹🐺🐻🐼🦉🐊🐸🦕🦖🐬🐙🦂🦠🦀",
"Война и мир", "Война и мир",
"Бра́тья Карама́зовы", "Бра́тья Карама́зовы",
"Час сэканд-хэнд", "Час сэканд-хэнд",
@ -353,12 +352,31 @@ int widecolor_demo(struct notcurses* nc){
"القرآن", "القرآن",
"תּוֹרָה", "תּוֹרָה",
"תָּנָ״ךְ", "תָּנָ״ךְ",
"Meg tudom enni az üveget, nem lesz tőle bajom",
"Voin syödä lasia, se ei vahingoita minua",
"Sáhtán borrat lása, dat ii leat bávččas",
"Мон ярсан суликадо, ды зыян эйстэнзэ а ули",
"Mie voin syvvä lasie ta minla ei ole kipie",
"Minä voin syvvä st'oklua dai minule ei ole kibie",
"Ma võin klaasi süüa, see ei tee mulle midagi",
"Es varu ēst stiklu, tas man nekaitē",
"Aš galiu valgyti stiklą ir jis manęs nežeidži",
"Mohu jíst sklo, neublíží mi",
"Môžem jesť sklo. Nezraní ma",
"Mogę jeść szkło i mi nie szkodzi",
"Lahko jem steklo, ne da bi mi škodovalo",
"Ja mogu jesti staklo, i to mi ne šteti",
"Ја могу јести стакло, и то ми не штети",
"Можам да јадам стакло, а не ме штета",
"Я могу есть стекло, оно мне не вредит",
"Я магу есці шкло, яно мне не шкодзіць",
"Osudy dobrého vojáka Švejka za světové války", "Osudy dobrého vojáka Švejka za světové války",
"Σίβνλλα τί ϴέλεις; respondebat illa: άπο ϴανεΐν ϴέλω", "Σίβνλλα τί ϴέλεις; respondebat illa: άπο ϴανεΐν ϴέλω",
"На всей земле был один язык и одно наречие.", "На всей земле был один язык и одно наречие.",
"А кад отидоше од истока, нађоше равницу у земљи сенарској, и населише се онде.", "А кад отидоше од истока, нађоше равницу у земљи сенарској, и населише се онде.",
"І сказалі адно аднаму: наробім цэглы і абпалім агнём. І стала ў іх цэгла замест камянёў, а земляная смала замест вапны.", "І сказалі адно аднаму: наробім цэглы і абпалім агнём. І стала ў іх цэгла замест камянёў, а земляная смала замест вапны.",
"І сказали вони: Тож місто збудуймо собі, та башту, а вершина її аж до неба. І вчинімо для себе ймення, щоб ми не розпорошилися по поверхні всієї землі.", "І сказали вони: Тож місто збудуймо собі, та башту, а вершина її аж до неба. І вчинімо для себе ймення, щоб ми не розпорошилися по поверхні всієї землі.",
"A boy has never wept nor dashed a thousand kim",
"⑤ Господ слезе да ги види градот и кулата, што луѓето ги градеа.", "⑤ Господ слезе да ги види градот и кулата, што луѓето ги градеа.",
"⑥ И҆ речѐ гдⷭ҇ь: сѐ, ро́дъ є҆ди́нъ, и҆ ѹ҆стнѣ̀ є҆ди҄нѣ всѣ́хъ, и҆ сїѐ нача́ша твори́ти: и҆ нн҃ѣ не ѡ҆скꙋдѣ́ютъ ѿ ни́хъ всѧ҄, є҆ли҄ка а́҆ще восхотѧ́тъ твори́ти.", "⑥ И҆ речѐ гдⷭ҇ь: сѐ, ро́дъ є҆ди́нъ, и҆ ѹ҆стнѣ̀ є҆ди҄нѣ всѣ́хъ, и҆ сїѐ нача́ша твори́ти: и҆ нн҃ѣ не ѡ҆скꙋдѣ́ютъ ѿ ни́хъ всѧ҄, є҆ли҄ка а́҆ще восхотѧ́тъ твори́ти.",
"⑦ Ⱂⱃⰻⰻⰴⱑⱅⰵ ⰺ ⰺⰸⱎⰵⰴⱎⰵ ⱄⰿⱑⱄⰻⰿⱏ ⰺⰿⱏ ⱅⱆ ⱔⰸⱏⰹⰽⰻ ⰺⱈⱏ · ⰴⰰ ⱀⰵ ⱆⱄⰾⱏⰹⱎⰰⱅⱏ ⰽⱁⰶⰴⱁ ⰴⱃⱆⰳⰰ ⱄⰲⱁⰵⰳⱁ ⁖⸏", "⑦ Ⱂⱃⰻⰻⰴⱑⱅⰵ ⰺ ⰺⰸⱎⰵⰴⱎⰵ ⱄⰿⱑⱄⰻⰿⱏ ⰺⰿⱏ ⱅⱆ ⱔⰸⱏⰹⰽⰻ ⰺⱈⱏ · ⰴⰰ ⱀⰵ ⱆⱄⰾⱏⰹⱎⰰⱅⱏ ⰽⱁⰶⰴⱁ ⰴⱃⱆⰳⰰ ⱄⰲⱁⰵⰳⱁ ⁖⸏",
@ -367,15 +385,18 @@ int widecolor_demo(struct notcurses* nc){
"ὕαλον ϕαγεῖν δύναμαι· τοῦτο οὔ με βλάπτει", "ὕαλον ϕαγεῖν δύναμαι· τοῦτο οὔ με βλάπτει",
"Μπορῶ νὰ φάω σπασμένα γυαλιὰ χωρὶς νὰ πάθω τίποτα", "Μπορῶ νὰ φάω σπασμένα γυαλιὰ χωρὶς νὰ πάθω τίποτα",
"Vitrum edere possum; mihi non nocet", "Vitrum edere possum; mihi non nocet",
"iℏ∂∂tΨ=ℏ²2m∇2Ψ+VΨ",
"Je puis mangier del voirre. Ne me nuit", "Je puis mangier del voirre. Ne me nuit",
"Je peux manger du verre, ça ne me fait pas mal", "Je peux manger du verre, ça ne me fait pas mal",
"Pòdi manjar de veire, me nafrariá pas", "Pòdi manjar de veire, me nafrariá pas",
"J'peux manger d'la vitre, ça m'fa pas mal", "J'peux manger d'la vitre, ça m'fa pas mal",
"Dji pou magnî do vêre, çoula m' freut nén må", "Dji pou magnî do vêre, çoula m' freut nén må",
"Ch'peux mingi du verre, cha m'foé mie n'ma", "Ch'peux mingi du verre, cha m'foé mie n'ma",
"F·ds=ΔE",
"Mwen kap manje vè, li pa blese'm", "Mwen kap manje vè, li pa blese'm",
"Kristala jan dezaket, ez dit minik ematen", "Kristala jan dezaket, ez dit minik ematen",
"Puc menjar vidre, que no em fa mal", "Puc menjar vidre, que no em fa mal",
"overall there is a smell of fried onions",
"Puedo comer vidrio, no me hace daño", "Puedo comer vidrio, no me hace daño",
"Puedo minchar beire, no me'n fa mal", "Puedo minchar beire, no me'n fa mal",
"Eu podo xantar cristais e non cortarme", "Eu podo xantar cristais e non cortarme",
@ -394,15 +415,31 @@ int widecolor_demo(struct notcurses* nc){
"Eڿᛯℇ✈ಅΐʐ𝍇Щঅ℻ ⌬⌨ ⌣₰ ⠝ ‱ ‽ ח ֆ ∜ ⨀ IJႪ ⇠ ਐ ῼ இ ╁ ୭ ⅙ ㈣⧒ ₔ ⅷ ﭗ ゛ 〃 ・ ↂ ✞ ℼ ⌧", "Eڿᛯℇ✈ಅΐʐ𝍇Щঅ℻ ⌬⌨ ⌣₰ ⠝ ‱ ‽ ח ֆ ∜ ⨀ IJႪ ⇠ ਐ ῼ இ ╁ ୭ ⅙ ㈣⧒ ₔ ⅷ ﭗ ゛ 〃 ・ ↂ ✞ ℼ ⌧",
"M' podê cumê vidru, ca ta maguâ-m'", "M' podê cumê vidru, ca ta maguâ-m'",
"Ami por kome glas anto e no ta hasimi daño", "Ami por kome glas anto e no ta hasimi daño",
"六四事件八九民运动态网自由门天安门天安门法轮功李洪志六四天安门事件天安门大屠杀反右派斗争大跃进政策文化大革命人权民运自由独立I多党制台湾台湾T中华民国西藏土伯特唐古特达赖喇嘛法轮功新疆维吾尔自治区诺贝尔和平奖刘暁波民主言论思想反共反革命抗议运动骚乱暴乱骚扰扰乱抗暴平反维权示威游行李洪志法轮大法大法弟子强制断种强制堕胎民族净化人体实验肃清胡耀邦赵紫阳魏京生王丹还政于民和平演变激流中国北京之春大纪元时报评论共产党独裁专制压制统监视镇压迫害 侵略掠夺破坏拷问屠杀活摘器官诱拐买卖人口游进走私毒品卖淫春画赌博六合彩天安门天安门法轮功李洪志刘晓波动态网自由门",
"Posso mangiare il vetro e non mi fa male", "Posso mangiare il vetro e non mi fa male",
"زَّ وَجَلَّ فَمَا وَجَدْنَا فِيهِ مِنْ حَلاَلٍ اسْتَحْلَلْنَاهُ وَمَا وَجَدْنَا فِيهِ مِنْ حَرَامٍ حَرَّمْنَاهُ . أَلاَ وَإِنَّ مَا حَرَّمَ رَسُولُ اللَّهِ ـ صلى الله عليه وسلم ـ مِثْلُ مَا حَرَّمَ اللَّ",
"śrī-bhagavān uvāca kālo 'smi loka-kṣaya-kṛt pravṛddho lokān samāhartum iha pravṛttaḥ ṛte 'pi tvāṁ na bhaviṣyanti sarve ye 'vasthitāḥ pratyanīkeṣu yodhāḥ",
"الحرام لذاتهالحرام لغيره",
"Je suis Charli",
"Sôn bôn de magnà el véder, el me fa minga mal", "Sôn bôn de magnà el véder, el me fa minga mal",
"Ewige Blumenkraft",
"HEUTE DIE WELT MORGENS DAS SONNENSYSTEM",
"Me posso magna' er vetro, e nun me fa male", "Me posso magna' er vetro, e nun me fa male",
"M' pozz magna' o'vetr, e nun m' fa mal", "M' pozz magna' o'vetr, e nun m' fa mal",
"μῆλον τῆς Ἔριδος",
"verwirrung zweitracht unordnung beamtenherrschaft grummet",
"Mi posso magnare el vetro, no'l me fa mae", "Mi posso magnare el vetro, no'l me fa mae",
"Pòsso mangiâ o veddro e o no me fà mâ", "Pòsso mangiâ o veddro e o no me fà mâ",
"Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn",
"ineluctable modality of the visible",
"Une oasis d'horreur dans un désert d'ennui",
"E pur si muov",
"Lasciate ogne speranza, voi ch'intrate",
"∀u1…∀uk[∀x∃!yφ(x,y,û) → ∀w∃v∀r(r∈v ≡ ∃s(s∈w & φx,y,û[s,r,û]))]",
"Puotsu mangiari u vitru, nun mi fa mali", "Puotsu mangiari u vitru, nun mi fa mali",
"Jau sai mangiar vaider, senza che quai fa donn a mai", "Jau sai mangiar vaider, senza che quai fa donn a mai",
"Pot să mănânc sticlă și ea nu mă rănește", "Pot să mănânc sticlă și ea nu mă rănește",
"‽⅏⅋℺℧℣",
"Mi povas manĝi vitron, ĝi ne damaĝas min", "Mi povas manĝi vitron, ĝi ne damaĝas min",
"Mý a yl dybry gwéder hag éf ny wra ow ankenya", "Mý a yl dybry gwéder hag éf ny wra ow ankenya",
"Dw i'n gallu bwyta gwydr, 'dyw e ddim yn gwneud dolur i mi", "Dw i'n gallu bwyta gwydr, 'dyw e ddim yn gwneud dolur i mi",
@ -428,8 +465,10 @@ int widecolor_demo(struct notcurses* nc){
"Jeg kan spise glass uten å skade meg", "Jeg kan spise glass uten å skade meg",
"Eg kann eta glas, skaðaleysur", "Eg kann eta glas, skaðaleysur",
"Ég get etið gler án þess að meiða mig", "Ég get etið gler án þess að meiða mig",
"𝐸 = 𝑚𝑐²",
"Jag kan äta glas utan att skada mig", "Jag kan äta glas utan att skada mig",
"Jeg kan spise glas, det gør ikke ondt på mig", "Jeg kan spise glas, det gør ikke ondt på mig",
"㎚ ㎛ ㎜ ㎝ ㎞ ㎟ ㎠ ㎡ ㎢ ㎣ ㎤ ㎥ ㎦ ㎕ ㎖ ㎗ ㎘ ㏄ ㎰ ㎱ ㎲ ㎳ ㎍ ㎎ ㎏ ㎅ ㎆ ㏔ ㎇ ㎐ ㎑ ㎒ ㎓ ㎔㎮ ㎯",
"Æ ka æe glass uhen at det go mæ naue", "Æ ka æe glass uhen at det go mæ naue",
"က္ယ္ဝန္တော္၊က္ယ္ဝန္မ မ္ယက္စားနုိင္သည္။ ၎က္ရောင္ ထိခုိက္မ္ဟု မရ္ဟိပာ။", "က္ယ္ဝန္တော္၊က္ယ္ဝန္မ မ္ယက္စားနုိင္သည္။ ၎က္ရောင္ ထိခုိက္မ္ဟု မရ္ဟိပာ။",
"ကျွန်တော် ကျွန်မ မှန်စားနိုင်တယ်။ ၎င်းကြောင့် ထိခိုက်မှုမရှိပါ။ ", "ကျွန်တော် ကျွန်မ မှန်စားနိုင်တယ်။ ၎င်းကြောင့် ထိခိုက်မှုမရှိပါ။ ",
@ -487,27 +526,10 @@ int widecolor_demo(struct notcurses* nc){
"I kå Glas frässa, ond des macht mr nix", "I kå Glas frässa, ond des macht mr nix",
"I ka glas eassa, ohne dass mar weh tuat", "I ka glas eassa, ohne dass mar weh tuat",
"I koh Glos esa, und es duard ma ned wei", "I koh Glos esa, und es duard ma ned wei",
"卂丂爪𝑜Ⓓє𝓊Ⓢ в𝔢𝓁Įαlнᗩs𝓉𝐮 𝐍чคⓇ𝓛Aт卄OtEᵖ 𝔴ᗝⓣ𝓐ⓝ 𝐧ίg𝕘𝐔尺𝓪ᵗ𝕙 𝔻ĤO𝔩ᵉ𝔰 卂žᵃ𝓣ĤỖ𝔱𝓗 Ť𝔦ℕ𝔻Aℓ๏Ş ᛕAĐ𝐈𝓽ħ",
"I kaun Gloos essen, es tuat ma ned weh", "I kaun Gloos essen, es tuat ma ned weh",
"Ich chan Glaas ässe, das schadt mir nöd", "Ich chan Glaas ässe, das schadt mir nöd",
"Ech cha Glâs ässe, das schadt mer ned", "Ech cha Glâs ässe, das schadt mer ned",
"Meg tudom enni az üveget, nem lesz tőle bajom",
"Voin syödä lasia, se ei vahingoita minua",
"Sáhtán borrat lása, dat ii leat bávččas",
"Мон ярсан суликадо, ды зыян эйстэнзэ а ули",
"Mie voin syvvä lasie ta minla ei ole kipie",
"Minä voin syvvä st'oklua dai minule ei ole kibie",
"Ma võin klaasi süüa, see ei tee mulle midagi",
"Es varu ēst stiklu, tas man nekaitē",
"Aš galiu valgyti stiklą ir jis manęs nežeidži",
"Mohu jíst sklo, neublíží mi",
"Môžem jesť sklo. Nezraní ma",
"Mogę jeść szkło i mi nie szkodzi",
"Lahko jem steklo, ne da bi mi škodovalo",
"Ja mogu jesti staklo, i to mi ne šteti",
"Ја могу јести стакло, и то ми не штети",
"Можам да јадам стакло, а не ме штета",
"Я могу есть стекло, оно мне не вредит",
"Я магу есці шкло, яно мне не шкодзіць",
"Ja mahu jeści škło, jano mne ne škodzić", "Ja mahu jeści škło, jano mne ne škodzić",
"Я можу їсти скло, і воно мені не зашкодить", "Я можу їсти скло, і воно мені не зашкодить",
"Мога да ям стъкло, то не ми вреди", "Мога да ям стъкло, то не ми вреди",
@ -551,7 +573,7 @@ int widecolor_demo(struct notcurses* nc){
ncspecial_key special; ncspecial_key special;
cell c; cell c;
do{ // (re)draw a screen do{ // (re)draw a screen
// ncplane_erase(n); ncplane_erase(n);
const int rollover = 256 / ((step & 0xff) | ((step & 0xff00) >> 8u) const int rollover = 256 / ((step & 0xff) | ((step & 0xff00) >> 8u)
| ((step & 0xff0000) >> 16u)); | ((step & 0xff0000) >> 16u));
int rollcount = 0; // number of times we've added this step int rollcount = 0; // number of times we've added this step