#!/bin/sh
# the next line restarts using wish \
exec wish  "$0" "$@"

#----------------------------------------------------------------
#Questo file e' stato generato da Nidl c 2000 Amedeo de Longis
#                     luponero@mclink.it
#----------------------------------------------------------------

eval destroy [winfo child .]
bind Text <Control-c> {set w [focus -displayof .]; tk_textCopy $w}
bind Text <Control-x> {set w [focus -displayof .]; tk_textCut $w}
bind Text <Control-v> {set w [focus -displayof .]; tk_textPaste $w}
wm title . "NidlNews"
wm geometry . 620x460+10+10
set fontm -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
menu .menu -tearoff 0 -font $fontm -borderwidth 1
. configure -menu .menu
set m ".menu"
menu $m.menu -tearoff 0 -font $fontm -borderwidth 1
$m add cascade -label "File" -menu $m.menu -underline 0
menu $m.menu1 -tearoff 0 -font $fontm -borderwidth 1
$m add cascade -label "Configura" -menu $m.menu1 -underline 0
$m.menu add command -label "Posta scaricata" -command "AprePacchetto" -underline 0
$m.menu add command -label "Archivio" -command "ApreArchivio" -underline 0
$m.menu add command -label "Esci" -command Uscita -underline 0
$m.menu1 add command -label "Account" -command Configura -underline 0
$m.menu1 add command -label "Newgroup" -command ConfiguraNg -underline 0
frame .corn1
pack .corn1 -in .
pack configure .corn1 -side top
pack configure .corn1 -fill x
pack configure .corn1 -anchor w
.corn1 config -bg gray
.corn1 config -bd 2
.corn1 config -relief groove
button .bott1
pack .bott1 -in .corn1
.bott1 config -command ScriviMsg
pack configure .bott1 -side left
.bott1 config -bg gray75
.bott1 config -bd 0
pack configure .bott1 -pady 1
.bott1 config -relief flat
button .bott2
pack .bott2 -in .corn1
.bott2 config -command Rispondi
pack configure .bott2 -side left
.bott2 config -bg gray75
.bott2 config -bd 0
.bott2 config -relief flat
button .bott3
pack .bott3 -in .corn1
.bott3 config -command RiceviMsg
pack configure .bott3 -side left
.bott3 config -bg gray75
.bott3 config -bd 0
.bott3 config -relief flat
button .bott4
pack .bott4 -in .corn1
.bott4 config -command LeggiPrecedente
pack configure .bott4 -side left
.bott4 config -bg gray75
.bott4 config -bd 0
.bott4 config -relief flat
button .bott5
pack .bott5 -in .corn1
.bott5 config -command LeggiSuccessivo
pack configure .bott5 -side left
.bott5 config -bg gray75
.bott5 config -bd 0
.bott5 config -relief flat
button .bott6
pack .bott6 -in .corn1
.bott6 config -command Archivia
pack configure .bott6 -side left
.bott6 config -bg gray75
.bott6 config -bd 0
.bott6 config -relief flat
button .bott10
pack .bott10 -in .corn1
.bott10 config -command Uscita
pack configure .bott10 -side right
.bott10 config -bg gray75
.bott10 config -bd 0
.bott10 config -relief flat
frame .corn2
pack .corn2 -in .
pack configure .corn2 -side left
pack configure .corn2 -fill y
pack configure .corn2 -anchor n
listbox .list
pack .list -in .corn2
pack configure .list -side top
pack configure .list -fill both
pack configure .list -expand yes
pack configure .list -anchor w
.list config -bg white
.list config -selectbackground navyblue
.list config -selectforeground white
.list config -xscrollcommand ".barr set"
.list config -yscrollcommand ".barr2 set"
.list config -selectmode single
bind .list <ButtonRelease-1> "LeggiMessaggio"
scrollbar .barr
pack .barr -in .corn2
pack configure .barr -side bottom
pack configure .barr -fill x
pack configure .barr -anchor w
.barr config -orient horizontal
.barr config -width 8
.barr config -command ".list xview"
scrollbar .barr1
pack .barr1 -in .
pack configure .barr1 -side right
pack configure .barr1 -fill y
pack configure .barr1 -anchor n
.barr1 config -width 10
.barr1 config -command ".edit yview"
scrollbar .barr2
pack .barr2 -in .
pack configure .barr2 -side left
pack configure .barr2 -fill y
pack configure .barr2 -anchor n
.barr2 config -width 8
.barr2 config -command ".list yview"
frame .corn3
pack .corn3 -in .
pack configure .corn3 -side top
pack configure .corn3 -fill x
pack configure .corn3 -anchor n
.corn3 config -bg white
.corn3 config -bd 2
.corn3 config -relief sunken
.corn3 config -height 50
.corn3 config -width 150
frame .corn4
pack .corn4 -in .corn3
pack configure .corn4 -side left
pack configure .corn4 -fill both
pack configure .corn4 -anchor n
.corn4 config -bg grey25
.corn4 config -height 150
.corn4 config -width 150
label .etic0
pack .etic0 -in .corn4
pack configure .etic0 -side top
pack configure .etic0 -anchor e
.etic0 config -bg grey25
.etic0 config -fg white
.etic0 config -text "Newg.:"
label .etic1
pack .etic1 -in .corn4
pack configure .etic1 -side top
pack configure .etic1 -anchor e
.etic1 config -bg grey25
.etic1 config -fg white
.etic1 config -text "Msg-Id:"
label .etic2
pack .etic2 -in .corn4
pack configure .etic2 -side top
pack configure .etic2 -anchor e
.etic2 config -bg grey25
.etic2 config -fg white
.etic2 config -text "Autore:"
label .etic3
pack .etic3 -in .corn4
pack configure .etic3 -side top
pack configure .etic3 -anchor e
.etic3 config -bg grey25
.etic3 config -fg white
.etic3 config -text "Oggetto:"
label .etic01
pack .etic01 -in .corn3
pack configure .etic01 -side top
pack configure .etic01 -anchor w
.etic01 config -bg white
.etic01 config -textvariable Lng
label .etic4
pack .etic4 -in .corn3
pack configure .etic4 -side top
pack configure .etic4 -anchor w
.etic4 config -bg white
.etic4 config -textvariable Lmsg
label .etic5
pack .etic5 -in .corn3
pack configure .etic5 -side top
pack configure .etic5 -anchor w
.etic5 config -bg white
pack configure .etic5 -padx 4
.etic5 config -textvariable Lautore
label .etic6
pack .etic6 -in .corn3
pack configure .etic6 -side top
pack configure .etic6 -anchor w
.etic6 config -bg white
pack configure .etic6 -padx 4
.etic6 config -textvariable Loggetto
text .edit
pack .edit -in .
pack configure .edit -side top
pack configure .edit -fill both
pack configure .edit -expand yes
pack configure .edit -anchor w
.edit config -bg white
.edit config -font "-*-Helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*"
.edit config -selectbackground black
.edit config -selectforeground white
.edit config -yscrollcommand ".barr1 set"
.edit config -wrap word
proc Mostra_.fine1 {} {
catch {destroy .fine1}
toplevel .fine1
wm title .fine1 "Configura Account"
wm geometry .fine1 280x170+150+50
set fontm -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
menu .fine1.menu -tearoff 0 -font $fontm -borderwidth 1
.fine1 configure -menu .fine1.menu
set m .fine1.menu
frame .fine1.corn
pack .fine1.corn -in .fine1
pack configure .fine1.corn -side top
pack configure .fine1.corn -anchor w
pack configure .fine1.corn -padx 5
pack configure .fine1.corn -pady 5
label .fine1.etic
pack .fine1.etic -in .fine1.corn
pack configure .fine1.etic -side left
pack configure .fine1.etic -anchor n
.fine1.etic config -text "Server News: "
entry .fine1.case
pack .fine1.case -in .fine1.corn
pack configure .fine1.case -side left
pack configure .fine1.case -anchor n
.fine1.case config -textvariable Server
.fine1.case config -width 40
frame .fine1.corn3
pack .fine1.corn3 -in .fine1
pack configure .fine1.corn3 -side top
pack configure .fine1.corn3 -fill x
pack configure .fine1.corn3 -anchor w
pack configure .fine1.corn3 -padx 5
pack configure .fine1.corn3 -pady 5
label .fine1.etic3
pack .fine1.etic3 -in .fine1.corn3
pack configure .fine1.etic3 -side left
pack configure .fine1.etic3 -anchor n
.fine1.etic3 config -text "Mittente:"
entry .fine1.case3
pack .fine1.case3 -in .fine1.corn3
pack configure .fine1.case3 -side left
pack configure .fine1.case3 -fill x
pack configure .fine1.case3 -expand yes
pack configure .fine1.case3 -anchor n
.fine1.case3 config -textvariable Mioindirizzo
.fine1.case3 config -width 50
label .fine1.etic4
pack .fine1.etic4 -in .fine1
pack configure .fine1.etic4 -side top
pack configure .fine1.etic4 -anchor n
pack configure .fine1.etic4 -pady 10
.fine1.etic4 config -text "Num. Msgg. da scaricare al primo accesso:"
frame .fine1.corn3b
pack .fine1.corn3b -in .fine1
pack configure .fine1.corn3b -side top
pack configure .fine1.corn3b -fill x
pack configure .fine1.corn3b -anchor w
pack configure .fine1.corn3b -padx 5
pack configure .fine1.corn3b -pady 1
radiobutton .fine1.cases1
pack .fine1.cases1 -in .fine1.corn3b
pack configure .fine1.cases1 -side left
pack configure .fine1.cases1 -anchor n
pack configure .fine1.cases1 -padx 20
.fine1.cases1 config -text "10"
.fine1.cases1 config -value "10"
.fine1.cases1 config -variable NmsgS
radiobutton .fine1.cases2
pack .fine1.cases2 -in .fine1.corn3b
pack configure .fine1.cases2 -side left
pack configure .fine1.cases2 -anchor n
pack configure .fine1.cases2 -padx 20
.fine1.cases2 config -text "100"
.fine1.cases2 config -value "100"
.fine1.cases2 config -variable NmsgS
radiobutton .fine1.cases3
pack .fine1.cases3 -in .fine1.corn3b
pack configure .fine1.cases3 -side left
pack configure .fine1.cases3 -anchor n
pack configure .fine1.cases3 -padx 20
.fine1.cases3 config -text "300"
.fine1.cases3 config -value "300"
.fine1.cases3 config -variable NmsgS
frame .fine1.corn4
pack .fine1.corn4 -in .fine1
pack configure .fine1.corn4 -side bottom
pack configure .fine1.corn4 -fill x
pack configure .fine1.corn4 -anchor w
.fine1.corn4 config -bd 2
pack configure .fine1.corn4 -pady 5
.fine1.corn4 config -relief groove
button .fine1.bott
pack .fine1.bott -in .fine1.corn4
.fine1.bott config -command SalvaConfig
pack configure .fine1.bott -side right
pack configure .fine1.bott -anchor e
.fine1.bott config -text "Applica"
button .fine1.bott1
pack .fine1.bott1 -in .fine1.corn4
.fine1.bott1 config -command DistruggiConfig
pack configure .fine1.bott1 -side right
pack configure .fine1.bott1 -anchor e
.fine1.bott1 config -text "Annulla"

}

proc Mostra_.fine2 {} {
catch {destroy .fine2}
toplevel .fine2
wm title .fine2 "Scrivi Messaggio"
wm geometry .fine2 550x400+70+70
set fontm -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
menu .fine2.menu -tearoff 0 -font $fontm -borderwidth 1
.fine2 configure -menu .fine2.menu
set m .fine2.menu
frame .fine2.corn1
pack .fine2.corn1 -in .fine2
pack configure .fine2.corn1 -side top
pack configure .fine2.corn1 -fill x
pack configure .fine2.corn1 -anchor w
.fine2.corn1 config -bg gray75
.fine2.corn1 config -bd 2
.fine2.corn1 config -relief groove
button .fine2.bott1
pack .fine2.bott1 -in .fine2.corn1
.fine2.bott1 config -command InviaMsg
pack configure .fine2.bott1 -side left
.fine2.bott1 config -bg gray75
.fine2.bott1 config -bd 0
pack configure .fine2.bott1 -padx 1
pack configure .fine2.bott1 -pady 1
.fine2.bott1 config -relief flat
button .fine2.bott3
pack .fine2.bott3 -in .fine2.corn1
.fine2.bott3 config -command SalvaBozza
pack configure .fine2.bott3 -side left
.fine2.bott3 config -bg gray75
.fine2.bott3 config -bd 0
pack configure .fine2.bott3 -padx 1
pack configure .fine2.bott3 -pady 1
.fine2.bott3 config -relief flat
button .fine2.bott4
pack .fine2.bott4 -in .fine2.corn1
.fine2.bott4 config -command ImportaFile
pack configure .fine2.bott4 -side left
.fine2.bott4 config -bg gray75
.fine2.bott4 config -bd 0
pack configure .fine2.bott4 -padx 1
pack configure .fine2.bott4 -pady 1
.fine2.bott4 config -relief flat
button .fine2.bott2
pack .fine2.bott2 -in .fine2.corn1
.fine2.bott2 config -command DistruggiScrivi
pack configure .fine2.bott2 -side right
.fine2.bott2 config -bg gray75
.fine2.bott2 config -bd 0
pack configure .fine2.bott2 -padx 1
.fine2.bott2 config -relief flat
frame .fine2.corn3
pack .fine2.corn3 -in .fine2
pack configure .fine2.corn3 -side top
pack configure .fine2.corn3 -fill x
pack configure .fine2.corn3 -anchor n
.fine2.corn3 config -bg white
.fine2.corn3 config -bd 2
.fine2.corn3 config -relief sunken
.fine2.corn3 config -height 50
.fine2.corn3 config -width 150
frame .fine2.corn4
pack .fine2.corn4 -in .fine2.corn3
pack configure .fine2.corn4 -side left
pack configure .fine2.corn4 -fill both
pack configure .fine2.corn4 -anchor n
.fine2.corn4 config -bg grey25
.fine2.corn4 config -height 150
.fine2.corn4 config -width 150
label .fine2.etic1
pack .fine2.etic1 -in .fine2.corn4
pack configure .fine2.etic1 -side top
pack configure .fine2.etic1 -anchor e
.fine2.etic1 config -bg grey25
.fine2.etic1 config -fg white
pack configure .fine2.etic1 -pady 5
.fine2.etic1 config -text "Newg.:"
label .fine2.etic2
pack .fine2.etic2 -in .fine2.corn4
pack configure .fine2.etic2 -side top
pack configure .fine2.etic2 -anchor e
.fine2.etic2 config -bg grey25
.fine2.etic2 config -fg white
pack configure .fine2.etic2 -pady 5
.fine2.etic2 config -text "Oggetto:"
frame .fine2.cornb
pack .fine2.cornb -in .fine2.corn3
pack configure .fine2.cornb -side top
pack configure .fine2.cornb -fill both
pack configure .fine2.cornb -anchor w
.fine2.cornb config -bg white
.fine2.cornb config -height 150
.fine2.cornb config -width 150
button .fine2.bottng
pack .fine2.bottng -in .fine2.cornb
.fine2.bottng config -command "SelNg"
pack configure .fine2.bottng -side left
pack configure .fine2.bottng -anchor n
.fine2.bottng config -bg white
.fine2.bottng config -relief flat
entry .fine2.case1
pack .fine2.case1 -in .fine2.cornb
pack configure .fine2.case1 -side left
pack configure .fine2.case1 -fill x
pack configure .fine2.case1 -expand yes
pack configure .fine2.case1 -anchor n
.fine2.case1 config -bg white
.fine2.case1 config -bd 0
pack configure .fine2.case1 -padx 3
pack configure .fine2.case1 -pady 5
.fine2.case1 config -relief flat
.fine2.case1 config -textvariable Destinatario
entry .fine2.case2
pack .fine2.case2 -in .fine2.corn3
pack configure .fine2.case2 -side top
pack configure .fine2.case2 -fill x
pack configure .fine2.case2 -expand yes
pack configure .fine2.case2 -anchor w
.fine2.case2 config -bg white
.fine2.case2 config -bd 0
pack configure .fine2.case2 -padx 3
pack configure .fine2.case2 -pady 5
.fine2.case2 config -relief flat
.fine2.case2 config -textvariable Oggetto
scrollbar .fine2.barr1
pack .fine2.barr1 -in .fine2
pack configure .fine2.barr1 -side right
pack configure .fine2.barr1 -fill y
pack configure .fine2.barr1 -anchor n
.fine2.barr1 config -width 10
.fine2.barr1 config -command ".fine2.edit yview"
text .fine2.edit
pack .fine2.edit -in .fine2
pack configure .fine2.edit -side top
pack configure .fine2.edit -fill both
pack configure .fine2.edit -expand yes
pack configure .fine2.edit -anchor w
.fine2.edit config -bg white
.fine2.edit config -font "-*-Helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*"
.fine2.edit config -selectbackground black
.fine2.edit config -selectforeground white
.fine2.edit config -yscrollcommand ".fine2.barr1 set"
.fine2.edit config -wrap word

}

proc Mostra_.fine3 {} {
catch {destroy .fine3}
toplevel .fine3
wm title .fine3 "Ricezione/Spedizione Msg."
wm geometry .fine3 200x110+150+150
set fontm -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
menu .fine3.menu -tearoff 0 -font $fontm -borderwidth 1
.fine3 configure -menu .fine3.menu
set m .fine3.menu
frame .fine3.corn
pack .fine3.corn -in .fine3
pack configure .fine3.corn -side left
pack configure .fine3.corn -fill both
pack configure .fine3.corn -expand yes
pack configure .fine3.corn -anchor n
.fine3.corn config -bg grey25
.fine3.corn config -bd 3
.fine3.corn config -relief sunken
label .fine3.etic1
pack .fine3.etic1 -in .fine3.corn
pack configure .fine3.etic1 -side top
.fine3.etic1 config -bg grey25
.fine3.etic1 config -fg green
pack configure .fine3.etic1 -padx 5
pack configure .fine3.etic1 -pady 5
.fine3.etic1 config -text "Collegamento in corso..."
label .fine3.etic2
pack .fine3.etic2 -in .fine3.corn
pack configure .fine3.etic2 -side top
.fine3.etic2 config -bg grey25
.fine3.etic2 config -fg green
pack configure .fine3.etic2 -padx 5
pack configure .fine3.etic2 -pady 5
.fine3.etic2 config -text ""
label .fine3.etic3
pack .fine3.etic3 -in .fine3.corn
pack configure .fine3.etic3 -side top
.fine3.etic3 config -bg grey25
.fine3.etic3 config -fg green
pack configure .fine3.etic3 -padx 5
pack configure .fine3.etic3 -pady 5
.fine3.etic3 config -text ""

}

proc Mostra_.fine4 {} {
catch {destroy .fine4}
toplevel .fine4
wm title .fine4 "Seleziona Newsgroup"
wm geometry .fine4 300x300+150+180
set fontm -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
menu .fine4.menu -tearoff 0 -font $fontm -borderwidth 1
.fine4 configure -menu .fine4.menu
set m .fine4.menu
frame .fine4.corn
pack .fine4.corn -in .fine4
pack configure .fine4.corn -side bottom
pack configure .fine4.corn -fill x
pack configure .fine4.corn -anchor n
.fine4.corn config -bd 2
pack configure .fine4.corn -pady 5
.fine4.corn config -relief groove
scrollbar .fine4.barr
pack .fine4.barr -in .fine4
pack configure .fine4.barr -side right
pack configure .fine4.barr -fill y
pack configure .fine4.barr -anchor n
.fine4.barr config -width 8
.fine4.barr config -command ".fine4.list yview"
listbox .fine4.list
pack .fine4.list -in .fine4
pack configure .fine4.list -side left
pack configure .fine4.list -fill both
pack configure .fine4.list -expand yes
pack configure .fine4.list -anchor n
.fine4.list config -bg white
.fine4.list config -bd 2
.fine4.list config -relief sunken
.fine4.list config -yscrollcommand ".fine4.barr set"
button .fine4.bott1
pack .fine4.bott1 -in .fine4.corn
.fine4.bott1 config -command "DistruggiSelN"
pack configure .fine4.bott1 -side right
pack configure .fine4.bott1 -anchor n
.fine4.bott1 config -text "Chiudi"
button .fine4.bott
pack .fine4.bott -in .fine4.corn
.fine4.bott config -command "AggiungiNg"
pack configure .fine4.bott -side right
pack configure .fine4.bott -anchor n
.fine4.bott config -text "Aggiungi"

}

proc Mostra_.fine5 {} {
catch {destroy .fine5}
toplevel .fine5
wm title .fine5 "Sottoscrivi Newsgroup"
wm geometry .fine5 300x300+150+180
set fontm -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
menu .fine5.menu -tearoff 0 -font $fontm -borderwidth 1
.fine5 configure -menu .fine5.menu
set m .fine5.menu
frame .fine5.corn
pack .fine5.corn -in .fine5
pack configure .fine5.corn -side bottom
pack configure .fine5.corn -fill x
pack configure .fine5.corn -anchor n
.fine5.corn config -bd 2
pack configure .fine5.corn -pady 5
.fine5.corn config -relief groove
entry .fine5.case
pack .fine5.case -in .fine5
pack configure .fine5.case -side bottom
pack configure .fine5.case -fill x
pack configure .fine5.case -anchor w
.fine5.case config -bg white
scrollbar .fine5.barr
pack .fine5.barr -in .fine5
pack configure .fine5.barr -side right
pack configure .fine5.barr -fill y
pack configure .fine5.barr -anchor n
.fine5.barr config -width 8
.fine5.barr config -command ".fine5.list yview"
listbox .fine5.list
pack .fine5.list -in .fine5
pack configure .fine5.list -side left
pack configure .fine5.list -fill both
pack configure .fine5.list -expand yes
pack configure .fine5.list -anchor n
.fine5.list config -bg white
.fine5.list config -bd 2
.fine5.list config -relief sunken
.fine5.list config -yscrollcommand ".fine5.barr set"
button .fine5.bott1
pack .fine5.bott1 -in .fine5.corn
.fine5.bott1 config -command "DistruggiFin5"
pack configure .fine5.bott1 -side right
pack configure .fine5.bott1 -anchor n
.fine5.bott1 config -text "Chiudi"
button .fine5.bott2
pack .fine5.bott2 -in .fine5.corn
.fine5.bott2 config -command "ElNg"
pack configure .fine5.bott2 -side right
pack configure .fine5.bott2 -anchor n
.fine5.bott2 config -text "Elimina"
button .fine5.bott
pack .fine5.bott -in .fine5.corn
.fine5.bott config -command "AgNg"
pack configure .fine5.bott -side right
pack configure .fine5.bott -anchor n
.fine5.bott config -text "Aggiungi"

}

proc ProceduraPrincipale  {} {
global FileDaAprire
global Server
global Mioindirizzo
global NmsgS
global Destinatario
global Oggetto
global Lng
global Lautore
global Loggetto
global Lmsg
global MsgSelezionato
set FileDaAprire ""
set Server ""
set Mioindirizzo ""
set NmsgS "10"
set Destinatario ""
set Oggetto ""
set MsgSelezionato ""
set stringa1 "imscrivi"
set stringa2 "./bitmaps/scrivi.gif"
image create photo $stringa1 -file $stringa2
set stringa1 "imrisp"
set stringa2 "./bitmaps/risp.gif"
image create photo $stringa1 -file $stringa2
set stringa1 "imric"
set stringa2 "./bitmaps/ricevi.gif"
image create photo $stringa1 -file $stringa2
set stringa1 "imprec"
set stringa2 "./bitmaps/prevm.gif"
image create photo $stringa1 -file $stringa2
set stringa1 "imsucc"
set stringa2 "./bitmaps/nextm.gif"
image create photo $stringa1 -file $stringa2
set stringa1 "imarch"
set stringa2 "./bitmaps/archivia.gif"
image create photo $stringa1 -file $stringa2
set stringa1 "imesci"
set stringa2 "./bitmaps/esci2.gif"
image create photo $stringa1 -file $stringa2
set nomeoggetto ".bott1"
set stringa1 "imscrivi"
$nomeoggetto config -image $stringa1
set nomeoggetto ".bott2"
set stringa1 "imrisp"
$nomeoggetto config -image $stringa1
set nomeoggetto ".bott3"
set stringa1 "imric"
$nomeoggetto config -image $stringa1
set nomeoggetto ".bott4"
set stringa1 "imprec"
$nomeoggetto config -image $stringa1
set nomeoggetto ".bott5"
set stringa1 "imsucc"
$nomeoggetto config -image $stringa1
set nomeoggetto ".bott6"
set stringa1 "imarch"
$nomeoggetto config -image $stringa1
set nomeoggetto ".bott10"
set stringa1 "imesci"
$nomeoggetto config -image $stringa1
set nomeoggetto ".edit"
set stringa1 "\nQuesto piccolo NewsReader  stato scritto con Nidl.\nE' solo un esempio di ci che si pu fare con questo facile\nsotto-linguaggio.\n\nNidlMail  molto semplice e serve pi che altro ad illustrare il\nfunzionamento del socket ed i comandi relativi.\nIn pratica pu costituire la base per le vostre applicazioni\npersonalizzate.\n\nSpero che proviate NidlNews e che dopo aver configurato l'account\ne inviate un msg di saluti  in it.comp.os.linux.software.\nSaluti\n\nLuponero "
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
set file "/.nnewgroups"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
set stringa1 $file
set risultato [ file isfile $stringa1]
if {$risultato == "0"} {
set miofile  [open $file "w+"]
set stringa1 $miofile
set stringa2 "it.comp.linux 0"
puts $stringa1 $stringa2
set stringa2 "it.comp.os.linux.software 0"
puts $stringa1 $stringa2
set stringa2 "it.comp.os.linux.development 0"
puts $stringa1 $stringa2
close $miofile
 }
update
AprePacchetto
update
LeggiConfig
}
proc AprePacchetto {} {
global FileDaAprire
set stringa1 "#tmpn.in"
set risultato [ file isfile $stringa1]
if {$risultato == "1"} {
set FileDaAprire "#tmpn.in"
LeggeFile
 }
}
proc LeggeFile {} {
global FileDaAprire
global Lmsg
global Lautore
global Loggetto
set Lmsg ""
set Lautore ""
set Loggetto ""
set nomeoggetto ".edit"
set valore1 "0.0"
set valore2 "end"
$nomeoggetto delete $valore1 $valore2
set nomeoggetto ".list"
set valore1 "0"
set valore2 "end"
$nomeoggetto delete $valore1 $valore2
set miofile  [open $FileDaAprire "r"]
set seekfile "0"
set separatore1 " "
set separatore2 "                              "
set autore ""
set oggetto ""
while {![eof $miofile]} {
set stringa1 $miofile
gets $stringa1 risultato
set linea $risultato
set stringa1 $linea
set stringa2 ".*"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
set stringa1 $miofile
set risultato [ tell $stringa1]
set seekfile $risultato
 }
set stringa1 $linea
set stringa2 "From:*"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
set nomeoggetto ".list"
set stringa1 $linea
set valore1 "6"
set valore2 "end"
set risultato [string range $stringa1 $valore1 $valore2]
set autore $risultato
 }
set stringa1 $linea
set stringa2 "Subject:*"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
set stringa1 $linea
set valore1 "9"
set valore2 "end"
set risultato [string range $stringa1 $valore1 $valore2]
set oggetto $risultato
set stringa1 $oggetto
set stringa2 $separatore1
set risultato $stringa1$stringa2
set stringa1 $risultato
set stringa2 $autore
set risultato $stringa1$stringa2
set stringa1 $risultato
set stringa2 $separatore2
set risultato $stringa1$stringa2
set stringa1 $risultato
set stringa2 $seekfile
set risultato $stringa1$stringa2
set nomeoggetto ".list"
set stringa1 $risultato
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
 }
 }
close $miofile
set nomeoggetto ".list"
set valore1 "0"
set valore2 "0"
$nomeoggetto selection set $valore1 $valore2
LeggiMessaggio
}
proc ApreArchivio {} {
global FileDaAprire
set file "/.nnewsarchivi"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
set stringa1 $file
set risultato [ file isfile $stringa1]
if {$risultato == "1"} {
set FileDaAprire $file
LeggeFile
 }
if {$risultato == "0"} {
set stringa1 "L'archivio  vuoto"
tk_messageBox -message $stringa1
 }
}
proc LeggiSuccessivo  {} {
global MsgSelezionato
set nomeoggetto ".list"
set risultato [$nomeoggetto curselection]
if {$risultato == ""} {
set risultato $MsgSelezionato
 }
if {$risultato == ""} {
set risultato "-1"
 }
set selezione $risultato
incr selezione
set nomeoggetto ".list"
set risultato [$nomeoggetto size]
if {$selezione == $risultato} {
return
 }
set nomeoggetto ".list"
$nomeoggetto selection clear 0 end
set valore1 $selezione
set valore2 $selezione
$nomeoggetto selection set $valore1 $valore2
LeggiMessaggio
}
proc LeggiPrecedente  {} {
global MsgSelezionato
set nomeoggetto ".list"
set risultato [$nomeoggetto curselection]
if {$risultato == ""} {
set risultato $MsgSelezionato
 }
if {$risultato == ""} {
set risultato "1"
 }
set valore1 $risultato
set valore2 "1"
set risultato [expr $valore1 - $valore2]
set selezione $risultato
if {$selezione < "0"} {
return
 }
set nomeoggetto ".list"
$nomeoggetto selection clear 0 end
set valore1 $selezione
set valore2 $selezione
$nomeoggetto selection set $valore1 $valore2
LeggiMessaggio
}
proc LeggiMessaggio  {} {
global FileDaAprire
global Lng
global Lmsg
global Lautore
global Loggetto
global MsgSelezionato
if {$FileDaAprire == ""} {
return
 }
set nomeoggetto ".edit"
set valore1 "0.0"
set valore2 "end"
$nomeoggetto delete $valore1 $valore2
set nomeoggetto ".list"
set risultato [$nomeoggetto size]
if {$risultato == "0"} {
return
 }
set nomeoggetto ".list"
set risultato "Nessun elemento selezionato"; catch {set risultato [selection get -displayof $nomeoggetto]}
set seekfile $risultato
set stringa1 $risultato
set stringa2 " "
set risultato [string last $stringa2 $stringa1]
set stringa1 $seekfile
set valore1 $risultato
set valore2 "end"
set risultato [string range $stringa1 $valore1 $valore2]
set seekfile $risultato
set miofile  [open $FileDaAprire "r"]
set stringa1 $miofile
set valore1 $seekfile
seek $stringa1 $valore1
gets $stringa1 risultato
set header "0"
while {![eof $miofile]} {
set stringa1 $miofile
gets $stringa1 risultato
set linea $risultato
set stringa1 $linea
set stringa2 "From:*"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
set stringa1 $linea
set valore1 "6"
set valore2 "end"
set risultato [string range $stringa1 $valore1 $valore2]
set Lautore $risultato
incr header
 }
set stringa1 $linea
set stringa2 "Newsgroups:*"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
set stringa1 $linea
set valore1 "12"
set valore2 "end"
set risultato [string range $stringa1 $valore1 $valore2]
set Lng $risultato
incr header
 }
set stringa1 $linea
set stringa2 "Message-*"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
set stringa1 $linea
set valore1 "11"
set valore2 "end"
set risultato [string range $stringa1 $valore1 $valore2]
set Lmsg $risultato
incr header
 }
set stringa1 $linea
set stringa2 "Subject:*"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
set stringa1 $linea
set valore1 "9"
set valore2 "end"
set risultato [string range $stringa1 $valore1 $valore2]
set Loggetto $risultato
incr header
 }
if {$header == "4"} {
break
 }
 }
while {![eof $miofile]} {
set stringa1 $miofile
gets $stringa1 risultato
set linea $risultato
set stringa1 $linea
set stringa2 ""
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
break
 }
 }
while {![eof $miofile]} {
set stringa1 $miofile
gets $stringa1 risultato
set linea $risultato
set stringa1 $linea
set stringa2 ".*"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
break
 }
set nomeoggetto ".edit"
set stringa1 $linea\n
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
 }
close $miofile
set nomeoggetto ".list"
set risultato [$nomeoggetto curselection]
set MsgSelezionato $risultato
set valore1 $risultato
$nomeoggetto see $valore1
set risultato [$nomeoggetto size]
set valore1 $risultato
set valore2 "1"
set risultato [expr $valore1 - $valore2]
set nomeoggetto ".bott4"
$nomeoggetto config -state normal
if {$MsgSelezionato == "0"} {
$nomeoggetto config -state disabled
 }
set nomeoggetto ".bott5"
$nomeoggetto config -state normal
if {$MsgSelezionato == $risultato} {
$nomeoggetto config -state disabled
 }
}
proc Archivia {} {
global Lmsg
global Lautore
global Loggetto
global FileDaAprire
if {$FileDaAprire != "#tmpn.in"} {
return
 }
set file "/.nnewsarchivi"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
if {$Lautore == ""} {
return
 }
set miofile1  [open "#tmpn.in" "r"]
set miofile2  [open $file "a+"]
set nomeoggetto ".list"
set risultato "Nessun elemento selezionato"; catch {set risultato [selection get -displayof $nomeoggetto]}
set seekfile $risultato
set stringa1 $risultato
set stringa2 " "
set risultato [string last $stringa2 $stringa1]
set stringa1 $seekfile
set valore1 $risultato
set valore2 "end"
set risultato [string range $stringa1 $valore1 $valore2]
set seekfile $risultato
set stringa1 $miofile1
set valore1 $seekfile
seek $stringa1 $valore1
while {![eof $miofile1]} {
set stringa1 $miofile1
gets $stringa1 risultato
set linea $risultato
set stringa1 $miofile2
set stringa2 $linea
puts $stringa1 $stringa2
set stringa1 $linea
set stringa2 ".*"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
break
 }
 }
close $miofile1
close $miofile2
set stringa1 "Il messaggio  stato archiviato"
tk_messageBox -message $stringa1
}
proc Configura  {} {
set nomeoggetto ".fine1"
update; Mostra_$nomeoggetto
set nomeoggetto ".fine1.case"
focus $nomeoggetto
}
proc DistruggiConfig  {} {
set nomeoggetto ".fine1"
destroy $nomeoggetto
}
proc SalvaConfig  {} {
global Server
global Mioindirizzo
global NmsgS
if {$Server == ""} {
set stringa1 "Compilare tutti i campi"
tk_messageBox -message $stringa1
return
 }
if {$Mioindirizzo == ""} {
set stringa1 "Compilare tutti i campi"
tk_messageBox -message $stringa1
return
 }
set file "/.nnewsconfig"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
set miofile  [open $file "w+"]
set stringa1 $miofile
set stringa2 $Server
puts $stringa1 $stringa2
set stringa2 $Mioindirizzo
puts $stringa1 $stringa2
set stringa2 $NmsgS
puts $stringa1 $stringa2
close $miofile
set nomeoggetto ".fine1"
destroy $nomeoggetto
}
proc LeggiConfig  {} {
global Server
global Mioindirizzo
global NmsgS
set file "/.nnewsconfig"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
set stringa1 $file
set risultato [ file isfile $stringa1]
if {$risultato == "0"} {
return
 }
set miofile  [open $file "r"]
set stringa1 $miofile
gets $stringa1 risultato
set Server $risultato
gets $stringa1 risultato
set Mioindirizzo $risultato
gets $stringa1 risultato
set NmsgS $risultato
close $miofile
}
proc ScriviMsg  {} {
global Destinatario
global Oggetto
set Destinatario ""
set Oggetto ""
set nomeoggetto ".fine2"
update; Mostra_$nomeoggetto
set stringa1 "imsped"
set stringa2 "./bitmaps/sped.gif"
image create photo $stringa1 -file $stringa2
set stringa1 "imbozza"
set stringa2 "./bitmaps/bozza.gif"
image create photo $stringa1 -file $stringa2
set stringa1 "imimporta"
set stringa2 "./bitmaps/impf.gif"
image create photo $stringa1 -file $stringa2
set stringa1 "imann"
set stringa2 "./bitmaps/annulla.gif"
image create photo $stringa1 -file $stringa2
set stringa1 "imng"
set stringa2 "./bitmaps/newg.gif"
image create photo $stringa1 -file $stringa2
set nomeoggetto ".fine2.bott1"
set stringa1 "imsped"
$nomeoggetto config -image $stringa1
set nomeoggetto ".fine2.bott2"
set stringa1 "imann"
$nomeoggetto config -image $stringa1
set nomeoggetto ".fine2.bott3"
set stringa1 "imbozza"
$nomeoggetto config -image $stringa1
set nomeoggetto ".fine2.bott4"
set stringa1 "imimporta"
$nomeoggetto config -image $stringa1
set nomeoggetto ".fine2.bottng"
set stringa1 "imng"
$nomeoggetto config -image $stringa1
}
proc Rispondi  {} {
global Lng
global Lmsg
global Lautore
global Loggetto
global Destinatario
global Oggetto
if {$Lautore == ""} {
return
 }
ScriviMsg
set Destinatario $Lng
set stringa1 "Re: "
set stringa2 $Loggetto
set risultato $stringa1$stringa2
set Oggetto $risultato
set nomeoggetto ".fine2.edit"
set stringa1 "Nel Msg. "
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
set stringa1 $Lmsg\n
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
set stringa1 $Lautore\n
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
set stringa1 "ha scritto: \n\n| "
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
set nomeoggetto ".edit"
set valore1 "0.0"
set valore2 "end"
set risultato [$nomeoggetto get $valore1 $valore2]
set stringa1 $risultato
set risultato [string trim $stringa1]
set stringa1 $risultato
set valore1 "\n"
set valore2 "\n| "
regsub -all ($valore1) $stringa1 $valore2 risultato
set nomeoggetto ".fine2.edit"
set stringa1 $risultato\n\n
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
}
proc SalvaBozza  {} {
set risultato [tk_getSaveFile -title "Salva file"]
if {$risultato == ""} {
return
 }
set miofile  [open $risultato "w+"]
set nomeoggetto ".fine2.edit"
set stringa1 $miofile
puts $stringa1 [$nomeoggetto get 0.0 end]
close $miofile
set stringa1 "Testo del Msg salvato."
tk_messageBox -message $stringa1
}
proc ImportaFile {} {
set risultato [tk_getOpenFile -title "Apri file"]
if {$risultato == ""} {
return
 }
set miofile  [open $risultato "r"]
while {![eof $miofile]} {
set stringa1 $miofile
gets $stringa1 risultato
set nomeoggetto ".fine2.edit"
set stringa1 $risultato\n
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
 }
close $miofile
}
proc DistruggiScrivi  {} {
set nomeoggetto ".fine2"
destroy $nomeoggetto
}
proc SelNg  {} {
set nomeoggetto ".fine4"
update; Mostra_$nomeoggetto
set file "/.nnewgroups"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
set miofile  [open $file "r"]
while {![eof $miofile]} {
set stringa1 $miofile
gets $stringa1 risultato
if {$risultato != ""} {
set linea $risultato
set stringa1 $risultato
set stringa2 " "
set risultato [string first $stringa2 $stringa1]
set indice1 $risultato
set stringa1 $linea
set valore1 "0"
set valore2 $indice1
set risultato [string range $stringa1 $valore1 $valore2]
set stringa1 $risultato
set risultato [string trim $stringa1]
set nomeoggetto ".fine4.list"
set stringa1 $risultato
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
 }
 }
set nomeoggetto ".fine4.list"
set valore1 "0"
set valore2 "0"
$nomeoggetto selection set $valore1 $valore2
close $miofile
}
proc AggiungiNg  {} {
global Destinatario
if {$Destinatario != ""} {
set stringa1 $Destinatario
set stringa2 ","
set risultato $stringa1$stringa2
set Destinatario $risultato
 }
set nomeoggetto ".fine4.list"
set risultato "Nessun elemento selezionato"; catch {set risultato [selection get -displayof $nomeoggetto]}
set stringa1 $Destinatario
set stringa2 $risultato
set risultato $stringa1$stringa2
set Destinatario $risultato
}
proc DistruggiSelN {} {
set nomeoggetto ".fine4"
destroy $nomeoggetto
}
proc ConfiguraNg  {} {
set nomeoggetto ".fine5"
update; Mostra_$nomeoggetto
set file "/.nnewgroups"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
set miofile  [open $file "r"]
while {![eof $miofile]} {
set stringa1 $miofile
gets $stringa1 risultato
if {$risultato != ""} {
set linea $risultato
set nomeoggetto ".fine5.list"
set stringa1 $risultato
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
 }
 }
set nomeoggetto ".fine5.list"
set valore1 "0"
set valore2 "0"
$nomeoggetto selection set $valore1 $valore2
close $miofile
}
proc DistruggiFin5  {} {
set file "/.nnewgroups"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
set miofile  [open $file "w+"]
set memlistng ""
set nomeoggetto ".fine5.list"
set risultato [$nomeoggetto size]
set fineciclo $risultato
set ciclo "0"
while {$ciclo != $fineciclo} {
set valore1 $ciclo
set valore2 $ciclo
set risultato [$nomeoggetto get $valore1 $valore2]
lappend memlistng $risultato
incr ciclo
 }
set stringa1 $memlistng
foreach risultato $stringa1 {
set item $risultato
set stringa1 $item
set stringa2 "\{*"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
set stringa1 $item
set valore1 "1"
set valore2 "end"
set risultato [string range $stringa1 $valore1 $valore2]
set stringa1 $miofile
set stringa2 $risultato
set item $risultato
 }
set stringa1 $item
set stringa2 "*\}"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
set stringa1 $item
set risultato [string length $stringa1]
set valore1 $risultato
set valore2 "2"
set risultato [expr $valore1 - $valore2]
set stringa1 $item
set valore1 "0"
set valore2 $risultato
set risultato [string range $stringa1 $valore1 $valore2]
set item $risultato
 }
set stringa1 $miofile
set stringa2 $item
puts $stringa1 $stringa2
 }
close $miofile
set nomeoggetto ".fine5"
destroy $nomeoggetto
}
proc AgNg  {} {
set nomeoggetto ".fine5.case"
set risultato [$nomeoggetto get]
if {$risultato == ""} {
set stringa1 "Inserire il nome del ng da sottoscrivere es. it.comp.linux"
tk_messageBox -message $stringa1
set nomeoggetto ".fine5.list"
set valore1 "0"
set valore2 "0"
$nomeoggetto selection set $valore1 $valore2
return
 }
set stringa1 $risultato
set stringa2 " 0"
set risultato $stringa1$stringa2
set nomeoggetto ".fine5.list"
set stringa1 $risultato
set valore1 "end"
$nomeoggetto insert $valore1 $stringa1
set nomeoggetto ".fine5.case"
$nomeoggetto delete 0 end
}
proc ElNg  {} {
set nomeoggetto ".fine5.list"
set risultato [$nomeoggetto size]
if {$risultato == "1"} {
set stringa1 "Non  ammesso annullare tutte le sottoscrizioni"
tk_messageBox -message $stringa1
return
 }
set nomeoggetto ".fine5.list"
set risultato [$nomeoggetto curselection]
if {$risultato == ""} {
set stringa1 "Selezionare il Newg. da eliminare"
tk_messageBox -message $stringa1
return
 }
set nomeoggetto ".fine5.list"
set valore1 $risultato
set valore2 $risultato
$nomeoggetto delete $valore1 $valore2
set valore1 $risultato
set valore2 "1"
set risultato [expr $valore1 - $valore2]
set valore1 $risultato
set valore2 $risultato
$nomeoggetto selection set $valore1 $valore2
}
proc RiceviMsg  {} {
global Server
global Lng
global Lmsg
global Lautore
global Loggetto
global NmsgS
set file "/.nnewsconfig"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
set stringa1 $file
set risultato [ file isfile $stringa1]
if {$risultato == "0"} {
set stringa1 "Configurare il proprio Account"
tk_messageBox -message $stringa1
return
 }
set listang ""
set listang1 ""
set file "/.nnewgroups"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
set miofile  [open $file "r"]
while {![eof $miofile]} {
set stringa1 $miofile
gets $stringa1 risultato
if {$risultato != ""} {
set stringa1 $risultato
set risultato [string trim $stringa1]
lappend listang $risultato
 }
 }
close $miofile
set stringa1 $Server
set opzione "119"
set Meo 1; global Meosock; global AmedeoSocket; set AmedeoSocket [socket $stringa1 $opzione];fconfigure $AmedeoSocket -blocking false; fconfigure $AmedeoSocket -buffering none
set stringa1 "#tmpn.in"
set Meosock [open $stringa1 "w+"]
global trasmissione
global finetrasmissione
fileevent $AmedeoSocket readable {
global Meosock
gets $AmedeoSocket line
set trasmissione $line
puts $Meosock $line
if [eof $AmedeoSocket] {
close $AmedeoSocket
close $Meosock
tk_messageBox -message "Trasmissione terminata"
update
set finetrasmissione "1"
}
}
vwait trasmissione
set nomeoggetto ".fine3"
update; Mostra_$nomeoggetto
update
set nomeoggetto ".fine3.etic2"
set stringa1 "Ricezione messaggi ..."
$nomeoggetto config -text $stringa1
set stringa1 $listang
foreach risultato $stringa1 {
if {$risultato != ""} {
set stringa1 $risultato
set risultato [string trim $stringa1]
set linea $risultato
set stringa1 $risultato
set stringa2 " "
set risultato [string first $stringa2 $stringa1]
set indice1 $risultato
set stringa1 $linea
set valore1 "0"
set valore2 $indice1
set risultato [string range $stringa1 $valore1 $valore2]
set stringa1 $risultato
set risultato [string trim $stringa1]
set ngpresent $risultato
if {$ngpresent == ""} {
set ngpresent $linea
 }
set stringa1 $linea
set valore1 $indice1
set valore2 "end"
set risultato [string range $stringa1 $valore1 $valore2]
set ultimomio $risultato
if {$ultimomio == ""} {
set ultimomio "0"
 }
set com "group "
set stringa1 $com
set stringa2 $ngpresent
set risultato $stringa1$stringa2
set stringa1 $risultato
puts $AmedeoSocket $stringa1
set ta "0"
while {$ta != "1"} {
vwait trasmissione
set stringa1 $trasmissione
set stringa2 "211 *"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
break
 }
set stringa2 "411 *"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
break
 }
 }
set stringa1 $trasmissione
set stringa2 " "
set risultato [string last $stringa2 $stringa1]
set indice1 $risultato
set stringa1 $trasmissione
set valore1 "0"
set valore2 $indice1
set risultato [string range $stringa1 $valore1 $valore2]
set stringa1 $risultato
set risultato [string trimright $stringa1]
set trasmissione $risultato
set stringa1 $trasmissione
set stringa2 " "
set risultato [string last $stringa2 $stringa1]
set indice1 $risultato
set stringa1 $trasmissione
set valore1 $indice1
set valore2 "end"
set risultato [string range $stringa1 $valore1 $valore2]
set stringa1 $risultato
set risultato [string trim $stringa1]
set numeromail $risultato
set stringa $numeromail
set stringa2 "*group*"
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
set stringa1 "noop"
puts $AmedeoSocket $stringa1
continue
 }
set stringa1 $ngpresent
set stringa2 " "
set risultato $stringa1$stringa2
set stringa1 $risultato
set stringa2 $numeromail
set risultato $stringa1$stringa2
lappend listang1 $risultato
if {$ultimomio == "0"} {
set valore1 $numeromail
set valore2 $NmsgS
set risultato [expr $valore1 - $valore2]
set ultimomio $risultato
 }
set cont $ultimomio
if {$numeromail < "2"} {
set numeromail "1"
set cont "0"
 }
while {$numeromail != $cont} {
set com "article "
set stringa1 $com
set stringa2 $cont
set risultato $stringa1$stringa2
set stringa1 $risultato
puts $AmedeoSocket $stringa1
incr cont
vwait trasmissione
 }
set stringa1 "noop"
puts $AmedeoSocket $stringa1
 }
 }
vwait trasmissione
set nomeoggetto ".fine3.etic3"
set stringa1 "Chiusura collegamento ..."
$nomeoggetto config -text $stringa1
update
set stringa1 "quit"
puts $AmedeoSocket $stringa1
vwait finetrasmissione
update
set file "/.nnewgroups"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
set miofile  [open $file "w+"]
set stringa1 $listang1
foreach risultato $stringa1 {
set stringa1 $miofile
set stringa2 $risultato
puts $stringa1 $stringa2
 }
close $miofile
set nomeoggetto ".fine3"
destroy $nomeoggetto
update
set Lng ""
set Lmsg ""
set Lautore ""
set Loggetto ""
set nomeoggetto ".edit"
set valore1 "0.0"
set valore2 "end"
$nomeoggetto delete $valore1 $valore2
AprePacchetto
}
proc InviaMsg  {} {
global Server
global Mioindirizzo
global Destinatario
global Oggetto
global Lmsg
if {$Destinatario == ""} {
set stringa1 "Inserire il destinatario del msg."
tk_messageBox -message $stringa1
return
 }
if {$Oggetto == ""} {
set stringa1 "Inserire l'oggetto del msg."
tk_messageBox -message $stringa1
return
 }
set file "/.nnewsconfig"
set Amedeo 1;global env; set risultato $env(HOME)
set stringa1 $risultato
set stringa2 $file
set risultato $stringa1$stringa2
set file $risultato
set stringa1 $file
set risultato [ file isfile $stringa1]
if {$risultato == "0"} {
set stringa1 "Configurare il proprio Account"
tk_messageBox -message $stringa1
return
 }
set nomeoggetto ".fine2.edit"
set valore1 "0.0"
set valore2 "end"
set risultato [$nomeoggetto get $valore1 $valore2]
set Testomsg $risultato
set stringa1 $Server
set opzione "119"
set Meo 1; global Meosock; global AmedeoSocket; set AmedeoSocket [socket $stringa1 $opzione];fconfigure $AmedeoSocket -blocking false; fconfigure $AmedeoSocket -buffering none
set stringa1 "Log"
set Meosock [open $stringa1 "w+"]
global trasmissione
global finetrasmissione
fileevent $AmedeoSocket readable {
global Meosock
gets $AmedeoSocket line
set trasmissione $line
puts $Meosock $line
if [eof $AmedeoSocket] {
close $AmedeoSocket
close $Meosock
tk_messageBox -message "Trasmissione terminata"
update
set finetrasmissione "1"
}
}
vwait trasmissione
set stringa1 "post"
puts $AmedeoSocket $stringa1
vwait trasmissione
set nomeoggetto ".fine3"
update; Mostra_$nomeoggetto
update
set ng "Newsgroups: "
set stringa1 $ng
set stringa2 $Destinatario
set risultato $stringa1$stringa2
set stringa1 $risultato
puts $AmedeoSocket $stringa1
set mitt "From: "
set stringa1 $mitt
set stringa2 $Mioindirizzo
set risultato $stringa1$stringa2
set stringa1 $risultato
puts $AmedeoSocket $stringa1
set og "Subject: "
set stringa1 $og
set stringa2 $Oggetto
set risultato $stringa1$stringa2
set stringa1 $risultato
puts $AmedeoSocket $stringa1
set nomeoggetto ".fine3.etic2"
set stringa1 "Spedizione messaggio ..."
$nomeoggetto config -text $stringa1
set stringa1 "Re: *"
set stringa2 $Oggetto
set risultato [string match $stringa2 $stringa1]
if {$risultato == "1"} {
set ref "References: "
set stringa1 $ref
set stringa2 $Lmsg
set risultato $stringa1$stringa2
set stringa1 $risultato
puts $AmedeoSocket $stringa1
 }
set stringa1 "X-Newsreader: NidlNews v. 01"
puts $AmedeoSocket $stringa1
set stringa1 ""
puts $AmedeoSocket $stringa1
set stringa1 $Testomsg
puts $AmedeoSocket $stringa1
set stringa1 ""
puts $AmedeoSocket $stringa1
set stringa1 ""
puts $AmedeoSocket $stringa1
set stringa1 "\\_______ Via NidlNews 0.1 _______\n.\n"
puts $AmedeoSocket $stringa1
vwait trasmissione
set nomeoggetto ".fine3.etic3"
set stringa1 "Chiusura collegamento ..."
$nomeoggetto config -text $stringa1
update
set stringa1 "quit"
puts $AmedeoSocket $stringa1
vwait finetrasmissione
update
set nomeoggetto ".fine3"
destroy $nomeoggetto
update
set nomeoggetto ".fine2"
destroy $nomeoggetto
}
proc Uscita  {} {
destroy .
}
proc bgerror {msg} {
regsub "invalid command name" $msg "Comando non riconosciuto. Creare la procedura corrispondente al comando" msg
if [string match "*unreachable*" $msg] {set msg "Impossibile aprire il socket. Controllare di avere una connessione attiva. "}
tk_messageBox -title "Nidl c Amedeo de Longis: Attenzione Errore" -icon error -message $msg 
}
ProceduraPrincipale

#----------------------------------------------------------------
#Questo file e' stato generato da Nidl c 2000 Amedeo de Longis
#                     luponero@mclink.it
#----------------------------------------------------------------
