This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Here is how far i've yet got with wrapping ncurses for guile. ( gzipped and uuencoded , would have been 1000 lines already) It's very bugprone yet. It compiles and links to a new guile executable with curses features, (-lncurses -lguile -l<whatever guile was built with>). I think that's not what most would like. How does one provide a modular version of it? It doesn't work with the latest snaps, I added some simple test script that crashes guile when using the latest versions. begin 664 ncguile.c.gz M'XL(")WVT34``VYC9W5I;&4N8P#E7/MOVS@2_OG\5Q!=H.L$:M/MWN$>V7;1 MIFF1:YH628OB?C)HB;9UD46O'G&\1?[WF^&0%/6P)5M.-X<MBI@:\N-\,WP_ MI,'@Z)"]N_C"WGTZ9VF63R9L*K*4S40B&#L\&@Q^"&,_R@/!?HG"\30/(_%T M]M*1*M'1=%:6^GF2BK0L2[,`LD#9()+QE"W#>)3QZ?%@,+@Z^8"/SU-_SH9? MSR[>?/S*#@^.!R8(\N<0SX:0$,0F_6C.DVLCA#2C-/Q=9"HF"(6).#H,8Q(N M$@RAV&/J#V*4<)1F/!.H4QFM\IK+\22/4X7$`.@%9_V;3R8B83F8QQ:9'*=L MN)!)QN3XO\+/T@.VG(7^#.,9#X(P"V7,(Y;(/`MC@&0SGC$.SATPQ@1/PVC% M_$2`\H!-$CEG,;G.(IZRLY2%&5O(-`W'D6"99!.93`5+Y03%"107(C%#H!K( M)4/J`(K33/#``T8B!L5")683[H<1\`(=R",6(A#!K\KL&QD&C'P^RE8+,0IC MT#Q$L?%ZJF2IGU@Q26.Q-`6D?6O^V"1I/EZ3I)PN$$FW=/G"J1.6QH('!=9& MS&_J>3J1C3H=1E%-DX@#)2MY(4P;Q<L8"C,1DT2DLW(NBVI,D\5-C&2^"+#& MEA4E(DCXLL9U2?)HK8'+N;P1:R.A'D-52M;&0T7;%'\M5FO*1&2\01Q+\#=? M-<1`0TTF4>ZZRL;]%NJ8<K64S?(E]')^I2SRN$'HCZ%Q7M=R;10+?R9K*9N$ M42U5333CT:1P0U'`?%G#UF5^)'@BKYL\&$2-<@#<B,88:.HR:@:%@=\LG\]% MT!@S%F)1X3J)>+UT1,)34:G#RJB:+($N6&9-8B&CBACJ*;C4;04V#DL^3V[+ M`!*N:L*QF-93@K"><LYOZRE!6$^YX`W:05A).>8YM.1:NU]"*44-9BTSF?NS M6KLO)_+E8K6IPUW3$=%HH8;_D1ZT*N,%C):^C&]$DL(@R&`(]7$T3!'/?GGR MDIG1_4@-+8/:!`"'LX/!-QC8%%%_?@S!<,*&R/;%"W;QY?S\`(<]EH@L3V), M-GK]\>/YZ.TQ@487IU]/3L_/V1#0!T9X=?KYY-6EDGEF%E**?.-$J@B=OZ)P M!_,5PW#@3DQP"D!T333TZGF4F9Q?75V=7GY624<79Q\^L2$"V./')%*4E`1, M,ZP\S-0C^.6[GSWV2&M\I'FA`O;"F32IM,H"S,LA;\@@?R@9.[V!R80AC&.^ M6QS%_*IN&T1CYJHHF'6#T:D]^>[D'Q]>7;Y7)79@2F]T]>4UY,+`;B5_\A([ M@6EZ0&7Y3?UMS(*JAP%!ZQ!Q=J#R9>QNT%@-[IPY6R!%&O^8,1&#S;Y@:%T( M$U'*2$^>4B8GC*8J^/24?94QS`Z0.>K)<&;\8PJ3+QB]9H@6$715:EJW2,0- M9`0Y)(L9C\/?.=9WS,]DC;XM)JH#=Z+:Z.$FUZ(+30N`*36T?*I#6H0M$41E M7VK'/-.N^@O\`[<$DL70=TYY,N8PG_2AGX<IK,X4C-!Y(6N;Q7!H)D-8"JCP M]/+R@/W*GK%_,;0*K-65$4L&@(7_(UQ9,!XM^2JUE!BT,O+P<K92#KH;K)F` MLQ>#;Z96>F:6[[%G\/].]T>#^NR5G*H;%#D4IXF8.QL^-GD?V(:Q3/AB@06+ M1>ST6FIV7BQLJ"RQH3A38M(UG<&,$0S&^0HL#ZC4;))C2L%A4%VZ*0@%4WXV M?$1%\,@K%D6ZI&LIJ8C<E*8".$V_F@O92MR=B3N+4M75,%__KO3O;=K8]G$Q M%7G,]]C*8[<HB<"_P`[KK%KB#:-4\?"K<I_DJZI\1?+;JOPV=2PO>Y::B3&C MX+/6T56G4-]T9QSB+%-LY[N-9SQV*-<Z2*YIU'^<XXRY4E'O[SYG)?5G<)\Q M=V_N*Q:U]1&!E)CFM\X9&\CJS*49CG<@Z*RPG6+=V#_L4D(;6[HB@#GW:./6 MB#]!)37F[JN2%ILIA?<ZC!5I[OLB30M/K7'4/@S7N@"AR2K3NQ@-42#4XR7E M4K:]L8?;WOSO9[\AO"\7.-MA:]<%CL&;3-U,W9UJ]J-LMN6(:XE<&PD+[<>@ MV!HL.!3KPR8*=G'G0-LYC*6,B`3A#XYQJE^0&]L(-A8AK=^?_/3T.<YG+=G: MAN7]EG-97?_2KNVJ%NV4ZW8ZKG3V@?X5^G>ROAUSCXU5%QIX#)8?DRW<P*LM MF%,+'E?EX\U#0U"5!R075;D@^:0JGW3I.1;58O%JMO?M2>PV]@X-TP'ORD+3 M*&^;WV]==W3UK^CEC?VBEJ<93S)=X><RC[/U]GAL&]OB6@6F[)6-U3C%HDOS M+ZQ0E0PY]2W2XD1CJS$:1T>OBR/V.T9KMOL:H$LG-FZM2"@0KW=`[+D-T)_Q MA!T"+HRG6U6+F*PF9!&)^RY(2S%YUL4QUA*J&2J_3=4#.BNA\H=TVWC,/</Z M__:8M>1^/>:<ZCG^PHW<M9["R"WZ&DQ>.`+G-4!$*6CW@F&G?.!B=IWUFZ/* M!V@K<=N7I>4SU@=HKD-P7S:[)\X/T&)+;U_VVC/Q]?O519(657C8\N7BZM/I MR=G;L],W):]VT.,FVEF3<YJ_<?)FUEO;S=WL.LRHV7+>9M9A!5_WI@%V58V3 M7WR\KHX2F+B]PMC\KWM6%'/-88?9N87V;9H].#C@?BSH$L<NFP<$[.N#G?5; M:$\&T6[:H]+95K59=;-]5]W2U;ZCW>5;."P0?L$DJ/7^3>MRX7=HKXZ:H"=C M=1EH!W<1KF\]W56[0?;LK9QK3P]P&+?T]C95LY>Y'J"UFMR^;'4OJ#U`:RV] M?=E;NG;W``TN^.VO-OL[F;M/^S2'SB:MGY*Z=R#_0'L,BSU81'<W=^C<-;!? M[=#71'=0;Y#]]#M74N_Y+$0KVL/F<'%C]IXI:T5[H>Q<Z+UWUD;7OHB;*\?? M@[C2U8>XL_-9W(IV#LHVGQML.@C8CY4%+]5Y]2TA]X;WO6X2A/&3ER-4M07? M^A:!>_?\N]!=[4BWX&NOQ=\_7U35U[WVPOYWH=O?O?9=@OOGBZKZNM>^Y?!= MZ.[J7DO7OG]Q_W11U1[H;N'=GFS[.;=X967KBR\.=-?F8T8Y^X+,_D>X70<X MHK27P:WTGD_]P#M.NRP_5A[3BX3.]6?=*?BZT\WM5S!%;;0FFE/R'9:=]=KI MOOS$4IDGOM`7@D2:A?%*.RY,C`M#>V/(RH)"QJV,^^N=3GI&VO=&JC6.G"(! MO1ZJ]%`;_L$0QQ#WRZO&6ITL=+@%1U+E'D>=FT*+J;*&2>U.!UBMXVJ7D]`W ME'4=%QA<4,<%%L?K.&YPO([C_J[5RMF5,Q6@<)CG^L;;6`@]=S[4*RM-K]"Y M]:7T,DMA$+W_<7IY^<@K*<#W<6K)/KZOI/KXWB:*Q7*T2*0O@CS!M/I5%0#8 M-UOH)1OG`D(50Z]?*`@%/?;7S0AZ[T`A*.BQOVU&T#56A:!@.T+==R>$"GKL MIU8[%CPP=BSP[?GGK788!`5;6:D+R0J@0A[[N2V]8[EY:$71W5GMK:B+[73) M5"$HV%KJYF(J596T(\J][:F0KJ"5Y:**7I30?V_QBKXS2'[1#ZV,[9T]!;-/ MK5SMQ38RTSRUEIVZ#D88#+6GU[>D"*(?VE'ZIA"A]$,KBF[6*`P%6UL(WD^A MN@N!UM2AN=ZA^Q_]U(K3ER2HZ5*X%:.O'BB,#K?W=-)%V:?V6J^.Y,G7*MA: M>_0IOH+H<"N&SKL5A((=['$PYJ$5A:?*U%-`H(,.FYZ"[8B(4D<=\C9I98?4 M]J150>Q3JU^AW5+;Y\L.C$QJ%6I-K\\%J=`HW-Y*\'2-6@B&6M/K\RF%T.'V MD4T?\=#8IA\Z,/,M,[]+>CJB(`2%6S%XHJ``&&CUKSH`4,E5J+VEJAUX:JDJ MV-[/JV(CA`IV0=#FLP'14T><D)&#@Z=VG-E-M9V]>FKUM-XU52@=;M6EMRX= M3'O[TOM;V^K!G9]M]>#>X;9Z<`-O6SVXS;.M'MQLV4J/V2&AUJ`?VFLX;CU0 M3<!0:RTP:V^"Z(?6&;Y>65&_1F&/_=-B[M3;]F_$.)].\?L*<2:2"?<!&4C\ M2H,_XS#HJ>]6R02_#R`GZF&"_=`2+TE'^'VL`WQQZ0>]T'GWYO7H\W\^G>+" MN^'+94?38#RRBO!+9`@XN_A\>OGVU<GI\6"`GP&#!:I:EX5Q#(O&.3>?<V*' M?B13L,VCUX"2*2S_Z+[W(3S<T)H-;)K+((^$>N4_Y)'^#$3*EC*/`C:5]'$U M]5&%QJ6?6I_B]P]FT$39D/0H!<IIH'M`I#:P0#RL@[.1TN!F@N2-7:;P[.<A 9Z+L0L;@!=\,\P)^)@-X+^Q^$3\$'*$X````` ` end I couldn't decide yet how to handle chtypes, These are formally 32 bit ints, whose lowest bits represent a character, whereas the high ones form a bitmask encoding the video attributes assigned to the character cell, like reverse, blink, underline and the like. Anyone know an elegant way to handle this? Should the chtype be wrapped like a normal int and then processed further in scheme code, or should the wrapper code already know about it? ;;;;;;;;;;;;;;;;demoscript;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (initscr) ;enters curses-mode (cbreak) ;one character at time (keypad stdscr #t) ;decodes keypad events (noecho) ;no echo (nonl) ;prevents newline translation ;;this loop receives one character from the keyboard and prints its ;;ascii value on the screen each turn, til C-d is pressed. ;;then guile's interactive line mode is entered. ;;the misbehaviour in the new versions appears after wgetch returns ;;and before doupdate is called to paint the altered screen. ;;if the script is loaded from the interactive guile prompt instead ;;of the command line, guile doesn't crash, but not execute the script ;;correctly either. (do ((c 0 (wgetch stdscr))) ((= c 4) (endwin)) (wclear stdscr) (wmove stdscr 0 0) (waddnstr stdscr (number->string c) -1) (wnoutrefresh stdscr)(doupdate) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,, Klaus Schilling