Check-in [da769b84bb]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Bump version number
Timelines: family | ancestors | descendants | both | trunk | 0.8.3-20181115
Files: files | file ages | folders
SHA1: da769b84bbd984b361c327dd04e24a39b317b676
User & Date: bernd 2018-11-15 11:55:23
Context
2018-11-15
23:25
Notification+Otrify problems fixed (Otrify only partly) check-in: 9de6150452 user: bernd tags: trunk
11:55
Bump version number check-in: da769b84bb user: bernd tags: trunk, 0.8.3-20181115
2018-11-07
22:11
Bump version number check-in: ccdccc9a2f user: bernd tags: trunk, 0.8.3-20181107
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to classes.fs.

145
146
147
148
149
150
151

152
153
154
155
156
157
158
...
526
527
528
529
530
531
532



533
534
535
536


537
538
539
    method id
    method action
    method coord
    method otrify
    method payment
    method url
    method like

    method end
    method display   \ display one message
    method redisplay \ display full set
}class

cmd-class class{ pay
    field: sources[]    \ all the sources stored here, an array
................................................................................
     (("net2o:" "+net2o:") definition-starter (font-lock-keyword-face . 1)
      "[ \t\n]" t name (font-lock-function-name-face . 3))
     (("64value:")
       non-immediate (font-lock-type-face . 2)
       "[ \t\n]" t name (font-lock-variable-name-face . 3))
     ("[a-z0-9]+(" immediate (font-lock-comment-face . 1)
      ")" nil comment (font-lock-comment-face . 1))



    )
forth-local-indent-words:
    (
     (("net2o:" "+net2o:") (0 . 2) (0 . 2) non-immediate)


    )
End:
[THEN]







>







 







>
>
>




>
>



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
...
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
    method id
    method action
    method coord
    method otrify
    method payment
    method url
    method like
    method away
    method end
    method display   \ display one message
    method redisplay \ display full set
}class

cmd-class class{ pay
    field: sources[]    \ all the sources stored here, an array
................................................................................
     (("net2o:" "+net2o:") definition-starter (font-lock-keyword-face . 1)
      "[ \t\n]" t name (font-lock-function-name-face . 3))
     (("64value:")
       non-immediate (font-lock-type-face . 2)
       "[ \t\n]" t name (font-lock-variable-name-face . 3))
     ("[a-z0-9]+(" immediate (font-lock-comment-face . 1)
      ")" nil comment (font-lock-comment-face . 1))
     (("class{") definition-starter (font-lock-keyword-face . 1)
      "[ \t\n]" t name (font-lock-function-name-face . 3))
     (("}class") definition-ender (font-lock-keyword-face . 1))
    )
forth-local-indent-words:
    (
     (("net2o:" "+net2o:") (0 . 2) (0 . 2) non-immediate)
     (("class{") (0 . 2) (0 . 2))
     (("}class") (-2 . 0) (0 . -2))
    )
End:
[THEN]

Changes to configure.ac.

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

AC_INIT([net2o], [0.8.3-20181107], [bernd@net2o.de], [net2o], [https://fossil.net2o.de/net2o/reportlist])
AC_PREREQ([2.59])
AC_CONFIG_MACRO_DIR([m4])
AC_USE_SYSTEM_EXTENSIONS
LT_INIT

AC_MSG_CHECKING([for gforth])








|







11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

AC_INIT([net2o], [0.8.3-20181115], [bernd@net2o.de], [net2o], [https://fossil.net2o.de/net2o/reportlist])
AC_PREREQ([2.59])
AC_CONFIG_MACRO_DIR([m4])
AC_USE_SYSTEM_EXTENSIONS
LT_INIT

AC_MSG_CHECKING([for gforth])

Changes to do.

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

echo "This script builds net2o from scratch"

GFORTH=gforth-0.7.9_20181107

if [ "$(uname -o)" = "Cygwin" ]
then
    CONFOPT="--prefix=/usr $*"
else
    CONFOPT="$*"
fi




|







1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

echo "This script builds net2o from scratch"

GFORTH=gforth-0.7.9_20181115

if [ "$(uname -o)" = "Cygwin" ]
then
    CONFOPT="--prefix=/usr $*"
else
    CONFOPT="$*"
fi

Changes to doc/ef2018-presentation.fs.

73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
    over slide# !
    slides[] $[] @ /flip drop
    slides[] $[] @ /flop drop glue0 ;
: fade-img ( r0..1 img1 img2 -- ) >r >r
    $FF fm* f>s $FFFFFF00 or dup
    r> >o to frame-color parent-w .parent-w /flop drop o> invert $FFFFFF00 or
    r> >o to frame-color parent-w .parent-w /flop drop o> ;
: fade!slides ( r0..1 n -- )
    dup m/$-switch = IF
	fdup $q-img m2-img fade-img
    THEN
    dup n/m-switch = IF
	fdup m2-img n2-img fade-img
    THEN ;
: anim!slides ( r0..1 n -- )







|







73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
    over slide# !
    slides[] $[] @ /flip drop
    slides[] $[] @ /flop drop glue0 ;
: fade-img ( r0..1 img1 img2 -- ) >r >r
    $FF fm* f>s $FFFFFF00 or dup
    r> >o to frame-color parent-w .parent-w /flop drop o> invert $FFFFFF00 or
    r> >o to frame-color parent-w .parent-w /flop drop o> ;
: fade!slides ( r0..1 n -- r0..1 n )
    dup m/$-switch = IF
	fdup $q-img m2-img fade-img
    THEN
    dup n/m-switch = IF
	fdup m2-img n2-img fade-img
    THEN ;
: anim!slides ( r0..1 n -- )

Changes to gui.fs.

116
117
118
119
120
121
122

123
124
125
126
127
128
129
...
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
...
356
357
358
359
360
361
362




363
364
365
366


367
368
369
370
371
372
373


374
375
376


377
378
379
380
381
382
383
...
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
...
696
697
698
699
700
701
702
703



704
705
706
707
708
709
710
    anims@ 0 ?DO
	>o action-of animate ['] err-fade = flag or to flag
	o anims[] >stack o>
    LOOP  flag ;

forward show-nicks
forward gui-msgs


: pw-done ( max span addr pos -- max span addr pos flag )
    err-fade? IF  false  EXIT  THEN
    over 3 pick >passphrase +key
    read-keys secret-keys# 0= IF
	\ ." Wrong passphrase" cr
	1 tries# +! tries# @ 0 <# #s #> pw-num >o to text$ o>
................................................................................
    $cc6600FF Value pw-text-col#
    $00FF0020 Value chbs-col#
    $000020FF Value login-bg-col#
    $FFFFFFFF Value show-sign-color#
[THEN]

glue new Constant glue*lll±
glue*lll± >o 1Mglue hglue-c glue! 0glue fnip 1filll fswap dglue-c glue! 1glue vglue-c glue! o>

glue new Constant glue*shrink
glue*shrink >o 0e 1filll 0e hglue-c glue! 1glue dglue-c glue! 1glue vglue-c glue! o>

{{ login-bg-col# pres-frame dark-blue# ' dark-blue >body !
    {{
	glue*lll± }}glue
................................................................................
    cell +LOOP ;

: }}button-lit { d: text color -- o }
    {{
        glue*l color font-size# 40% f* }}frame dup .button2
        text }}text 25%b /center
    }}z box[] ;





: nicks-title ( -- )
    {{ glue*l $000000FF slide-frame dup .button1
	{{


	    {{ \large \bold \sans whitish
	    l" Nick+Pet" }}i18n-text 25%b glue*l }}glue }}h name-tab
	    {{
		{{ \script \mono \bold l" Pubkey"   }}i18n-text 20%bt glue*l }}glue }}h
		{{ \script \sans \bold l" Key date" }}i18n-text glue*l }}glue }}h
	    }}v pk-tab
	    glue*lll }}glue


	    \large s" ❌" $444444FF }}button-lit [: -1 data +! ;] level# click[]
	}}h box[]
    }}z box[] ;



{{ $FFFF80FF pres-frame
    {{
	{{
	    nicks-title
	    glue*shrink }}glue
	}}h box[]
................................................................................
	    font-size# 33% f* to slider-border
	dup font-size# 66% f* fdup vslider }}h box[]
    }}v box[]
}}z box[] to id-frame

: show-nicks ( -- )
    fill-nicks fill-groups next-slide
    0.01e peers-box [: .vp-top fdrop ;] >animate ;

\ messages

msg-class class
end-class wmsg-class

$88FF88FF Value my-signal#
................................................................................
    n2o-frame to top-widget
    "PASSPHRASE" getenv 2dup d0= IF  2drop
    ELSE
	>passphrase +key  read-keys
	"PASSPHRASE" getenv erase \ erase passphrase after use!
    THEN
    secret-keys# IF  show-nicks  THEN
    1config  !widgets  widgets-loop ;




' net2o-gui is run-gui

previous

\ localization








>







 







|







 







>
>
>
>




>
>
|
|
|
|
|
|
|
>
>



>
>







 







|







 







|
>
>
>







116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
...
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
...
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
...
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
...
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
    anims@ 0 ?DO
	>o action-of animate ['] err-fade = flag or to flag
	o anims[] >stack o>
    LOOP  flag ;

forward show-nicks
forward gui-msgs
0 Value title-vp

: pw-done ( max span addr pos -- max span addr pos flag )
    err-fade? IF  false  EXIT  THEN
    over 3 pick >passphrase +key
    read-keys secret-keys# 0= IF
	\ ." Wrong passphrase" cr
	1 tries# +! tries# @ 0 <# #s #> pw-num >o to text$ o>
................................................................................
    $cc6600FF Value pw-text-col#
    $00FF0020 Value chbs-col#
    $000020FF Value login-bg-col#
    $FFFFFFFF Value show-sign-color#
[THEN]

glue new Constant glue*lll±
glue*lll± >o 1Mglue fnip 1000e fswap hglue-c glue! 0glue fnip 1filll fswap dglue-c glue! 1glue vglue-c glue! o>

glue new Constant glue*shrink
glue*shrink >o 0e 1filll 0e hglue-c glue! 1glue dglue-c glue! 1glue vglue-c glue! o>

{{ login-bg-col# pres-frame dark-blue# ' dark-blue >body !
    {{
	glue*lll± }}glue
................................................................................
    cell +LOOP ;

: }}button-lit { d: text color -- o }
    {{
        glue*l color font-size# 40% f* }}frame dup .button2
        text }}text 25%b /center
    }}z box[] ;

also [ifdef] android android [then]

tex: vp-title

: nicks-title ( -- )
    {{ glue*l $000000FF slide-frame dup .button1
	{{
	    {{
		{{
		    {{ \large \bold \sans whitish
		    l" Nick+Pet" }}i18n-text 25%b glue*l }}glue }}h name-tab
		    {{
			{{ \script \mono \bold l" Pubkey"   }}i18n-text 20%bt glue*l }}glue }}h
			{{ \script \sans \bold l" Key date" }}i18n-text glue*l }}glue }}h
		    }}v pk-tab
		    glue*lll± }}glue
		}}h box[]
	    vp-title glue*lll ['] vp-title }}vp vp[] dup to title-vp
	    \large s" ❌" $444444FF }}button-lit [: -1 data +! ;] level# click[]
	}}h box[]
    }}z box[] ;

previous

{{ $FFFF80FF pres-frame
    {{
	{{
	    nicks-title
	    glue*shrink }}glue
	}}h box[]
................................................................................
	    font-size# 33% f* to slider-border
	dup font-size# 66% f* fdup vslider }}h box[]
    }}v box[]
}}z box[] to id-frame

: show-nicks ( -- )
    fill-nicks fill-groups next-slide
    0.01e peers-box [: .vp-top fdrop title-vp .vp-top ;] >animate ;

\ messages

msg-class class
end-class wmsg-class

$88FF88FF Value my-signal#
................................................................................
    n2o-frame to top-widget
    "PASSPHRASE" getenv 2dup d0= IF  2drop
    ELSE
	>passphrase +key  read-keys
	"PASSPHRASE" getenv erase \ erase passphrase after use!
    THEN
    secret-keys# IF  show-nicks  THEN
    1config  !widgets
    get-order n>r ['] /chat >body 1 set-order
    ['] widgets-loop catch
    nr> set-order throw ;

' net2o-gui is run-gui

previous

\ localization

Changes to msg.fs.

405
406
407
408
409
410
411
412

413
414
415
416
417
418
419
...
438
439
440
441
442
443
444

445
446
447
448
449
450
451
....
1196
1197
1198
1199
1200
1201
1202


1203
1204
1205
1206
1207
1208
1209
1210









1211
1212
1213
1214
1215
1216
1217
:noname ( addr u -- ) "#" notify+ $utf8> notify+
; msg-notify-class is msg:tag
:noname ( addr u -- )
    2dup [: ." @" .simple-id ;] $tmp notify+ ; msg-notify-class is msg:signal
:noname ( addr u -- ) $utf8> notify+ ; msg-notify-class is msg:text
:noname ( addr u -- ) $utf8> notify+ ; msg-notify-class is msg:url
:noname ( addr u -- ) $utf8> notify+ ; msg-notify-class is msg:action
:noname ( xchar -- ) drop ; msg-notify-class is msg:like

' 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 ( addr u -- )
    last# >r  2dup key| to msg:id$
    .log-num
................................................................................
:noname ( addr u -- )
    space <warn> ." [" 85type ." ]:" <default> ; msg-class is msg:id
:noname ( addr u -- ) $utf8> forth:type ; msg-class is msg:text
:noname ( addr u -- ) $utf8>
    <warn> forth:type <default> ; msg-class is msg:url
:noname ( xchar -- )
    <info> utf8emit <default> ; msg-class is msg:like

:noname ( addr u type -- )
    space <warn> 0 .r ." :[" 85type ." ]" <default> ;
msg-class is msg:object
:noname ( addr u -- ) $utf8>
    <warn> forth:type <default> ; msg-class is msg:action
:noname ( addr u -- )
    <warn> ."  GPS: " .coords <default> ; msg-class is msg:coord
................................................................................
	1 of ." itc-" endof
	2 of ." ditc-" endof
    endcase
    version-string forth:type '-' forth:emit
    machine forth:type ;

forward avalanche-text



also net2o-base scope: /chat

: /me ( addr u -- )
    \U me <action>          send string as action
    \G me: send remaining string as action
    [: $, msg-action ;] send-avalanche ;










: /otr ( addr u -- )
    \U otr on|off|message   turn otr mode on/off (or one-shot)
    2dup s" on" str= >r
    2dup s" off" str= r@ or IF   2drop r> otr-mode !
	<info> ." === " otr-mode @ IF  ." enter"  ELSE  ." leave"  THEN
	."  otr mode ===" <default> forth:cr
    ELSE  rdrop







|
>







 







>







 







>
>








>
>
>
>
>
>
>
>
>







405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
...
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
....
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
:noname ( addr u -- ) "#" notify+ $utf8> notify+
; msg-notify-class is msg:tag
:noname ( addr u -- )
    2dup [: ." @" .simple-id ;] $tmp notify+ ; msg-notify-class is msg:signal
:noname ( addr u -- ) $utf8> notify+ ; msg-notify-class is msg:text
:noname ( addr u -- ) $utf8> notify+ ; msg-notify-class is msg:url
:noname ( addr u -- ) $utf8> notify+ ; msg-notify-class is msg:action
' drop  msg-notify-class is msg:like
' 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 ( addr u -- )
    last# >r  2dup key| to msg:id$
    .log-num
................................................................................
:noname ( addr u -- )
    space <warn> ." [" 85type ." ]:" <default> ; msg-class is msg:id
:noname ( addr u -- ) $utf8> forth:type ; msg-class is msg:text
:noname ( addr u -- ) $utf8>
    <warn> forth:type <default> ; msg-class is msg:url
:noname ( xchar -- )
    <info> utf8emit <default> ; msg-class is msg:like
' drop msg-class is msg:away
:noname ( addr u type -- )
    space <warn> 0 .r ." :[" 85type ." ]" <default> ;
msg-class is msg:object
:noname ( addr u -- ) $utf8>
    <warn> forth:type <default> ; msg-class is msg:action
:noname ( addr u -- )
    <warn> ."  GPS: " .coords <default> ; msg-class is msg:coord
................................................................................
	1 of ." itc-" endof
	2 of ." ditc-" endof
    endcase
    version-string forth:type '-' forth:emit
    machine forth:type ;

forward avalanche-text

false value away?

also net2o-base scope: /chat

: /me ( addr u -- )
    \U me <action>          send string as action
    \G me: send remaining string as action
    [: $, msg-action ;] send-avalanche ;

: /away ( addr u -- )
    \U away [<action>]      send string or "away from keyboard" as action
    \G away: send string or "away from keyboard" as action
    dup 0= IF  2drop
	away? IF  "I'm back"  ELSE  "Away from keyboard"  THEN
	away? 0= to away?
    THEN
    [: $, msg-action ;] send-avalanche ;

: /otr ( addr u -- )
    \U otr on|off|message   turn otr mode on/off (or one-shot)
    2dup s" on" str= >r
    2dup s" off" str= r@ or IF   2drop r> otr-mode !
	<info> ." === " otr-mode @ IF  ." enter"  ELSE  ." leave"  THEN
	."  otr mode ===" <default> forth:cr
    ELSE  rdrop

Changes to wiki/commands.md.

1
2
3
4
5
6
7
8
9
10
# Commands #

Version 0.8.3-20181107.

net2o separates data and commands.  Data is passed through to higher
layers, commands are interpreted when they arrive.  For connection
requests, a special bit is set, and the address then isn't used as
address, but as IV for the opportunistic encoding.

The command interpreter is a stack machine with two data types: 64


|







1
2
3
4
5
6
7
8
9
10
# Commands #

Version 0.8.3-20181115.

net2o separates data and commands.  Data is passed through to higher
layers, commands are interpreted when they arrive.  For connection
requests, a special bit is set, and the address then isn't used as
address, but as IV for the opportunistic encoding.

The command interpreter is a stack machine with two data types: 64