Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Store ihave informations in chat log |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
4afc95c122b7a31ce4814cbda8982873 |
| User & Date: | bernd 2020-01-08 23:31:49.306 |
Context
|
2020-01-09
| ||
| 13:46 | Temporary problem for notify-send, fix sending out ihaves check-in: 221f127fec user: bernd tags: trunk | |
|
2020-01-08
| ||
| 23:31 | Store ihave informations in chat log check-in: 4afc95c122 user: bernd tags: trunk | |
|
2020-01-06
| ||
| 21:59 | light/dark-mode check-in: a2d9044788 user: bernd tags: trunk | |
Changes
Changes to gui.fs.
| ︙ | ︙ | |||
675 676 677 678 679 680 681 |
[ELSE]
[IFDEF] linux
: open-url ( addr u -- )
[: ." xdg-open " type ;] $tmp system ;
[THEN]
[THEN]
| < < < < < < | 675 676 677 678 679 680 681 682 683 684 685 686 687 688 |
[ELSE]
[IFDEF] linux
: open-url ( addr u -- )
[: ." xdg-open " type ;] $tmp system ;
[THEN]
[THEN]
hash: chain-tags#
scope{ dvcs
dvcs-log-class class
end-class posting-log-class
Variable like-char
|
| ︙ | ︙ |
Changes to keys.fs.
| ︙ | ︙ | |||
1385 1386 1387 1388 1389 1390 1391 | Variable tries# #10 Value maxtries# forward read-chatgroups : n2o-greeting ( -- ) | | | 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 |
Variable tries#
#10 Value maxtries#
forward read-chatgroups
: n2o-greeting ( -- )
[: ." net2o " (c) ." 2010-2020 Bernd Paysan" cr
." net2o interactive shell, type 'bye' to quit" cr ;]
do-debug ;
: get-skc ( -- )
secret-keys# IF read-chatgroups EXIT THEN
n2o-greeting tries# off
debug-vector @ op-vector !@ >r <default>
|
| ︙ | ︙ |
Changes to msg.fs.
| ︙ | ︙ | |||
72 73 74 75 76 77 78 79 | dup a[] $[] $free a[] over cells cell $del ELSE 1+ THEN REPEAT drop ;] msglog-sema c-section ; : serialize-log ( addr u -- $addr ) | > > > | | > > | | > | | 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
dup a[] $[] $free
a[] over cells cell $del
ELSE
1+
THEN
REPEAT drop ;] msglog-sema c-section ;
forward msg-scan-hash
forward msg-serialize-hash
: serialize-log ( addr u -- $addr )
[: [: bounds ?DO
I $@ check-date 0= IF
2dup msg:display
net2o-base:$, net2o-base:nestsig
ELSE msg( ." removed entry " dump )else( 2drop ) THEN
cell +LOOP
msg-serialize-hash
;] msg-scan-hash ;] gen-cmd ;
Variable saved-msg$
64Variable saved-msg-ticks
: save-msgs ( group-o -- ) to msg-group-o
msg( ." Save messages in group " msg-group-o dup hex. .msg:name$ type cr )
?.net2o/chats net2o:new-msging >o
|
| ︙ | ︙ | |||
301 302 303 304 305 306 307 308 309 310 311 |
Forward msg:want
hash: fetch-finish#
Variable fetch-queue[]
hash: ihave#
: .ihaves ( -- )
." ====== hash owend by ======" cr
ihave# [: dup $@ 85type ." :"
cell+ $@ bounds U+DO
| > > > > | < < | 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 |
Forward msg:want
hash: fetch-finish#
Variable fetch-queue[]
hash: ihave#
: .@host.id ( pk+host u -- )
'@' emit
2dup keysize2 safe/string type '.' emit
key2| .simple-id ;
: .ihaves ( -- )
." ====== hash owend by ======" cr
ihave# [: dup $@ 85type ." :"
cell+ $@ bounds U+DO
space I $@ .@host.id
cell +LOOP cr ;] #map ;
: msg:ihave ( id u1 hash u2 -- )
\ ." ihave:" 2over dump 2dup dump
2dup ihave$ $+! 2over mehave$ $!
bounds U+DO 2dup I keysize ihave# #!ins[] keysize +LOOP 2drop ;
: pk.host ( -- addr u ) [: pk@ type host$ $. ;] $tmp ;
|
| ︙ | ︙ | |||
461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 |
' drop msg-notify-class is msg:like
' 2drop msg-notify-class is msg:lock
' noop msg-notify-class is msg:unlock
:noname 2drop 64drop ; msg-notify-class is msg:perms
' drop msg-notify-class is msg:away
' 2drop msg-notify-class is msg:coord
:noname 2drop 2drop ; msg-notify-class is msg:otrify
:noname ( -- ) msg-notify ; msg-notify-class is msg:end
:noname ( xchar -- ) ['] xemit $tmp notify+ ; msg-notify-class is msg:like
:noname ( addr u -- )
last# >r 2dup key| to msg:id$
.log-num
2dup startdate@ .log-date
2dup enddate@ .log-end
.key-id ." : "
| > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 |
' drop msg-notify-class is msg:like
' 2drop msg-notify-class is msg:lock
' noop msg-notify-class is msg:unlock
:noname 2drop 64drop ; msg-notify-class is msg:perms
' drop msg-notify-class is msg:away
' 2drop msg-notify-class is msg:coord
:noname 2drop 2drop ; msg-notify-class is msg:otrify
:noname drop 2drop ; msg-notify-class is msg:object
:noname ( -- ) msg-notify ; msg-notify-class is msg:end
:noname ( xchar -- ) ['] xemit $tmp notify+ ; msg-notify-class is msg:like
\ msg scan for hashes class
msg-class class
field: ?hashs[]
end-class msg-?hash-class
' 2drop msg-?hash-class is msg:start
' noop msg-?hash-class is msg:end
' 2drop msg-?hash-class is msg:tag
' 2drop msg-?hash-class is msg:signal
' 2drop msg-?hash-class is msg:chain
' 2drop msg-?hash-class is msg:id
' 2drop msg-?hash-class is msg:re
' 2drop msg-?hash-class is msg:text
' 2drop msg-?hash-class is msg:url
' drop msg-?hash-class is msg:like
:noname ( addr u -- )
0 .v-dec$ dup IF
msg-key! msg-group-o .msg:+lock THEN ; msg-?hash-class is msg:lock
:noname ( -- )
msg-group-o .msg:-lock ; msg-?hash-class is msg:unlock
' drop msg-?hash-class is msg:away
:noname 2drop 64drop ; msg-?hash-class is msg:perms
:noname ( addr u id -- )
case
msg:image# of key| ?hashs[] $+[]! endof
msg:thumbnail# of key| ?hashs[] $+[]! endof
msg:patch# of key| ?hashs[] $+[]! endof
msg:snapshot# of key| ?hashs[] $+[]! endof
2drop
endcase ; msg-?hash-class is msg:object
: msg-scan-hash ( ... xt -- ... )
msg-?hash-class new >o
msg-table @ token-table !
execute dispose o> ;
\ main message class
:noname ( addr u -- )
last# >r 2dup key| to msg:id$
.log-num
2dup startdate@ .log-date
2dup enddate@ .log-end
.key-id ." : "
|
| ︙ | ︙ | |||
558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 |
-1 queue? !@ 0= IF <event :>queued up@ event> THEN ;
forward need-hashed?
: ?fetch ( addr u -- )
key| 2dup need-hashed? IF
fetch-queue[] ['] $ins[] resize-sema c-section drop
ELSE 2drop THEN ;
:noname ( addr u type -- )
space <warn> case
msg:image# of ." img[" 2dup 85type ?fetch endof
msg:thumbnail# of ." thumb[" 2dup key| 85type
space 2dup keysize safe/string IF c@ '0' + emit ELSE drop THEN
?fetch endof
msg:patch# of ." patch[" 85type endof
msg:snapshot# of ." snapshot[" 85type endof
msg:message# of ." message[" 85type endof
drop
2dup keysize /string
2dup printable? IF '[' emit type '@' emit
ELSE ." #[" 85type ." /@" THEN
key| .key-id
0
endcase ." ]" <default> ;
| > > > > > > > | 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 |
-1 queue? !@ 0= IF <event :>queued up@ event> THEN ;
forward need-hashed?
: ?fetch ( addr u -- )
key| 2dup need-hashed? IF
fetch-queue[] ['] $ins[] resize-sema c-section drop
ELSE 2drop THEN ;
: .posting ( addr u -- )
2dup keysize /string
2dup printable? IF '[' emit type '@' emit
ELSE ." #[" 85type ." /@" THEN
key| .key-id? ;
:noname ( addr u type -- )
space <warn> case
msg:image# of ." img[" 2dup 85type ?fetch endof
msg:thumbnail# of ." thumb[" 2dup key| 85type
space 2dup keysize safe/string IF c@ '0' + emit ELSE drop THEN
?fetch endof
msg:patch# of ." patch[" 85type endof
msg:snapshot# of ." snapshot[" 85type endof
msg:message# of ." message[" 85type endof
msg:posting# of ." posting" .posting endof
drop
2dup keysize /string
2dup printable? IF '[' emit type '@' emit
ELSE ." #[" 85type ." /@" THEN
key| .key-id
0
endcase ." ]" <default> ;
|
| ︙ | ︙ | |||
835 836 837 838 839 840 841 842 843 844 845 846 847 848 |
>r 2dup r> ; msging-class is nest-sig
' message msg-class is start-req
:noname 2dup msg-dec?-sig? ; msg-class is nest-sig
' context-table is gen-table
also }scope
msging-table $save
: msg-reply ( tag -- )
." got reply " hex. pubkey $@ key>nick forth:type forth:cr ;
: expect-msg ( o:connection -- )
reply( ['] msg-reply )else( ['] drop ) expect-reply-xt +chat-control ;
| > > > > > > > > > > > > > > > > > > > > > > > | 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 |
>r 2dup r> ; msging-class is nest-sig
' message msg-class is start-req
:noname 2dup msg-dec?-sig? ; msg-class is nest-sig
' context-table is gen-table
also }scope
\ serialize hashes
: msg-serialize-hash ( -- )
{ | w^ want# }
?hashs[] want# [{: want# :}l
2dup ihave# #@ dup IF
bounds U+DO
2dup I $@ want# #+!
cell +LOOP 2drop
ELSE 2drop
2dup need-hashed? IF 2drop ELSE
0 .pk.host
2over 2over 2swap ihave# #!ins[]
want# #+!
THEN
THEN
;] $[]map
want# [:
msg( dup $@ .@host.id ." : " dup cell+ $@ 85type forth:cr )
dup cell+ $@ $, $@ $, msg-ihave ;] #map
?hashs[] $[]free
want# #frees ;
msging-table $save
: msg-reply ( tag -- )
." got reply " hex. pubkey $@ key>nick forth:type forth:cr ;
: expect-msg ( o:connection -- )
reply( ['] msg-reply )else( ['] drop ) expect-reply-xt +chat-control ;
|
| ︙ | ︙ | |||
1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 |
: msg-tdisplay ( addr u -- )
2dup 2 - + c@ $80 and IF msg-dec-sig? IF
2drop <err> ." Undecryptable message" <default> cr EXIT
THEN <info> THEN
sigpksize# - 2dup + sigpksize# >$ c-state off
nest-cmd-loop msg:end <default> ;
' msg-tdisplay msg-class is msg:display
' msg-tdisplay msg-notify-class is msg:display
: ?search-lock ( addr u -- )
BEGIN dup WHILE cell- 2dup + $@ sigpksize# - 1- + c@ $2E = IF
2dup + $@ ['] msg:display catch IF 2drop THEN
msg-group-o .msg:keys[] $[]# IF drop 0 THEN
THEN
REPEAT 2drop ;
: msg-tredisplay ( n -- )
| > > > > > | 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 |
: msg-tdisplay ( addr u -- )
2dup 2 - + c@ $80 and IF msg-dec-sig? IF
2drop <err> ." Undecryptable message" <default> cr EXIT
THEN <info> THEN
sigpksize# - 2dup + sigpksize# >$ c-state off
nest-cmd-loop msg:end <default> ;
: msg-tdisplay-silent ( addr u -- )
2dup 2 - + c@ $80 and IF msg-dec-sig? IF 2drop EXIT THEN THEN
sigpksize# - 2dup + sigpksize# >$ c-state off
nest-cmd-loop msg:end ;
' msg-tdisplay msg-class is msg:display
' msg-tdisplay msg-notify-class is msg:display
' msg-tdisplay-silent msg-?hash-class is msg:display
: ?search-lock ( addr u -- )
BEGIN dup WHILE cell- 2dup + $@ sigpksize# - 1- + c@ $2E = IF
2dup + $@ ['] msg:display catch IF 2drop THEN
msg-group-o .msg:keys[] $[]# IF drop 0 THEN
THEN
REPEAT 2drop ;
: msg-tredisplay ( n -- )
|
| ︙ | ︙ |
Changes to qrscan.fs.
| ︙ | ︙ | |||
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 |
new-scantex-raw new-scantex new-scantex-final 0>framebuffer
THEN ;
: scale+rotate ( -- )
p1 2@ p0 2@ p- p3 2@ p2 2@ p- p+ p2/
s>f y-scansize f/ y-rots sf! s>f x-scansize f/ x-scl sf!
p0 2@ p2 2@ p- p1 2@ p3 2@ p- p+ p2/
s>f y-scansize f/ y-scl sf! s>f x-scansize f/ x-rots sf! ;
: set-scan' ( -- )
compute-xpoint ( .. x y )
scale+rotate
y-offset f+ scan-w fm/ y-spos sf!
x-offset f+ scan-w fm/ x-spos sf! ;
: scan-xy ( -- sx sy )
1e cam-h cam-w over umin swap fm*/
1e cam-w cam-h over umin fm*/ ;
| > > > > > > > > > > | 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 |
new-scantex-raw new-scantex new-scantex-final 0>framebuffer
THEN ;
: scale+rotate ( -- )
p1 2@ p0 2@ p- p3 2@ p2 2@ p- p+ p2/
s>f y-scansize f/ y-rots sf! s>f x-scansize f/ x-scl sf!
p0 2@ p2 2@ p- p1 2@ p3 2@ p- p+ p2/
s>f y-scansize f/ y-scl sf! s>f x-scansize f/ x-rots sf! ;
: pf+ ( fx fy fx' fy' -- fx+x' fy+y' )
frot f+ f-rot f+ fswap ;
: perspective { f: x f: y -- x' y' }
p0 2@ s>f y f- s>f x f-
p1 2@ s>f y f- s>f x f- fnegate fswap pf+
p2 2@ s>f y f- s>f x f- fnegate fswap fnegate fswap pf+
p3 2@ s>f y f- s>f x f- fswap fnegate pf+
f2/ f2/ fswap f2/ f2/ ;
: set-scan' ( -- )
compute-xpoint ( .. x y )
\ fover fover .xpoint
fover fover perspective f. f. cr
scale+rotate
y-offset f+ scan-w fm/ y-spos sf!
x-offset f+ scan-w fm/ x-spos sf! ;
: scan-xy ( -- sx sy )
1e cam-h cam-w over umin swap fm*/
1e cam-w cam-h over umin fm*/ ;
|
| ︙ | ︙ |