summaryrefslogtreecommitdiff
path: root/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs')
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/admin.funcs200
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/common.funcs338
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.funcs1303
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifman129
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifman2137
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg268
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg430
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg514
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifpoll19
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifpoll2107
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifreq120
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifreq268
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.rcnews79
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.sendifm174
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.sendifm215
-rw-r--r--Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.trnrc13
-rwxr-xr-xBuild/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.wheel54
-rw-r--r--Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/ifpatch101
18 files changed, 2659 insertions, 0 deletions
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/admin.funcs b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/admin.funcs
new file mode 100755
index 00000000000..27800dc876f
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/admin.funcs
@@ -0,0 +1,200 @@
+#!/bin/bash
+# $Id: admin.funcs,v 1.2 2001/01/15 22:20:11 tom Exp $
+#
+# ComeOn Point Functions! v0.9.2
+# - usate da vari altri moduli ComeOn Point...
+#
+# AUTHOR: Beppe (beppe.dem@nsm.it)
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+
+# Args: source_file, domain, nldir
+install_nodelist() {
+
+ NODELIST="$1"
+ FOR_DOMAIN="$2"
+ NODEDIR="$3"
+
+ dialog --backtitle "$TITLE" --infobox "Installo la nodelist '$NODELIST' per il domain $FOR_DOMAIN, attendere prego..." 0 0
+
+ cp "$NODELIST" $NODEDIR/$FOR_DOMAIN.ndl
+ chown fnet.uucp $NODEDIR/$FOR_DOMAIN.ndl
+
+ echo "y" | su -l fnet -c "ifindex" >/dev/null
+}
+
+# Args: source, dest
+add_alias() {
+
+ SOURCE=$1
+ DEST=$2
+ ALIASES=/etc/aliases
+ ENTRY="`grep $SOURCE: $ALIASES`"
+
+ dialog --backtitle "$TITLE" --infobox "Creo un alias per redirigere le mail per $SOURCE a $DEST ..." 0 0
+
+ if [ ! "$ENTRY" ]
+ then
+ echo "$SOURCE: $DEST" >>$ALIASES
+ else
+ OLDDEST="`echo $ENTRY | cut -f2 -d:`"
+ mkstemp alias
+ sed /"$SOURCE:"/s/"$OLDDEST"/" $DEST"/ $ALIASES >$tmp_alias
+ cat $tmp_alias >$ALIASES
+ rm $tmp_alias
+ fi
+ mkaliases >/dev/null
+}
+
+# Args: Areas_pathname, newsgroup, area_ftn, description [, expire_days]
+# Returns: 1 - innd not running
+# 2 - already existing newsgroup
+# 3 - already existing ftn_area
+create_newsgroup() {
+
+ AREAS="$1"
+ NEWSGROUP="$2"
+ AREA="$3"
+ DESCRIPTION="$4"
+ EXPIRE_DAYS="$5"
+
+ NEWSGROUPS=~news/newsgroups
+ EXPIRECTL=~news/expire.ctl
+
+ dialog --backtitle "$TITLE" --infobox "Creo il newsgroup $NEWSGROUP per contenere i messaggi dell'area $AREA..." 0 0
+
+ if [ ! "`ps ax | grep ~news/etc/innd`" ]
+ then
+ return 1
+ fi
+
+ if [ "`cut $NEWSGROUPS -f1 | cut -f1 -d\ | grep -x $NEWSGROUP`" ]
+ then
+ return 2
+ fi
+
+ if [ "`cut $AREAS -f1 | cut -f1 -d\ | grep -x $AREA`" ]
+ then
+ return 3
+ fi
+
+ su -l news -c "bin/ctlinnd newgroup $NEWSGROUP" >/dev/null
+ echo -e "$NEWSGROUP\t$DESCRIPTION" >> $NEWSGROUPS
+ echo -e "$AREA\t$NEWSGROUP\t`echo $NEWSGROUP | cut -f1 -d.`" >> $AREAS
+
+ if [ "$EXPIRE_DAYS" ]; then
+ echo "$NEWSGROUP:A:2:$EXPIRE_DAYS:$EXPIRE_DAYS" >> $EXPIRECTL
+ fi
+
+ chown news.news $NEWSGROUPS $EXPIRECTL
+ chmod 440 $EXPIRECTL
+ chown fnet.uucp $AREAS
+}
+
+# Returns: 0 if ok, 1 if (innd not running), 2 if (no that newsgroup)
+# Args: Areas_pathname, newsgroup
+rmgroup() {
+
+ AREAS=$1
+ NEWSGR=$2
+ NEWSGROUPS=~news/newsgroups
+ EXPIRE=~news/expire.ctl
+
+ dialog --backtitle "$TITLE" --infobox "Elimino il newsgroup $NEWSGR ed i messaggi in esso contenuti, attendere prego. Questa operazione potrebbe durare alcuni minuti." 0 0
+
+ if [ ! "`ps x | grep ~news/etc/innd`" ]
+ then
+ return 1
+ fi
+
+ if [ ! "`cut -f1 $NEWSGROUPS | cut -f1 -d\ | grep -x $NEWSGR`" ]
+ then
+ return 2
+ else
+
+# Updating newsgroups file
+ if [ -f $NEWSGROUPS ]
+ then
+ mkstemp groups
+ mv $NEWSGROUPS $NEWSGROUPS~
+ grep -v $NEWSGR $NEWSGROUPS~ >$tmp_groups
+ mv $tmp_groups $NEWSGROUPS
+ else
+ :> $NEWSGROUPS
+ fi
+ chown news.news $NEWSGROUPS
+
+# Updating Areas file
+ if [ -f $AREAS ]
+ then
+ mkstemp areas
+ mv $AREAS $AREAS~
+ grep -v $NEWSGR $AREAS~ >$tmp_areas
+ mv $tmp_areas $AREAS
+ else
+ :> $AREAS
+ fi
+ chown fnet.uucp $AREAS
+
+# Updating expire.ctl file
+ if [ -f $EXPIRE ]
+ then
+ mkstemp expire
+ mv $EXPIRE $EXPIRE~
+ grep -v "$NEWSGR:" $EXPIRE~ >$tmp_expire
+ mv $tmp_expire $EXPIRE
+ else
+ :> $EXPIRE
+ fi
+ chown news.news $EXPIRE
+ chmod 444 $EXPIRE
+# Remove pending articles
+ echo -e "\n$NEWSGR:A:0:0:0" >>$EXPIRE
+ su -l news -c "bin/news.daily" >/dev/null
+ mkstemp expire
+ grep -v $NEWSGR $EXPIRE >$tmp_expire
+ mv $tmp_expire $EXPIRE
+ chown news.news $EXPIRE
+ chmod 444 $EXPIRE
+
+# Updating active file
+ su -l news -c "bin/ctlinnd rmgroup $NEWSGR" >/dev/null
+ fi
+}
+
+# Args: newsgroups_wildmat, days_to_keep
+set_expire_time() {
+
+ NEWSGROUP="$1"
+ KEEPDAYS="$2"
+ EXPIRE=~news/expire.ctl
+
+ dialog --backtitle "$TITLE" --infobox "Imposto a $KEEPDAYS il numero di giorni di mantenimento dei messaggi del newsgroup $NEWSGROUP..." 0 0
+
+ if [ ! -f $EXPIRE ]
+ then
+ :> $EXPIRE
+
+ elif [ "`cut $EXPIRE -s -f1 -d: | grep -x $NEWSGROUP`" ]
+ then
+ mkstemp expire
+ grep -v "$NEWSGROUP:" $EXPIRE >$tmp_expire
+ mv $tmp_expire $EXPIRE
+ fi
+ echo -e "\n$NEWSGROUP:A:2:$KEEPDAYS:$KEEPDAYS" >>$EXPIRE
+ chown news.news $EXPIRE
+ chmod 444 $EXPIRE
+}
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/common.funcs b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/common.funcs
new file mode 100755
index 00000000000..04eca9a8400
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/common.funcs
@@ -0,0 +1,338 @@
+#
+# ComeOn Point Functions! v0.9.2
+# - usate da vari altri moduli ComeOn Point...
+#
+# AUTHOR: Beppe (beppe.dem@nsm.it)
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+
+save() {
+ if [ -f $1 ]
+ then
+ mv $1 $1~
+ fi
+}
+
+# Returns $PKG_TO_REMOVE
+find_incompatible_packages() {
+ dialog --backtitle "$TITLE" --infobox "Vediamo innanzitutto se c'e' qualche pacchetto di troppo ... ;-)" 0 0
+
+ PKG_TO_REMOVE=""
+ for i in sendmail smailcfg cnews
+ do
+ if [ -f /var/adm/packages/$i ]
+ then
+ PKG_TO_REMOVE="$PKG_TO_REMOVE $i"
+ fi
+ done
+}
+
+# Returns $PKG_TO_INSTALL
+find_necessary_packages() {
+ dialog --backtitle "$TITLE" --infobox "Controlliamo se manca qualche pacchetto..." 0 0
+
+ PKG_TO_INSTALL=""
+ for i in tcpip mailx inn
+ do
+ if [ ! -f /var/adm/packages/$i ]
+ then
+ PKG_TO_INSTALL="$PKG_TO_INSTALL $i"
+ fi
+ done
+}
+
+# Args: user, editor
+configure_trn() {
+ dialog --backtitle "$TITLE" --infobox "Configuro trn all'user $1..." 0 0
+
+ SHELL_USED="`basename \`cut /etc/passwd -f1,7 -d: | grep $1: | cut -f2 -d:\``"
+ USER_HOME="`cut /etc/passwd -f1,6 -d: | grep $1: | cut -f2 -d:`"
+ TRNRC="$USER_HOME/.trnrc"
+
+ case $SHELL_USED in
+ bash)
+ if [ -f $USER_HOME/.bash_profile ]
+ then
+ PROF=$USER_HOME/.bash_profile
+ else
+ PROF=$USER_HOME/.profile
+ fi;;
+ zsh)
+ PROF=$USER_HOME/.zprofile;;
+ *)
+ PROF=$USER_HOME/.profile;;
+ esac
+
+ if [ ! -f $PROF ]
+ then
+ :>$PROF
+ chown $1.mail $PROF
+ elif [ ! "`grep -x \". ~/.trnrc\" $PROF`" ]
+ then
+ echo -e "\n. ~/.trnrc" >>$PROF
+ fi
+
+ save $TRNRC
+
+ echo "EDITOR=\"$2\"" > $TRNRC
+ cat copi.trnrc >> $TRNRC
+ chown $1.mail $TRNRC
+}
+
+# Args: user, editor
+configure_elm() {
+ USER=$1
+ EDIT=$2
+
+ dialog --backtitle "$TITLE" --infobox "Configuro elm all'user $USER..." 0 0
+
+ USER_HOME="`cut /etc/passwd -f1,6 -d: | grep $USER: | cut -f2 -d:`"
+ DIRRC="$USER_HOME/.elm"
+ ELMRC="$DIRRC/elmrc"
+
+ mkdir -p $DIRRC -m 700
+ chown $USER.mail $USERHOME $DIRRC
+
+ save $ELMRC
+
+ cat <<EOF >$ELMRC
+#
+# .elm/elmrc - options file for the ELM mail system
+#
+# Generated by $PKTNAME for $USER
+#
+
+# For yes/no settings with ?, ON means yes, OFF means no
+
+# how to sort the alias list, "Name" by default
+### aliassortby = Name
+
+# name of editor to use for replies that have text
+alteditor = $EDIT
+
+# alternative addresses that I could receive mail from (usually a
+# forwarding mailbox) and don't want to have listed...
+### alternatives =
+
+# should the default be to delete messages we've marked for deletion?
+alwaysdelete = ON
+
+# should the default be to keep unread messages in the incoming mailbox?
+alwayskeep = ON
+
+# should the default be to store read messages to the "received" folder?
+alwaysstore = OFF
+
+# should we use the "->" rather than the inverse video bar?
+arrow = OFF
+
+# should the message disposition questions be displayed(ON) or
+# auto-answered(OFF) with the default answers when we resync or
+# change folders?
+ask = OFF
+
+# would you like to be asked for Carbon-Copies information each msg?
+askcc = OFF
+
+# attribution string for replies ('%s' is the author of original message)
+attribution = %s wrote:
+
+# automatically copy message being replied to into buffer?
+autocopy = ON
+
+# threshold for bouncing copies of remote uucp messages...
+# zero = disable function.
+### bounceback = 0
+
+# This is used to determine if the builtin pager should be used on some
+# messages even if you would usually use an external pager program.
+# There are two ways of determining whether the builtin pager should be
+# used. If you want any message that is shorter than "n" lines to use the
+# internal pager, set the parameter to "n". If you want the builtin
+# pager to be used if the message is "m" lines shorter than the number of
+# lines on your screen set the parameter to be "-m". Setting the
+# parameter to zero will result in the message always being sent through
+# your external pager.
+### builtinlines = -3
+
+# where to save calendar entries
+#calendar = /root/calendar
+
+# list of options that can be configured at the "o)ptions" screen
+configoptions = ^_cdefsopyv_am_un
+
+# Should elm always ask the user to confirm before it appends
+# messages to any existing file?
+# This is used for both folders in the user's mail directory
+# and ordinary files.
+confirmappend = OFF
+
+# Should elm always ask the user to confirm before it creates
+# any new files?
+# This is used for both folders in the user's mail directory
+# and ordinary files.
+confirmcreate = OFF
+
+# Should elm ask for confirmation before it appends a message
+# to an existing file that is not a folder in the user's Mail
+# directory?
+# This is used for ordinary files only and does not affect
+# folders in the user's mail directory.
+confirmfiles = OFF
+
+# Should elm ask for confirmation before it creates a new folder
+# in the user's Mail directory?
+# This is used only for folders in the user's mail directory and
+# does not affect ordinary files.
+confirmfolders = OFF
+
+# save a copy of all outbound messages?
+copy = ON
+
+# name of editor for ~e command (when editor="builtin")
+easyeditor = $EDIT
+
+# what editor to use ("none" means simulate Berkeley Mail)
+editor = $EDIT
+
+# the character to use in the builtin editor for entering commands
+### escape = ~
+
+# save outbound messages by login name of sender/recipient even if the
+# associated folder doesn't already exist?
+### forcename = OFF
+
+# do we want to be able to mail out AT&T Mail Forms?
+### forms = OFF
+
+# The full user name for outbound mail
+### fullname = $PKTNAME User
+
+# should we keep folders from which all messages are deleted?
+### keepempty = OFF
+
+# are we running on an HP terminal and want HOME, PREV, NEXT, etc...?
+### keypad = OFF
+
+# local ".signature" file to append to appropriate messages...
+localsignature = ~/.signature
+
+# where to save my mail to, default directory is "Mail"
+maildir = ~/Mail
+
+# should we display the three-line 'mini' menu?
+menu = ON
+
+# would you like a copy of a message you send to an alias you are on?
+### metoo = OFF
+
+# when using the page commands (+ - <NEXT> <PREV>) change the current
+# message pointer...?
+### movepage = OFF
+
+# just show the names when expanding aliases?
+names = OFF
+
+# when messages are copied into the outbound buffer, don't include headers?
+noheader = ON
+
+# program to use for displaying messages ('builtin' is recommended)
+### pager = builtin+
+
+# start up by pointing to the first new message received, if possible?
+### pointnew = ON
+
+# list of delivery precedences allowed, or empty to allow anything
+# precedence may be followed by optional ":priority" specification
+### precedences =
+
+# prefix sequence for indenting included message text in outgoing messages...
+prefix = _:>_
+
+# how to print a message ('%s' is the filename)
+### print = /bin/cat %s | /usr/bin/lpr
+
+# prompt for a command after the external pager exits?
+### promptafter = ON
+
+# Value by which message count is incremented while reading a new mailbox.
+# Setting this value to a number larger than one will speed up the time it
+# takes to read a large mailbox when using a slow terminal.
+### readmsginc = 1
+
+# where to save received messages to, default file is "=received"
+receivedmail = =received
+
+# remote ".signature" file to append to appropriate messages...
+remotesignature = ~/.signature
+
+# emulate the mailx message increment mode (only increment after
+# something has been 'done' to a message, either saved or deleted,
+# as opposed to simply each time something is touched)?
+### resolve = ON
+
+# save messages, incoming and outbound, by login name of sender/recipient?
+savename = ON
+
+# where to save copies of outgoing mail to, default file is "=sent"
+sentmail = =sent
+
+# The shell to use for shell escapes
+shell = /bin/sh
+
+# do we want dashes above signatures? (News 2.11 compatibility and convention)
+### sigdashes = ON
+
+# time in seconds which Elm will wait after displaying a transient message
+# and before erasing it. Can be 0 or positive integer.
+### sleepmsg = 2
+
+# are we running on an HP terminal and want softkeys available too?
+# (this implies "keypad=ON" too)
+### softkeys = OFF
+
+# how to sort folders, "Reverse Sent" by default
+### sortby = Reverse-Sent
+
+# Set the main prompt timeout for resynching...
+### timeout = 600
+
+# display message title when displaying pages of message?
+titles = ON
+
+# where to place temporary files, default directory is "/tmp"
+### tmpdir = /tmp/
+
+# are we good at it? 0=beginner, 1=intermediate, 2+ = expert!
+userlevel = 0
+
+# would you like to use termcap/terminfo ti/te entries?
+usetite = ON
+
+# name of editor for ~v command (when editor="builtin")
+visualeditor = $EDIT
+
+# enable the weedout list to be read?
+### weed = ON
+
+# what headers I DON'T want to see, ever.
+weedout = "*end-of-user-headers*"
+
+EOF
+
+ chmod 600 $ELMRC
+ chown $USER.mail $ELMRC
+}
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.funcs b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.funcs
new file mode 100755
index 00000000000..7be4bdb4151
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.funcs
@@ -0,0 +1,1303 @@
+#!/bin/bash
+# $Id: copi.funcs,v 1.3 2001/01/15 22:24:26 tom Exp $
+# ComeOn Point Functions! v0.9.2
+# - usate da vari altri moduli ComeOn Point...
+#
+# AUTHOR: Beppe (beppe.dem@nsm.it)
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+
+HOST=`hostname`
+DOMAIN=`hostname -d`
+PKTNAME="ComeOn Point Installer!"
+COMEONDIR=/usr/lib/ComeOn
+
+AKASETUP=$COMEONDIR/point/.akasetup
+COPIUSER=$COMEONDIR/point/.copi.user
+EMSIFILE=$COMEONDIR/point/.emsi
+PNTSETUP=$COMEONDIR/point/.pntsetup
+
+mkstemp() {
+ eval 'tmp_'$1'=`tempfile 2>/dev/null` || tmp_'$1'=/tmp/'$1'$$'
+}
+
+# Args: [start_uid]
+# Returns: $FOUND_UID
+find_unused_uid() {
+
+ if [ $1 ]; then
+ FOUND_UID=$1
+ else
+ FOUND_UID=501
+ fi
+
+ while [ "`cut -f3 -d: /etc/passwd | grep -x $FOUND_UID`" ]
+ do
+ FOUND_UID=$[$FOUND_UID+1]
+ done
+}
+
+int2fido() {
+ _RETVAL="`echo $1 | cut -f3 -d. | cut -c2-`:\
+`echo $1 | cut -f2 -d. | cut -c2-`/\
+`echo $1 | cut -f1 -d. | cut -c2-`"
+}
+int2fidonet() {
+ _RETVAL="`echo $1 | cut -f3 -d. | cut -c2-`:\
+`echo $1 | cut -f2 -d. | cut -c2-`/\
+`echo $1 | cut -f1 -d. | cut -c2-`@\
+`echo $1 | cut -f4- -d.`"
+}
+fido2int() {
+ _RETVAL="f\
+`echo $1 | cut -f2 -d '/'`.n\
+`echo $1 | cut -f1 -d '/' | cut -f2 -d:`.z\
+`echo $1 | cut -f1 -d '/' | cut -f1 -d:`"
+}
+fidonet2int() {
+ _RETVAL="f\
+`echo $1 | cut -f2 -d/ | cut -f1 -d@`.n\
+`echo $1 | cut -f1 -d/ | cut -f2 -d:`.z\
+`echo $1 | cut -f1 -d/ | cut -f1 -d:`.\
+`echo $1 | cut -f2 -d@`"
+}
+fidonetpoint2int() {
+ _RETVAL="p\
+`echo $1 | cut -f2 -d. | cut -f1 -d@`.f\
+`echo $1 | cut -f2 -d/ | cut -f1 -d.`.n\
+`echo $1 | cut -f2 -d: | cut -f1 -d/`.z\
+`echo $1 | cut -f1 -d/ | cut -f1 -d:`.\
+`echo $1 | cut -f2 -d@`.org"
+}
+
+# Parameters: fqdn
+configure_loopback() {
+ dialog --backtitle "$TITLE" --infobox "Configuro la rete (in modo loopback)..." 0 0
+
+ FQDN=$1
+ HOST=`echo $FQDN | cut -f1 -d.`
+ DOMAIN=`echo $FQDN | cut -f2- -d.`
+
+ save /etc/hostname
+ echo $FQDN >/etc/HOSTNAME
+ export HOSTNAME=$FQDN
+ hostname $HOST
+
+ save /etc/rc.d/rc.inet1
+ cat <<EOF >/etc/rc.d/rc.inet1
+#! /bin/sh
+#
+# rc.inet1 This shell script boots up the base INET system.
+
+# Attach the loopback device.
+/sbin/ifconfig lo 127.0.0.1
+/sbin/route add -net 127.0.0.0
+
+# End of rc.inet1
+EOF
+ chmod 755 /etc/rc.d/rc.inet1
+
+
+ save /etc/networks
+ cat <<EOF >/etc/networks
+#
+# networks This file describes a number of netname-to-address
+# mappings for the TCP/IP subsystem. It is mostly
+# used at boot time, when no name servers are running.
+#
+
+loopback 127.0.0.0
+
+# End of networks.
+EOF
+ chmod 644 /etc/networks
+
+
+ save /etc/hosts
+ cat <<EOF >/etc/hosts
+#
+# hosts This file describes a number of hostname-to-address
+# mappings for the TCP/IP subsystem. It is mostly
+# used at boot time, when no name servers are running.
+# On small systems, this file can be used instead of a
+# "named" name server. Just add the names, addresses
+# and any aliases to this file...
+#
+# By the way, Arnt Gulbrandsen <agulbra@nvg.unit.no> says that 127.0.0.1
+# should NEVER be named with the name of the machine. It causes problems
+# for some (stupid) programs, irc and reputedly talk. :^)
+#
+# But we (ComeOn Linux!) says that this is not valid for you, because
+# you resulted to have not a network at the installation time.
+
+# For loopbacking.
+127.0.0.1 localhost $FQDN $HOST
+
+# End of hosts.
+EOF
+ chmod 644 /etc/hosts
+
+ save /etc/resolv.conf
+ echo domain $DOMAIN >/etc/resolv.conf
+ chmod 644 /etc/resolv.conf
+
+ save /etc/host.conf
+ cat <<EOF >/etc/host.conf
+order hosts,bind
+multi on
+EOF
+ chmod 644 /etc/host.conf
+
+ /etc/rc.d/rc.inet1
+}
+
+# Private function, adds an user to a group. Args: user, group
+add_to_group() {
+
+ if [ ! "`groups \"$1\" | grep \" $2 \"`" ]
+ then
+ USERS="`grep \"$2:\" /etc/group | cut -s -f4 -d:`"
+
+ mkstemp group
+ if [ "$USERS" ]; then
+ sed "/$2:/s/:$USERS/:$USERS,$1/" /etc/group >$tmp_group
+ else
+ sed "/$2:/s/:/:$1/3" /etc/group >$tmp_group
+ fi
+
+ save /etc/group
+ mv $tmp_group /etc/group
+ fi
+}
+
+# Arguments: user, fullname
+add_postmaster() {
+ dialog --backtitle "$TITLE" --infobox "Creo l'user principale e/o ne adatto le informazioni..." 0 0
+
+ USER="$1"
+ NAME="$2"
+ HOMEDIR="/home/$USER"
+
+# echo "$USER" >$COPIUSER # you've to do this in any other location
+ ENTRY="`cut /etc/passwd -s -f1,2,5 -d: | grep $USER:`"
+ if [ "$ENTRY" ]
+ then
+ OLDNAME="`echo $ENTRY | cut -f3 -d:`"
+ PASW="`echo $ENTRY | cut -f2 -d:`"
+ if [ "$OLDNAME" != "$NAME" ]
+ then
+ mkstemp passwd
+ sed "/$USER:$PASW:/s/:$OLDNAME:/:$NAME:/" /etc/passwd >$tmp_passwd
+ save /etc/passwd
+ mv $tmp_passwd /etc/passwd
+ fi
+
+ add_to_group "$USER" mail
+ else
+ if [ -f /bin/bash ]; then USERSHELL=/bin/bash; else USERSHELL=""; fi
+ find_unused_uid
+ echo "$USER:*:$FOUND_UID:12:$NAME:$HOMEDIR:$USERSHELL" >>/etc/passwd
+ mkdir -p $HOMEDIR -m 755
+ chown $USER.mail $HOMEDIR
+ fi
+}
+
+comment_nntp_in_inetdconf() {
+ dialog --backtitle "$TITLE" --infobox "Commento la riga 'nntp' in /etc/inetd.conf..." 0 0
+
+ mkstemp inetd
+ sed "/in.nntpd/s/nntp/#&/" /etc/inetd.conf >$tmp_inetd
+ save /etc/inetd.conf
+ mv $tmp_inetd /etc/inetd.conf
+ killall -1 inetd
+}
+
+# Args: organization
+set_organization() {
+ dialog --backtitle "$TITLE" --infobox "Imposto l' origin..." 0 0
+
+ ORGANIZATION=/etc/organization
+ save $ORGANIZATION
+
+ NEW_ORGANIZATION="$1"
+ echo "$NEW_ORGANIZATION" >$ORGANIZATION
+}
+
+create_innconf_newsfeeds_distrib() {
+ dialog --backtitle "$TITLE" --infobox "Creo i files di configurazione principali di InterNet News (inn)..." 0 0
+
+# File: inn.conf
+ INNCONF=~news/inn.conf
+ save $INNCONF
+
+ cat <<EOF >$INNCONF
+## $Revision: 1.3 $
+## inn.conf -- inn configuration data
+## Format:
+## <parameter>:<whitespace><value>
+## Used by various programs and libinn. The following parameters are defined:
+## domain Local domain, without leading period.
+## fromhost What to put in the From line; default is FQDN
+## of the local host.
+## moderatormailer Where to mail moderated postings, if not found
+## in the moderators file; see moderators(5).
+## pathhost What to put in the Path and Xref headers; default
+## is FQDN of the local host.
+## organization If $ORGANIZATION doesn't exist. What to put in
+## the Organization header if blank.
+## server If $NNTPSERVER doesn't exist. Local NNTP server
+## host to connect to.
+##
+
+server: $HOST.$DOMAIN
+domain: $DOMAIN
+pathhost: $HOST
+EOF
+
+ chmod 444 $INNCONF
+ chown news.news $INNCONF
+
+
+# File: newsfeeds
+ NEWSFEEDS=~news/newsfeeds
+ save $NEWSFEEDS
+
+ echo -e "ME:*::\n" >$NEWSFEEDS
+
+ IAKA=1
+ OK=1
+ while [ "$OK" != 0 ]
+ do
+ AKA="`cut $AKASETUP -f$IAKA -d:`"
+ if [ ! "$AKA" ]
+ then
+ OK=0
+ else
+ if [ $IAKA != 1 ]
+ then
+ TMPAKA="`echo $AKA | cut -f-4 -d.`"
+ SENDCRON="$SENDCRON $TMPAKA"
+ echo -n "$TMPAKA/" >>$NEWSFEEDS
+ fi
+ TMPAKA="`echo $AKA | cut -f1-2 -d.`"
+ if [ $IAKA = 1 ]; then
+ SENDCRON="$SENDCRON $TMPAKA"
+ fi
+ echo -e "$TMPAKA\\" >>$NEWSFEEDS
+ echo -e "\t:!*,`echo $AKA | cut -f4 -d.`.*\\" >>$NEWSFEEDS
+ echo -e "\t:Tf,Wfb,B4096/1024:\n" >>$NEWSFEEDS
+ fi
+ IAKA=$[$IAKA+1]
+ done
+
+ chmod 444 $NEWSFEEDS
+ chown news.news $NEWSFEEDS
+
+
+# File: distrib.pats
+ DISTRIB=~news/distrib.pats
+ save $DISTRIB
+
+ IAKA=1
+ OK=1
+ while [ "$OK" != 0 ]; do
+ AKA="`cut $AKASETUP -f$IAKA -d:`"
+ IAKA=$[$IAKA+1]
+ if [ "$AKA" = "" ]; then
+ OK=0
+ else
+ DOM="`echo $AKA | cut -f4 -d.`"
+ echo "10:$DOM.*:$DOM" >>$DISTRIB
+ fi
+ done
+
+ chmod 444 $DISTRIB
+ chown news.news $DISTRIB
+}
+
+# Args: num_of_days
+create_expirectl() {
+ dialog --backtitle "$TITLE" --infobox "Imposto il periodo di transito dei messaggi..." 0 0
+
+ EXPIRECTL=~news/expire.ctl
+ save $EXPIRECTL
+
+ EXPIRE_DAYS=$1
+
+ echo -e "/remember/:14\n\n*:A:2:$EXPIRE_DAYS:$EXPIRE_DAYS" >$EXPIRECTL
+
+ chmod 440 $EXPIRECTL
+ chown news.news $EXPIRECTL
+}
+
+create_nnrpaccess() {
+ dialog --backtitle "$TITLE" --infobox "Rendo accessibili le news in lettura..." 0 0
+
+ NNRPACCESS=~news/nnrp.access
+ save $NNRPACCESS
+
+ cat <<EOF >$NNRPACCESS
+## $Revision: 1.3 $
+## nnrp.access - access file for on-campus NNTP sites
+## Format:
+## <host>:<perm>:<user>:<pass>:<groups>
+## Connecting host must be found in this file; the last match found is
+## used, so put defaults first.
+## <host> Wildcard name or IP address
+## <perm> R to read; P to post
+## <user> Username for authentication before posting
+## <pass> Password, for same reason
+## <groups> Newsgroup patterns that can be read or not read
+## To disable posting put a space in the <user> and <pass> fields, since
+## there is no way for client to enter one.
+##
+## Default is no access, no way to authentication, and no groups.
+# *:: -no- : -no- :!*
+## Foo, Incorporated, hosts have no password, can read anything.
+# *.foo.com:Read Post:::*
+
+*:: -no- : -no- :!*
+localhost.$DOMAIN:Read Post:::*
+$HOST.$DOMAIN:Read Post:::*
+
+EOF
+
+ chmod 440 $NNRPACCESS
+ chown news.news $NNRPACCESS
+}
+
+create_hostsnntp() {
+ dialog --backtitle "$TITLE" --infobox "Rendo accessibili le news in scrittura..." 0 0
+
+ HOSTSNNTP=~news/hosts.nntp
+ save $HOSTSNNTP
+
+ cat <<EOF >$HOSTSNNTP
+## $Revision: 1.3 $
+## hosts.nntp - names and addresses that feed us news
+## Format
+## <host>:
+## <host>:<password>
+## <host> can be a name or IP address; no wildcards. Any hosts not
+## listed here are handed off to nnrpd.
+
+$HOST.$DOMAIN:
+
+EOF
+
+ chmod 440 $HOSTSNNTP
+ chown news.news $HOSTSNNTP
+}
+
+create_dirs_and_files() {
+
+ CURMASK=`umask`
+ . ./copi.wheel
+ pushd /var/log >/dev/null
+ mkdir -p news -m 755; chown news.news news
+ cd /var/log/news; mkdir -p OLD -m 755; chown news.news OLD
+ cd /var/spool; mkdir -p news -m 775; chown news.news news
+ cd /var/spool/news; umask 02
+ mkdir -p out.going control junk in.coming
+ chown news.news out.going control junk in.coming
+ cd in.coming; mkdir -p bad tmp; chown news.news bad tmp; umask $CURMASK
+ ln -sf ~news /usr/local/lib/
+ ln -sf ~news/inews /usr/bin/
+ chmod 1777 /var/tmp
+
+ cd /var/spool
+ mkdir -p uucppublic
+ chown uucp.uucp uucppublic
+ chmod 1777 uucppublic
+
+ cd ~news
+ touch history history.dir history.pag errlog log
+ chown news.news history* log errlog
+ chmod 664 history* log errlog
+
+ save active
+ echo "control 0000000000 0000000001 y" > active
+ echo "junk 0000000000 0000000001 y" >> active
+ chown news.news active
+
+ save active.times
+ echo "control 814573260 usenet" > active.times
+ echo "junk 814573260 usenet" >> active.times
+ chown news.news active.times
+
+ save newsgroups
+ :>newsgroups
+ chown news.news newsgroups
+
+ popd >/dev/null
+}
+
+install_rcnews() {
+ dialog --backtitle "$TITLE" --infobox "Avvio l'InterNet News daemon (innd) e l'installo negli script di boot, attendere... attenzione che e' probabile che in questa fase non sia possibile entrare da un'altra VC come root." 0 0
+
+ RCLOCAL=/etc/rc.d/rc.local
+ RCNEWS=~news/etc/rc.news
+ RCLINE="`grep $RCNEWS $RCLOCAL`"
+
+ if [ ! "$RCLINE" -o `echo $RCLINE | cut -c1` = '#' ]
+ then
+ save $RCLOCAL
+ echo -e "\n$RCNEWS" >>$RCLOCAL
+ fi
+
+ cp copi.rcnews $RCNEWS
+ chmod 550 $RCNEWS
+ chown news.news $RCNEWS
+
+ if [ -f ~news/innd/innd.pid ]; then
+ su -l news -c "bin/ctlinnd shutdown x" >/dev/null
+ sleep 2 # wait for server to shutdown
+ fi
+
+ killall innd 2>/dev/null # make sure it's gone down
+ $RCNEWS
+}
+
+install_crontab_news() {
+ dialog --backtitle "$TITLE" --infobox "Imposto la crontab di news per l'automantenimento del sistema (cancellazione giornaliera dei messaggi vecchi et similia)..." 0 0
+
+
+ if [ -f $COPIUSER ]; then
+ POSTMST="`cat $COPIUSER`"
+ else
+ POSTMST="root"
+ fi
+
+ NEWSHOME=~news
+ save /var/spool/cron/crontabs/news
+ cat <<EOF | crontab - -u news
+#-------------------------------------------------------------------------------
+# /var/spool/cron/crontabs/news
+SHELL=/bin/sh
+#
+MAILTO=$POSTMST
+#
+#===============================================================================
+#
+# inn-1.4 (Inter Net News)
+#
+#===============================================================================
+#
+#-------------------------------------------------------------------------------
+# Daily housekeeping ... expires news and other things ...
+#-------------------------------------------------------------------------------
+#
+51 16 * * * $NEWSHOME/bin/news.daily < /dev/null
+#
+#-------------------------------------------------------------------------------
+# offer spooled news - that was spooled into the incoming directory when the
+# innd server wasn't available - again to the innd server.
+#-------------------------------------------------------------------------------
+#
+18 * * * * $NEWSHOME/rnews -U
+#
+#-------------------------------------------------------------------------------
+# send news batches to your fidonet(-like) news feeds
+#-------------------------------------------------------------------------------
+#
+49 16 * * * $NEWSHOME/send-ifmail$SENDCRON
+#
+#-------------------------------------------------------------------------------
+#
+EOF
+
+ echo $NEWSHOME/send-ifmail$SENDCRON >/etc/point.ifsend
+}
+
+# Private func
+# Args: dir_with_sources, bindir, cfgdir, logdir, version
+copi.ifmCfg() {
+
+ SRCDIR="$1"
+ BINDIR="$2"
+ CFGDIR="$3"
+ LOGDIR="$4"
+ VERSION="$5"
+ SOURCE="$SRCDIR/CONFIG"
+ CONFIGFILE="$CFGDIR/config"
+
+ cat <<EOF >$SOURCE
+# Compile-time configuration for ifmail FidoNet mailer and gateway
+COPYRIGHT = "Eugene G. Crosser, 1993-1995"
+VERSION = "$VERSION"
+
+# Main configuration file. This default may be overwritten by -I key.
+CONFIGFILE = $CONFIGFILE
+
+# Debug messages turned on by -x key are written here.
+# Some error messages may occationally appear here too.
+# This may be changed in the 'config' file.
+DEBUGFILE = "$LOGDIR/ifdebug"
+
+# Procession log. Usually gets several lines for each invocation.
+# Also look for error diagnostics here. If HAS_SYSLOG defined,
+# only stdout and stderr from the packers and unpackers go to this
+# file, while actual logging is done via syslog() calls.
+# This may be changed in the 'config' file.
+LOGFILE = "$LOGDIR/iflog"
+
+# Use syslog() facility codes for mail gate, news gate and ifcico.
+# Define -DHAS_SYSLOG (see below)
+#MAILLOG = LOG_MAIL
+MAILLOG = LOG_LOCAL0
+#NEWSLOG = LOG_NEWS
+NEWSLOG = LOG_LOCAL0
+#CICOLOG = LOG_UUCP
+CICOLOG = LOG_LOCAL0
+
+# Directory where UUCP lock files reside.
+#LOCKDIR = "/var/lock"
+LOCKDIR = "/var/spool/uucp"
+
+# Directory from which file requests are resolved.
+# This may be changed from the 'config' file.
+#PUBDIR = "/home/ftp/pub"
+PUBDIR = "/var/spool/uucppublic"
+
+# Compile-time system-dependant options.
+
+# If you specify "-DHAS_NDBM_H", ndbm calls will be used instead
+# of dbm ones, and the feature will be activated of Cnews log processing
+# to add entries to SEEN-BY if echo message is exported to several FTN
+# nodes by Cnews mechanism. This works with INN too.
+
+# If you specify "-DHAS_STATFS" or "-DHAS_STATVFS", statfs() (or statvfs()
+# respectivly) call will be used to check available disk space. For statfs()
+# call, you must also specify which .h file to use: "-DSTATFS_IN_VFS_H" or
+# "-DSTATFS_IN_STATFS_H" or "-DSTATFS_IN_STATVFS_H" or "-DSTATFS_IN_MOUNT_H".
+# For statvfs() call, statvfs.h is included.
+
+# define -DSCO_STYLE_STATFS if your statfs() call requires 4 arguments.
+
+# If you specify "-DHAS_SETSID", setsid() call is used to detach from the
+# control terminal. Otherwise setpgrp() call is used, and in this case you
+# may specify "-DBSD_SETPGRP" to use BSD-style call. Used in ifcico only.
+
+# If you specify "-DDONT_HAVE_TM_GMTOFF", timezone offset will be calculated
+# from the difference between the results of localtime() and gmtime() calls
+# instead of using tm_gmtoff field of struct tm.
+
+# If you specify "-DDONT_HAVE_GETOPT", local definitions for getopt will
+# be used (but not the function itself)
+
+# For ifcico, you must specify -DHAS_TERMIOS_H (preffered), -DHAS_TERMIO_H
+# or -DHAS_SGTTY_H to use POSIX-y, SysV-ish of BSD-ish terminal control.
+
+# in SVR4 you should specify -DHAS_DIAL (and maybe -DHAS_DIAL_H) to use
+# dial() library function instead of regular open(). Lock files are
+# not used in this case.
+
+# for uucp lock files, you must specify either -DASCII_LOCKFILES or
+# -DBINARY_LOCKFILES
+
+# define -DHAS_FSYNC if there is a fsync() system call (to update .flo
+# files)
+
+# define -DPARANOID if you want iftoss to deny packets with wrong password.
+
+# define -DRELAXED if you want iftoss to accept packets that are not
+# addressed to your node.
+
+# define -DFORCEINTL if you want ifmail to create ^aINTL even if this is
+# not an inter-zone netmail.
+
+# define -DNEED_UUCPFROM if your MTA needs a uucp "From" line in mail.
+
+# define -DHAS_TCP if you want ifmail to be able to originate outgoing
+# connections over TCP/IP (socket library needed)
+
+# define -DHAS_TERM if you want ifmail to be able to originate outgoing
+# connections over TERM (TCP "extention", client.a needed)
+
+# define -DHAS_REGEX_H or -DHAS_LIBGEN_H if you have either of these
+# header files for regular expression handlers.
+
+# define -DHAS_SYSLOG to use syslog() instead of logging to files.
+# Files are necessary anyway, external programs' stdout and stderr
+# are redirected there.
+
+# define -DNEED_BSY if you want ifpack and ifcico to create .bsy
+# files preventing simultaneous processing of the same node.
+
+# define -DNEED_FORK if your system is uncapable of getting rid of the
+# control terminal unless you are running not as a group leader.
+
+# define -DREGEX_NEED_CARET if your re_comp/re_exec require that the
+# mask starts with a '^' to match the beginning of the string.
+
+# as of June 1994, FreeBSD has a nasty bug in the kernel lseek() code:
+# if you make lseek() to a point before the start of the file, it
+# succeeds and the writing point becomes negative. Fortunately,
+# subsequent write()s fail :-). To overwork this, define
+# -DNEGATIVE_SEEK_BUG, this will add an extra fseek() to restore
+# zero writing point where necessary.
+
+# define -DNEED_TRAP if you want debugging information when the programs
+# are aborted with segmentation fault etc. Currently tested and works
+# only with Linux, and only with newer kernels (1.1.20+)
+
+# define -DSLAVE_SENDS_NAK_TOO if you have problems answering incoming
+# EMSI sessions originated by FrontDoor. FrontDoor does not follow
+# EMSI specifications when originating calls, this is a workaround.
+
+# define -DDONT_HAVE_DIRENT if there is no working opendir()/readdir()
+# etc. in your libc. You will aso need to add "dirent.o" to the NEEDED
+# (see below).
+
+# Linux:
+OPTS = -DHAS_STATFS -DSTATFS_IN_VFS_H -DHAS_SETSID -DHAS_NDBM_H \\
+ -DDONT_HAVE_TM_GMTOFF -DHAS_TERMIOS_H -DASCII_LOCKFILES \\
+ -DHAS_FSYNC -DHAS_IOCTL_H -DHAS_REGEX_H -DHAS_TCP \\
+ -DFORCEINTL -DHAS_SYSLOG -DNEED_UUCPFROM -DNEED_BSY \\
+ -DREGEX_NEED_CARET -DNEED_TRAP -DSLAVE_SENDS_NAK_TOO \\
+ -DNEED_FORK -DLESS_RFC_KLUDGES
+
+# 386BSD:
+#OPTS = -DHAS_STATFS -DSTATFS_IN_MOUNT_H -DHAS_SETSID -DHAS_NDBM_H \\
+ -DHAS_TERMIOS_H -DASCII_LOCKFILES -DHAS_FSYNC -DHAS_IOCTL_H \\
+ -DHAS_REGEX_H -DHAS_TCP -DHAS_SYSLOG -DNEED_UUCPFROM \\
+ -DNEED_BSY -DNEED_FORK -DNEGATIVE_SEEK_BUG \\
+ -DREGEX_NEED_CARET
+
+# SVR4:
+#OPTS = -DHAS_STATVFS -DDONT_HAVE_TM_GMTOFF -DHAS_SETSID -DHAS_NDBM_H \\
+ -DHAS_TERMIOS_H -DHAS_DIAL -DHAS_DIAL_H -DASCII_LOCKFILES \\
+ -DHAS_FSYNC -DHAS_IOCTL_H -DHAS_LIBGEN_H -DHAS_TCP \\
+ -DHAS_SYSLOG -DREGEX_NEED_CARET
+# SunOS:
+#OPTS = -DHAS_STATFS -DSTATFS_IN_VFS_H -DHAS_SETSID -DHAS_NDBM_H \\
+ -DDONT_HAVE_GETOPT -DHAS_TERMIOS_H -DASCII_LOCKFILES \\
+ -DHAS_FSYNC -DHAS_TCP -DHAS_SYSLOG \\
+ -DREGEX_NEED_CARET
+
+# SCO Unix 3.2v4.2
+#OPTS = -DHAS_STATFS -DSTATFS_IN_STATFS_H -DSCO_STYLE_STATFS \\
+ -DHAS_TERMIOS_H -DDONT_HAVE_TM_GMTOFF -DDO_NEED_TIME \\
+ -DDONT_HAVE_GETOPT -DASCII_LOCKFILES -DHAS_IOCTL_H \\
+ -DHAS_TCP -DHAS_SYSLOG \\
+ -DREGEX_NEED_CARET
+
+# ISC Unix 3.2 v3.0
+#OPTS = -DHAS_STATFS -DSTATFS_IN_STATFS_H -DHAS_TERMIO_H \\
+ -DDONT_HAVE_TM_GMTOFF -DDONT_HAVE_GETOPT \\
+ -DASCII_LOCKFILES -DHAS_IOCTL_H -DSCO_STYLE_STATFS \\
+ -DUSE_POLL -DHAS_NET_ERRNO_H -DSHORT_PID_T \\
+ -DHAS_TCP -DHAS_SYSLOG \\
+ -DREGEX_NEED_CARET
+# On ISC, if you are suing gcc, you can run into a trouble with sscanf()
+# function. It appears that sscanf(string,"%d.%d",&int1,&int2) where
+# string is a constant segfaults unless you specify "-fwritable-strings"
+# to gcc. I would say that this is a bug in ISC libc. If nessecary,
+# add this to the defines above. If you have ISC version 4.0 or later,
+# you can add "-posix", remove "-DSHORT_PID_T" and specify "-DHAS_TERMIOS"
+# to get benefit of posix terminal control.
+
+# for make install, where to put binaries and what owner to set
+BINDIR = $BINDIR
+OWNER = fnet
+GROUP = uucp
+MODE = 0711
+SMODE = 4711
+
+INSTALL = install
+RANLIB = ranlib
+#RANLIB = touch
+SHELL = /bin/sh
+ECHO = echo -e
+CC = gcc
+YACC = bison -y
+#YACC = yacc
+LEX = flex
+#LEX = lex
+AWK = awk
+TAR = tar
+
+#CFLAGS = -g -Wall
+# Linux, 386BSD, SunOS:
+CFLAGS = -O2 -Wall -m486 -s
+# SVR4:
+#CFLAGS = -O -Xa
+
+LDFLAGS = -s
+
+# For LIBS, you may need to add "-lfl" if you are using flex 2.4.x
+# If you need TERM also add e.g. "/usr/src/term112/client.a"
+
+# Linux
+LIBS = -ldbm
+# SunOS:
+#LIBS =
+# 386BSD:
+#LIBS = -lgdbm -lgnuregex
+# SVR4
+#LIBS = -ldbm -lform -lnsl -lsocket -lc -L/usr/ucblib -lucb
+# SCO
+#LIBS = -ldbm -lsocket -lintl
+# ISC
+#LIBS = -lcposix -lmalloc -ldbm -linet -lPW
+
+INCLUDES = -I\${INCDIR}
+# ISC
+#INCLUDES = -I/usr/include/rpcsvc -I\${INCDIR}
+
+# What programs are absent at your system?
+#NEEDED = strcasestr.o strncasecmp.o strcasecmp.o rename.o mkdir.o usleep.o \\
+ regexpr.o
+# Linux
+NEEDED =
+# SVR4
+#NEEDED = regexpr.o
+# SCO
+#NEEDED = strcasestr.o strncasecmp.o strcasecmp.o usleep.o regexpr.o
+# SunOS and 386BSD
+#NEEDED = signal.o
+# ISC
+#NEEDED = usleep.o regexpr.o vsyslog.o
+EOF
+
+}
+
+# Args: package.tgz, bin_dir, cfg_dir, log_dir, version, where_to_put_src
+install_ifmail() {
+ dialog --backtitle "$TITLE" --infobox "Installo e compilo Ifmail..." 0 0
+
+ AKAPRI="`cut $AKASETUP -f1 -d:`"
+ int2fido $AKAPRI
+ AKAPRIFTN=$_RETVAL
+
+ if [ -f $COPIUSER ]
+ then
+ POST="`cat $COPIUSER`"
+ else
+ POST=root
+ fi
+
+ TGZ="$1"
+ BINDIR="$2"
+ CFGDIR="$3"
+ LOGDIR="$4"
+ VERSION="$5"
+ SRC="$6"
+
+###################################################
+## passwd e group
+####################################
+
+ if [ "`cut /etc/passwd -f1 -d: | grep -x fnet`" ]
+ then
+ mkstemp passwd
+ grep -v "fnet:" /etc/passwd >$tmp_passwd
+ save /etc/passwd
+ mv $tmp_passwd /etc/passwd
+ fi
+
+ find_unused_uid 92
+ echo "fnet:*:$FOUND_UID:14:Fidonet Gate:$BINDIR:" >>/etc/passwd
+
+
+####################################################
+#### dirs and files
+###################################
+ mkdir -p $CFGDIR $LOGDIR /var/spool/ifmail/{BAK,nl.d} $BINDIR/magic
+ chown fnet.uucp $BINDIR{,/magic} $CFGDIR $LOGDIR /var/spool/ifmail/{,BAK,nl.d}
+ touch $LOGDIR/{ifdebug,iflog,sysiflog,TheLog}
+ chown fnet.uucp $LOGDIR/{ifdebug,iflog,sysiflog,TheLog}
+
+##########################################################################
+#### COMPILAZIONE
+####################################
+
+ SRC="$SRC/`tar zxvf $TGZ -C $SRC | head -1`"
+# ora in $SRC c'e' il path completo dei source Ifmail
+
+ copi.ifmCfg $SRC $BINDIR $CFGDIR $LOGDIR $VERSION
+ patch -N -d $SRC <ifpatch 2>/dev/null
+ make clean -C $SRC
+ make -C $SRC
+##########################################################################
+#### INSTALLAZIONE
+####################################
+ make install -C $SRC
+}
+
+
+# Args: bin_dir, cfg_dir, log_dir, passwords
+# note: passwords are colon-separated (":")
+configure_ifmail() {
+ dialog --backtitle "$TITLE" --infobox "Configuro Ifmail..." 0 0
+
+ BINDIR=$1
+ CFGDIR=$2
+ LOGDIR=$3
+ PASSWDS=$4
+
+ SPD="` cut $EMSIFILE -f1`"
+ SYSNAME="` cut $EMSIFILE -f2`"
+ LOCATION="` cut $EMSIFILE -f3`"
+ COMPLETE_PHONE="` cut $EMSIFILE -f4`"
+ INTERCOUNTRYPREF="`cut $EMSIFILE -f5`"
+ LONG_DIST_PREFIX="`cut $EMSIFILE -f6`"
+ NODEFLAGS="` cut $EMSIFILE -f7`"
+ DIALSTRING="` cut $EMSIFILE -f8`"
+ SYSOP="` cut $EMSIFILE -f9`"
+
+ COUNTRYPREF="`echo $COMPLETE_PHONE | cut -f1 -d'-'`"
+ PREF="` echo $COMPLETE_PHONE | cut -f2 -d'-'`"
+ PHONE="` echo $COMPLETE_PHONE | cut -f3 -d'-'`"
+
+ FNETCFG=$CFGDIR/config
+ AREAS=$CFGDIR/Areas
+
+ POINTS="`cat $PNTSETUP`"
+ POST="`cat $COPIUSER`"
+ AKAPRI="`cut $AKASETUP -f1 -d:`"
+ int2fido "$AKAPRI"
+ AKAPRIFTN="$_RETVAL"
+
+#invece di "cp $SRC/misc/inn/send-ifmail ~news"
+#-----------------------------------------------------------------------------
+ cp copi.sendifm1 ~news/send-ifmail
+ cat <<EOF >>~news/send-ifmail
+-p"$BINDIR/ifnews %s" \\
+EOF
+ cat copi.sendifm2 >>~news/send-ifmail
+
+ chmod 550 ~news/send-ifmail
+ chown news.news ~news/send-ifmail
+
+#invece di "cp $SRC/misc/contrib/ifreq $BINDIR"
+#-----------------------------------------------------------------------------
+ cp copi.ifreq1 $BINDIR/ifreq
+ cat <<EOF >>$BINDIR/ifreq
+# ifcico-config-file:
+\$config = "$CFGDIR/config";
+
+# change this to the default node, where requests should go to.
+\$node = "$AKAPRIFTN";
+EOF
+ cat copi.ifreq2 >>$BINDIR/ifreq
+
+ chmod 755 $BINDIR/ifreq
+ chown fnet.uucp $BINDIR/ifreq
+
+#invece di "cp $SRC/misc/contrib/ifman $BINDIR"
+#-----------------------------------------------------------------------------
+ cp copi.ifman1 $BINDIR/ifman
+ cat <<EOF >>$BINDIR/ifman
+\$cfgfile="$CFGDIR/config"; # where the config is
+\$ifowner="fnet"; # who is the owner of the ifmail
+
+EOF
+ cat copi.ifman2 >>$BINDIR/ifman
+
+ chmod 755 $BINDIR/ifman
+ chown fnet.uucp $BINDIR/ifman
+
+#invece di "cp $SRC/misc/contrib/ifpoll $BINDIR"
+#-----------------------------------------------------------------------------
+ cp copi.ifpoll1 $BINDIR/ifpoll
+ cat <<EOF >>$BINDIR/ifpoll
+FIDOPATH=$BINDIR
+LOGPATH=$LOGDIR
+
+# sysop of fido stuff
+IFCICO_SYSOP=$POST
+
+# my boss node (default address to poll)
+NODE=$AKAPRI
+EOF
+ cat copi.ifpoll2 >> $BINDIR/ifpoll
+
+ chmod 755 $BINDIR/ifpoll
+ chown fnet.uucp $BINDIR/ifpoll
+
+
+#########################################################
+##### se in syslog.conf non c'e' "local0.*", lo aggiunge
+################################
+
+ SYSLOG="`grep \"local0.* \" /etc/syslog.conf`"
+ SYSCHECK_A="`echo \"$SYSLOG\" | cut -f1 | grep -x \"local0.*\"`"
+ SYSCHECK_B="`echo \"$SYSLOG\" | cut -f2- | grep $LOGDIR/sysiflog`"
+ MYSYSLOG="local0.*\t\t\t\t\t$LOGDIR/sysiflog"
+
+ if [ ! "$SYSCHECK_A" -o ! "$SYSCHECK_B" ]
+ then
+ echo -e "\n# For ifmail" >> /etc/syslog.conf
+ echo -e "$MYSYSLOG" >>/etc/syslog.conf
+ killall -1 syslogd
+ fi
+
+
+########################
+ save $AREAS
+ :> $AREAS
+ chown fnet.uucp $AREAS
+
+ save $FNETCFG
+ cat <<EOF >$FNETCFG
+# Configuration file for ifmail (ifgate+ifcico) package by Eugene Crosser
+# Compile-time default name of this file may be overridden by -I key.
+#
+# Lines with the first nonblank character '#' are comments.
+#
+# Log file name. Overrides compile-time default.
+logfile $LOGDIR/iflog
+
+# Debug file name. Overrides compile-time default.
+debugfile $LOGDIR/ifdebug
+
+# Debugging verbosity level (is overidden by -x key). Default is 0.
+# WARNING: if >0 your messages will go in /tmp/ifmail !!!!!!!!!!!!!!!!!!
+verbose 0
+
+# The first is the main address:
+EOF
+#----------------------------
+
+ AKA="any"
+ IAKA=0
+ while [ "$AKA" ]
+ do
+ IAKA=$[$IAKA+1]
+ AKA="`cut $AKASETUP -f$IAKA -d:`"
+ if [ "$AKA" ]
+ then
+ int2fidonet $AKA
+ AKAFTN="`echo $_RETVAL | cut -f1 -d.`"
+ echo "# aka for `echo $AKAFTN | cut -f2 -d '@'`" >> $FNETCFG
+
+ POINT="`echo $POINTS | cut -f$IAKA -d:`"
+
+ AKAFTN="`echo $AKAFTN | cut -f1 -d '@'`.$POINT@`echo $AKAFTN | cut -f2 -d '@'`"
+
+ echo "address $AKAFTN" >> $FNETCFG
+ fi
+ done
+
+#----------------------------
+ cat <<EOF >>$FNETCFG
+
+# Passwords for nodes. Not checked by iftoss (unless -DPARANOID specified
+# at compile-time), checked by ifcico.
+# Inserted into outgoing mail packets, EMSI and yoohoo packets.
+EOF
+#----------------------------
+
+ AKA="any"
+ IAKA=0
+ while [ "$AKA" ]
+ do
+ IAKA=$[$IAKA+1]
+ AKA="`cut $AKASETUP -f$IAKA -d:`"
+ if [ "$AKA" ]
+ then
+ int2fido $AKA
+ AKAFTN=$_RETVAL
+
+ PASSWD="`echo $PASSWDS | cut -f$IAKA -d:`"
+ if [ "$PASSWD" ]
+ then
+ echo "password $AKAFTN $PASSWD" >> $FNETCFG
+ fi
+ fi
+ done
+
+#----------------------------
+ cat <<EOF >>$FNETCFG
+
+# Include config extention file (here: file with real passwords).
+# Includes may be nested. If the nesting is cyclic, the program cycles too.
+# You are warned.
+# include $CFGDIR/passwds
+
+# System alias file - try to fetch ftn-style aliases from there.
+# If "from" address of a message from FidoNet matches _right_ side
+# of some entry in sysalias file, then the Reply-To: header is created
+# in the RFC message with the name part taken from the left side of the
+# sysalis entry and domain part taken from myfqdn (below). E.g., if a
+# fidonet message comes from "John Smith of 1:234/567.89@fidonet" and
+# there is an entry in the sysalias file:
+# "jsmith: John.Smith@p89.f567.n234.z1.fidonet.org"
+# and fqdn value is "pccross.msk.su", then the resulting message will
+# contain a line: "Reply-To: jsmith@pccross.msk.su".
+sysalias /etc/aliases
+
+# This host fully qualified domain name to add to the alias above
+myfqdn `hostname -f`
+
+# Directory for incoming packets/files:
+inbound /var/spool/ifmail/inb
+# Directories for "listed" and "protected" sessions
+listinbound /var/spool/ifmail/inb
+protinbound /var/spool/ifmail/inb
+
+# Directory for outgoing packets (default domain and zone):
+# other zones will be like "/var/spool/ifmail/outb.003",
+# other domains will be like "/var/spool/ifmail/<domain>.<zone>"
+outbound /var/spool/ifmail/outb
+
+# Directory from which the file requests are satisfied
+public /var/spool/uucppublic
+
+# Directory with executables to satisfy "magic" file requests
+# if requested a file present in this directory, it will be
+# executed and stdout sent to the remote system. It is dangerous!
+# You are warned.
+magic $BINDIR/magic
+
+# Primary nodelist (serves "outbound" directory and domain from the
+# first "address" statement). Name expanded with ".NNN" if neccessary.
+nodelist /var/spool/ifmail/nl.d/`cut $AKASETUP -f1 -d: | cut -f4 -d.`.ndl
+
+# Secondary nodelists and nodelists for other domains.
+# use directory name from the first "nodelist" statement.
+# filename originating address
+EOF
+#----------------------------
+
+ AKA="any"
+ IAKA=0
+ while [ "$AKA" ]
+ do
+ IAKA=$[$IAKA+1]
+ AKA="`cut $AKASETUP -f$IAKA -d:`"
+ if [ "$AKA" ]
+ then
+ int2fidonet $AKA
+ AKAFTN="`echo $_RETVAL | cut -f1 -d.`"
+ echo -e "nodelist `echo $AKAFTN | cut -f2 -d '@'`.ndl\t$AKAFTN" >> $FNETCFG
+ fi
+ done
+
+#----------------------------
+ cat <<EOF >>$FNETCFG
+
+# domain translations, just context substitution. Leading dot recommended.
+# May contain '@'-sign too. First matching used.
+# NOTE: If you specify at least one domtrans line, there will be _NO_
+# default for fidonet <--> fidonet.org. Don't forget to specify it
+# explicitly as a last line.
+# FTN side Internet side
+#domtrans f720.n335.z2.fidonet.org giuda.deis.unical.it
+#domtrans .fidonet .fidonet.org
+
+# Automatically updated alias database. If omitted or inaccessible,
+# ^aREPLYADDR and ^aREPLYTO kludges are generated in fido messages.
+database /var/spool/ifmail/ifdbm
+
+# Sequencer file (used to generate unique IDs)
+sequencer /var/spool/ifmail/seq
+
+# Areas file (format: "AREA newsgroup distribution")
+areas $CFGDIR/Areas
+
+# Bad groups prefixes - do not pass to fido if appear in Newsgroups header
+# This is NOT the same as "!news.group" in the cnews "sys" file.
+# badgroup relcom.ads.
+# badgroup relcom.commerce.
+
+# Maximum allowed number of groups in the Newsgroups header, article will
+# not be gated if exeeds. If zero or umitted - no limit.
+# maxgroup 5
+
+# Internet -> FidoNet (outgoing) character mapping table (a la mapchan)
+# outtab $BINDIR/outkoi8alt
+
+# FidoNet -> Internet (incoming) character mapping table
+# intab $BINDIR/outaltkoi8
+
+# Toss program, used by ifunpack
+iftoss $BINDIR/iftoss
+
+EOF
+
+ cat copi.ifmcfg2 >>$FNETCFG
+
+ if [ $[$[SPD] > $[19200]] = 1 ]; then
+ SPDLOCK="L38400"
+ elif [ $[$[SPD] > $[9600]] = 1 ]; then
+ SPDLOCK="L19200"
+ elif [ $[$[SPD] > $[2400]] = 1 ]; then
+ SPDLOCK="9600"
+ elif [ $[$[SPD] > $[1200]] = 1 ]; then
+ SPDLOCK="2400"
+ elif [ $[$[SPD] > $[300]] = 1 ]; then
+ SPDLOCK="1200"
+ else
+ SPDLOCK="300"
+ fi
+
+ echo "ModemPort modem:$SPDLOCK" >>$FNETCFG
+ cat copi.ifmcfg5 >>$FNETCFG
+
+ echo "PhoneTrans $COUNTRYPREF-$PREF- /" >>$FNETCFG
+ echo "PhoneTrans $COUNTRYPREF- / $LONG_DIST_PREFIX" >>$FNETCFG
+ echo "PhoneTrans / $INTERCOUNTRYPREF" >>$FNETCFG
+ echo "ModemReset ATZ\r" >>$FNETCFG
+ echo "ModemDial \d$DIALSTRING\T\r" >>$FNETCFG
+
+ cat copi.ifmcfg4 >>$FNETCFG
+
+ echo "Name $SYSNAME" >>$FNETCFG
+ echo "Location $LOCATION" >>$FNETCFG
+ echo "SysOp $SYSOP" >>$FNETCFG
+ echo "Phone $COUNTRYPREF-$PREF-$PHONE" >>$FNETCFG
+ echo "Speed $SPD" >>$FNETCFG
+ echo "Flags $NODEFLAGS" >>$FNETCFG
+
+ chown fnet.uucp $FNETCFG
+}
+
+# Args: cfg_dir
+configure_smail() {
+ dialog --backtitle "$TITLE" --infobox "Configuro Smail..." 0 0
+
+ USER="`cat $COPIUSER`"
+ FNETHOME=~fnet
+
+ SMAIL=$1
+ SMAILCONF=$SMAIL/config
+ ALIASES=$SMAIL/aliases
+ DIRECTORS=$SMAIL/directors
+ ROUTERS=$SMAIL/routers
+ TRANSPORTS=$SMAIL/transports
+ FTNPATHS=$SMAIL/ftnpaths
+
+# File: config
+ save $SMAILCONF
+
+ cat <<EOF >$SMAILCONF
+#
+# smail configuration for $HOST.$DOMAIN
+# (see smail(5) man page for details and other options)
+#
+hostnames=$HOST:$HOST.$DOMAIN
+domains=$DOMAIN
+postmaster=$USER
+smtp_banner="\$primary_name Linux Smail\$version #\$compile_num ready at \$date"
+spool_mode=0600
+received_field="Received: \\
+ \${if def:sender_host \\
+ {from \$sender_host by \$primary_name \\
+ \${if def:sender_proto: with \$sender_proto}\\
+ \n\t(Linux Smail\$version #\$compile_num) }\\
+ else{by \$primary_name \${if def:sender_proto:with \$sender_proto }\\
+ (Linux Smail\$version #\$compile_num)\n\t}}\\
+ id \$message_id; \$spool_date"
+trusted_users=root:uucp:daemon:fnet
+EOF
+
+
+# File: routers
+ save $ROUTERS
+
+ cat <<EOF >$ROUTERS
+ifmail: driver=pathalias,
+ transport=ifmail;
+
+ file=ftnpaths,
+ proto=lsearch,
+ domain=ftn:org
+EOF
+
+
+# File: transports
+ save $TRANSPORTS
+
+ cat <<EOF >$TRANSPORTS
+local: driver = appendfile,
+ return_path,
+ local,
+ from,
+ unix_from_hack;
+
+ file = /var/spool/mail/\${lc:user},
+ group = mail,
+ mode = 0660,
+ suffix = "\n",
+ append_as_user
+
+ifmail: driver=pipe,
+ from,
+ -received,
+ max_addrs=5,
+ max_chars=200;
+
+ pipe_as_sender,
+ cmd="$FNETHOME/ifmail -r\$host \$((\${strip:user})\$)"
+
+EOF
+
+
+# File: directors
+ save $DIRECTORS
+
+
+# File: aliases
+ for i in $ALIASES /etc/aliases /usr/lib/aliases
+ do
+ if [ ! -L $i -a -f $i ]
+ then
+ mv $i $i~
+ fi
+ done
+
+ USERNAME="`cut /etc/passwd -f1,5 -d: | grep $USER: | cut -f2 -d: | sed y/\" \"/./`"
+ echo "news: $USER" >> $ALIASES
+ echo "usenet: $USER" >> $ALIASES
+ echo "$USERNAME: $USER" >> $ALIASES
+
+ ln -sf $ALIASES /etc/
+ ln -sf $ALIASES /usr/lib/
+
+ cd $SMAIL # is this necessary?? E-mail me if you know,please
+ mkaliases >/dev/null
+
+# File: ftnpaths
+ save $FTNPATHS
+
+ OK=1
+ IAKA=1
+ while [ $OK != 0 ]; do
+ AKA="`cut $AKASETUP -f$IAKA -d:`"
+ IAKA=$[$IAKA+1]
+ if [ ! "$AKA" ]; then
+ OK=0
+ else
+ echo -e ".`echo $AKA | cut -f4 -d.`\t\t$AKA!%s" >>$FTNPATHS
+ fi
+ done
+
+
+# misc section
+
+ chmod 1775 /var/spool/mail
+ chgrp mail /var/spool/mail
+
+ cd $SMAIL
+ touch forward
+ /usr/lib/smail/mkdbm forward
+
+# reload sendmail
+ killall sendmail 2>/dev/null
+ /usr/sbin/sendmail -bd -q15m # if inetd handles smtp port, this will not load
+}
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifman1 b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifman1
new file mode 100755
index 00000000000..3e271a532e2
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifman1
@@ -0,0 +1,29 @@
+#! /usr/bin/perl
+#
+# This is a utility script to manipulate Fidonet-related issues
+# using Eugene Crosser's ifmail package
+#
+# Version 0.1
+#
+# (C) Michael Bravo and The Communication Tube, 1994
+#
+# You can do whatever you want with this script. I take no responsibility
+# whatsoever in anything related to this script. If you make some useful
+# additions to this, please think of sending them to me so I could partake
+# of your wisdom.
+#
+# This script was written to help attaching and requesting files from the
+# commandline, much like you do with Squish under DOS or OS/2. It is certainly
+# not perfect - I used it as an exercise in Perl. It also probably lacks
+# some other useful features, like ability to specify trunc/sent or kill/sent
+# attributes etc etc. If you really want this or some other features
+# implemented, write me at mbravo@tctube.spb.su or mbravo@octopus.spb.su
+# and I will try to do what I can.
+#
+# Note - files don't get copied to any spool dir, so if you move attached
+# files somewhere, they won't get sent.
+#
+# This script is supposed to read ifmail's config to determine where outbound
+# directory and logfile are. The only two parameters to modify in most cases
+# are below.
+
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifman2 b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifman2
new file mode 100755
index 00000000000..0b6dbb77ded
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifman2
@@ -0,0 +1,137 @@
+if ( getpwuid($<) ne $ifowner ) { print "You must be owner of ifmail\n"; exit 1; }
+
+if ( (@ARGV < 3) || $ARGV[0] eq "-?" || $ARGV[0] eq "-h" ) {
+ &usage;
+}
+
+$ARGV[0] =~ tr/A-Z/a-z/;
+$ARGV[3] =~ tr/A-Z/a-z/;
+
+&parsecfg;
+
+if ( $logfile ne "" ) {
+ open(LOG, ">>".$logfile) || die "Can't open logfile";
+}
+
+if (substr($ARGV[1], 0, 1) ne "/") {
+ $cwd=`pwd`;
+ chop $cwd;
+ $ARGV[1] = $cwd."/".$ARGV[1];
+}
+
+if ($ARGV[3] eq "" || $ARGV[3] eq "normal") {
+ $flavour = 'f';
+} elsif ($ARGV[3] eq "crash") {
+ $flavour = 'c';
+} elsif ($ARGV[3] eq "hold") {
+ $flavour = 'h';
+} else {
+ print "Unknown flavour, assuming normal\n";
+ $flavour = 'f';
+}
+
+if ($ARGV[0] eq "send") {
+ &attach($ARGV[1], $ARGV[2]);
+} elsif ($ARGV[0] eq "get") {
+ &request($ARGV[1], $ARGV[2]);
+} else {
+ print "Unknown command, try ifman -h\n";
+ exit 1;
+}
+
+close(LOG);
+
+exit 0;
+
+#######################################################################
+
+sub attach {
+ local($fspec, $address) = @_;
+
+ $floname = &resolve($address);
+
+ open(FLO, ">>".$outbound."/".$floname) || die "Can't open flo-file $outbound/$floname";
+ open(FIND, "find $fspec -print |") || die "Can't generate list of files";
+
+ if ( eof(FIND) ) {
+ print "No matching files, nothing to send\n";
+ exit 1;
+ }
+
+ while (<FIND>) {
+
+ chop;
+ $datestamp = `date \"+%D %T\"`;
+ chop $datestamp;
+ printf LOG "%s %s %s\n", $datestamp, $$, "ifman: sending $_ to $address";
+ printf FLO "%s\n", $_;
+ }
+
+ close(FLO);
+ close(FIND);
+}
+
+sub request {
+ local($fspec, $address) = @_;
+
+ $reqname = &resolve($address);
+
+ $reqname =~ s/\.[fch]lo/\.req/;
+
+ open(REQ, ">>".$outbound."/".$reqname) || die "Can't open req-file";
+
+ $datestamp = `date \"+%D %T\"`;
+ chop $datestamp;
+ printf LOG "%s %s %s\n", $datestamp, $$, "ifman: requesting $fspec from $address";
+ printf REQ "%s\n", $fspec;
+
+ close(REQ);
+}
+
+sub resolve {
+ local($addr) = @_;
+
+ if ( index($addr, ":") >=0 ) {
+ print "I cannot resolve addresses with zones!\n";
+ exit 1;
+ } elsif ( index($addr, "/") == -1 ) {
+ print "Not a valid address!\n";
+ exit 1;
+ }
+
+ ($net, $node, $point) = split(/\/|\./, $addr);
+
+ if ( defined $point ) {
+ $pointdir = sprintf("%04x%04x.pnt", $net, $node);
+ if ( ! -e $outbound."/".$pointdir ) {
+ mkdir ($outbound."/".$pointdir, 0755) || die "Can't create point directory";
+ }
+ $flo = sprintf("0000%04x.%01slo", $point, $flavour);
+ return $pointdir."/".$flo;
+ } else {
+ $flo = sprintf("%04x%04x.%01slo", $net, $node, $flavour);
+ return $flo;
+ }
+}
+
+sub usage {
+ print "ifmail manager script\n";
+ print "usage: ifman <cmd> <filespec> <address> [flavour]\n";
+ print " commands: send, get\n";
+ print " flavours: normal, crash, hold. Default is normal.\n";
+ print "Only 2d addresses with points are supported - no zones!\n";
+ exit 1;
+}
+
+sub parsecfg {
+ open(CFG, $cfgfile) || die "Can't open ifmail config file";
+
+ while (<CFG>) {
+ chop;
+ if (/^#/) { next; }
+ if (/^outbound\s+(\S+)/) { $outbound = $1; }
+ if (/^logfile\s+(\S+)/) { $logfile = $1; }
+ }
+
+ close(CFG);
+}
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg2 b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg2
new file mode 100755
index 00000000000..c8a8c03d664
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg2
@@ -0,0 +1,68 @@
+# Transport programs for mail and news, used by iftoss
+sendmail /usr/lib/sendmail -f $F $T
+rnews /usr/lib/news/rnews
+
+# Unpackers, used by ifunpack.
+# $F expands to archieve file name
+unzip /usr/bin/unzip -oq $F
+unarj /usr/bin/unarj e $F
+#unarc /usr/bin/unpack $F
+unzoo /usr/bin/zoo -extract $F
+unlzh /usr/bin/lharc -x $F
+
+# Packer program, used by ifpack
+# $F expands to archieve file name, $P - to list of packet names
+packer /usr/bin/zip $F $P
+
+# Maximum arcmail file size, will start new arcmail file if exceeds
+maxfsize 65000
+
+# Maximum packet size, ifmail/ifnews will start new packet if exeeds.
+# .out files are NOT created if nonzero specified, you must run ifpack
+# to make packets out. (unimplemented)
+maxpsize 65000
+
+# cnews log file and (temporary) database for seen-bys
+newslog /usr/lib/news/log
+msgidbm /tmp/ifmsgids
+
+# From this line on, values may be prefixed by a logical expression in
+# round brackets. Operators are: '!', '&', '|', 'Xor'.
+# Possible elements are:
+# - Nodelist flags (like "CM", "MNP", "V32" etc.)
+# - speed <operator> <numeric>
+# where <operator> is '=', '!=', '<', '>', '<=', '>='
+# - address <wildcard>
+# where <wildcard> is an (possibly incomplete) fidonet address,
+# e.g. "5020/*"
+# - time <interval>[,<interval>,...]
+# where <interval> is a day spec. with optional time spec., e.g.
+# Wk2000-0900,Sat1800-0000,Sun
+# - phone <prefix>
+# e.g. "phone 7-095-"
+
+# Dialing parameters
+# of multiple "ModemPort", "ModemReset", "ModemDial", "ModemHangup" lines,
+# first matching is used.
+# of multiple "PhoneTrans", "ModemConnect", "ModemError" lines, all matching
+# are used.
+# In send and expect strings, following substitutions are made:
+# \\ '\' character
+# \r carriage return (0x0d)
+# \n new line (0x0a)
+# \t tab (0x09)
+# \b backspace (0x08)
+# \s space (0x20)
+# \NNN (where N is an octal digit) - character with octal code NNN
+# \d 1 second delay (send strings only)
+# \p 1/4 second pause (send strings only)
+# \T translated telephone no. (send strings only)
+# \D untranslated telephone no. (send strings only)
+
+# ModemPort present a blank-separated list of ports with possible speed
+# extention (separated by colon); if speed is prefixed with 'L', it is
+# a "locked" port speed, otherwise it is a maximum speed to be set, while
+# actual speed is taken from the nodelist. If speed is omitted (or set
+# to zero), previous port speed is not changed.
+#ModemPort (time Any0000-0900,Sat,Sun) ttyS0
+#ModemPort cua0:L38400
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg4 b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg4
new file mode 100755
index 00000000000..4cb7a75b1fc
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg4
@@ -0,0 +1,30 @@
+ModemHangup +++ATH\r
+ModemOK OK
+ModemConnect CONNECT
+ModemError BUSY
+ModemError NO\sCARRIER
+ModemError NO\sDIAL
+ModemError RING\r
+ModemError ERROR
+
+# Call options (time, address and nodelist flag dependant)
+# All matching are applied in the order they are specified.
+# Possible options are "[No]Call", "[No]Hold", "[No]PUA", "[No]EMSI",
+# "[No]WaZOO", "[No]Freqs", "[No]Zmodem", "[No]ZedZap", "[No]Janus",
+# "[No]Hydra". Here, WaZOO stands for YooHoo/2U2 handshake, not for
+# the transfer scheme. FTS-0001 handshake and DietIFNA scheme cannot
+# be disallowed (because they are mandatory by standart). "Hold"
+# means really hold "hold" type packets and files: do not send them
+# if our system initiated the session, "NoHold" means send "hold"
+# packets when our system initiated the session. "NoPUA" stands for
+# "No PickUp All", i.e. PUP ("Pick Up Primary"). NoCall means do not
+# perform outbound call. This flag has no effect on the nodes
+# explicitly specified in the command line.
+# Default options are "everything allowed".
+# options ((!CM) & time Any0700-0200) Nocall
+#options (time Any0900-2100 & ! address 2:5020/*) Nocall
+
+# EMSI data for this node
+# From this line on values CANNOT be prefixed with logical expression
+# For now, escaping of '}' and ']' unimplemented, try to avoid these
+# characters please!
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg5 b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg5
new file mode 100755
index 00000000000..8221c1cf160
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifmcfg5
@@ -0,0 +1,14 @@
+
+# PhoneTrans lines provide rules to change phone prefixes to make local
+# or long-distance calls. In the example below, my country code is 7,
+# and local dialing area is 095. From the numbers starting with "7-095-"
+# the prefix is stripped and the 7-digit remainder is dialed. For
+# the numbers starting with "7-" but not with "7-095-", the country prefix
+# "7-" is stripped and the long-distance dialing prefix "8W" substituted.
+# For the numbers not matching any of the above, international
+# call is performed: international dialing prefix "8W10" is prepended
+# to the unmodified 11-digit number. Generally, the syntax is:
+# "PhoneTrans <what-to-strip> / <what-to-substitute-instead>"
+#PhoneTrans 7-095- /
+#PhoneTrans 7- / 8W
+#PhoneTrans / 8W10
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifpoll1 b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifpoll1
new file mode 100755
index 00000000000..812c8e9cd0d
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifpoll1
@@ -0,0 +1,9 @@
+#!/bin/sh
+# ver 0.7
+# ifpoll, poll my boss node or the node given as argument 1
+#
+# i start this shell script every day by crond, but you can
+# start it also by hand :) start it as the owner of ifcico.
+# rasca, berlin 1993 (Rasca Gmelch, 2:2410/305.4)
+#
+# where "ifcico" and "ifpack" reside
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifpoll2 b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifpoll2
new file mode 100755
index 00000000000..216bff08583
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifpoll2
@@ -0,0 +1,107 @@
+
+# Packets backup directory - You have to CREATE this directory
+BAK=/var/spool/ifmail/BAK
+
+# logfile of ifcico
+IFLOG=/var/log/ifmail/sysiflog
+
+# log archive
+IFLOGARC=/var/log/ifmail/TheLog
+
+# owner of "ifcico"
+IFCICO_OWNER=fnet
+
+# how often should i try to call NODE?
+MaxTry=30
+
+# delay between outgoing calls in seconds
+DELAY=10
+
+# where to log processing - file or tty/console
+INFO_TTY=/dev/console
+
+# Lets backup the log and use a new one
+if [ -e $IFLOG ]; then
+ echo Rearranging logs...
+ cat $IFLOG >> $IFLOGARC
+ cp /dev/null $IFLOG
+fi
+
+echo "`date \"+%b %d %T\"` ifpoll[$$]: starting" # >> $INFO_TTY
+
+# remember me, not to run as root..
+#
+if [ `whoami` != "$IFCICO_OWNER" ]; then
+ echo "*** run $0 as the owner of ifcico ***"
+ echo "`date \"+%b %d %T\"` ifpoll[$$]: wrong uid (rc 2)" # >> $INFO_TTY
+ exit 2
+fi
+
+# argv[1] is the optional node to call
+#
+if [ "$1" != "" ]; then
+ if [ "$1" = "-?" ] || [ "$1" = "-h" ]; then
+ echo "usage: ifpoll [<node>]"
+ exit 3
+ else
+ NODE=$1
+ fi
+fi
+
+# let's pack the fido stuff..
+#
+$FIDOPATH/ifpack
+
+# loop until ifcico could connect the node or MaxTry is encountered
+#
+i=1; errlv=1
+while let 'i <= MaxTry' && let 'errlv != 0'
+do
+ echo -n "`date \"+%b %d %T\"` ifpoll[$$]: $i. try ($NODE) " # >> $INFO_TTY
+ #
+ # start ifcico in master mode ..
+ #
+ $FIDOPATH/ifcico -r 1 $NODE
+ errlv=$?
+ if [ $errlv != "0" ]; then
+ echo "failed" # >> $INFO_TTY
+ if [ $i != $MaxTry ]; then
+ sleep $DELAY
+ fi
+ let i=i+1
+ else
+ echo "ok :)" # >> $INFO_TTY
+ fi
+done
+
+# if the poll was fine, unpacking..
+#
+if [ $errlv = "0" ]; then
+ echo "`date \"+%b %d %T\"` ifpoll[$$]: unpacking.. " # >> $INFO_TTY
+ cp -f /var/spool/ifmail/inb/*.* $BAK
+ $FIDOPATH/ifunpack
+ # add here some additional lines for processing tic files or
+ # incoming file-lists or simular..
+else
+ # write me a mail about the failed poll
+ tail --lines=20 $IFLOG | elm -s "ifpoll: failed" $IFCICO_SYSOP >/dev/null
+fi
+
+echo "`date \"+%b %d %T\"` ifpoll[$$]: finished (rc $errlv)" # >> $INFO_TTY
+
+# Collect some infos...
+echo ""
+echo "*** Outgoing File Transfer Stats: ***"
+grep sent $IFLOG
+echo "*** Incoming File Transfer Stats: ***"
+grep received $IFLOG
+echo ""
+
+echo "---->> New mail: <<-----"
+grep echomail $IFLOG
+echo "---->> Personal mail: <<-----"
+grep "mail from" $IFLOG
+echo ""
+
+# return the errorlevel of ifcico
+exit $errlv
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifreq1 b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifreq1
new file mode 100755
index 00000000000..637293954bd
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifreq1
@@ -0,0 +1,20 @@
+#!/usr/bin/perl
+$ver = "0.4";
+#
+# this perl script is designed for the ifmail package by eugene grosser.
+#
+# request a file (first argument) from a fido-node (second argument),
+# don't forget to quote if you use wildcards, e.g.:
+
+# ifreq 'files*' 2:2410/305
+# or
+# ifreq 'files newfile' 2:2410/305
+#
+# this perl script does only add an entry to the corresponding flo-file,
+# the mailer ifcico is not started!
+#
+# rasca, berlin 1994 (rasca@marie.physik.tu-berlin.de, 2:2410/305.4)
+#
+# multi-zone support added by
+# Roland Rosenfeld 15.05.1994 (roland@p13.flokiste.fido.de, 2:2450/300.13)
+
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifreq2 b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifreq2
new file mode 100755
index 00000000000..9ee78ff73fe
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.ifreq2
@@ -0,0 +1,68 @@
+# this is the base directory, where the req-files are stored and the
+# default outbound
+$flo_path = "/var/spool/ifmail";
+$outbound = "/outb"; # don't be confused, it means "/var/spool/ifmail/outb"
+
+# end of configuration #############################################
+
+# main()
+#
+if ((@ARGV < 1) || @ARGV > 2 || $ARGV[0] eq "-?") {
+ &usage;
+} elsif ($ARGV[1] ne "") {
+ $node = $ARGV[1];
+}
+$file = $ARGV[0];
+
+if (! ($node =~ /\d+:\d+\/\d+/)) {
+ die "Wrong address: $node!!!";
+}
+
+($zone, $netnode) = split (/:/, $node);
+$reqfile = sprintf("%04x%04x", split(/\//, $netnode));
+
+if ($reqfile eq "00000000") {
+ print ("can't resolve the fido address \"$node\"\n");
+ &usage;
+} else {
+ if ( $zone == 2 ) {
+ $reqfile = $flo_path . $outbound . "/" . $reqfile . ".req";
+ } elsif ( $zone < 7 ) {
+ $reqfile = $flo_path . $outbound . ".00$zone/" . $reqfile . ".req";
+ } else {
+ $outbound = "";
+ open (CONFIG, "< $config") || die "can't open $config";
+ while ($_ = <CONFIG>) {
+ if ( /^address.*$zone:.*\@(\w*)/ ) { $outbound = $1; }
+ }
+ if ( $outbound eq "" ) {
+ die "No Zone $zone found in $config";
+ }
+ $reqfile = $flo_path . "/$outbound/" . $reqfile . ".req";
+ }
+
+ # seperate the file names of the first argument
+ @files = split (/\s+/, $ARGV[0]);
+
+ # open the flofile for appending
+ open(FLOFILE, ">>" . $reqfile) || die "can't open $reqfile";
+ while (@files) {
+ print (FLOFILE shift(@files), "\n");
+ }
+ close(FLOFILE);
+
+ print ("--- fido request $ver ---------------------------\n");
+ print ("requesting \"$file\" from fido-node $node\n");
+ print ("--- executing ifstat .. ------------------------\n");
+ system("ifstat");
+}
+
+#
+# subroutine "usage"
+#
+sub usage {
+ printf ("--- fido request %s -------------\n", $ver);
+ printf ("usage: ifreq <file> [<3-d address>]\n");
+ printf ("e.g. : ifreq FILES 2:2410/305\n");
+ exit 1;
+}
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.rcnews b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.rcnews
new file mode 100755
index 00000000000..957a272ee49
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.rcnews
@@ -0,0 +1,79 @@
+#! /bin/sh
+## $Revision: 1.1 $
+## News boot script.
+
+## =()<. @<_PATH_SHELLVARS>@>()=
+. /usr/lib/news/innshellvars
+
+## Pick ${INND} or ${INNDSTART}
+WHAT=${INNDSTART}
+## Set to true or false
+DOINNWATCH=false
+MAIL="${MAILCMD} -s 'Boot-time Usenet warning on `hostname`' ${NEWSMASTER}"
+
+## RFLAG is set below; set FLAGS as appropriate.
+RFLAG=""
+FLAGS="-i0 -c0"
+
+## Clean shutdown?
+if [ -f ${SERVERPID} ] ; then
+ ( echo 'INND: PID file exists -- unclean shutdown!' >/dev/console )
+ RFLAG="-r"
+fi
+
+if [ ! -f ${NEWSLIB}/.news.daily ] ; then
+ echo 'No .news.daily file; need to run news.daily?' | eval ${MAIL}
+else
+ case `find ${NEWSLIB} -name .news.daily -mtime +1 -print 2>/dev/null` in
+ "")
+ ;;
+ *)
+ echo 'Old .news.daily file; need to run news.daily?' | eval ${MAIL}
+ ;;
+ esac
+fi
+
+## Active file recovery.
+if [ ! -s ${ACTIVE} ] ; then
+ if [ -s ${NEWACTIVE} ] ; then
+ mv ${NEWACTIVE} ${ACTIVE}
+ else
+ if [ -s ${OLDACTIVE} ] ; then
+ cp ${OLDACTIVE} ${ACTIVE}
+ else
+ ( echo 'INND: No active file!' >/dev/console )
+ exit 1
+ fi
+ fi
+ RFLAG="-r"
+ # You might want to rebuild the DBZ database, too:
+ #echo "cd ${NEWSLIB} \
+ # && makehistory -r \
+ # && mv history.n.dir history.dir \
+ # && mv history.n.pag history.pag" | su ${NEWSUSER}
+fi
+
+## Remove temporary batchfiles and lock files.
+( cd ${BATCH} && rm -f bch* )
+( cd ${LOCKS} && rm -f LOCK* )
+( cd ${TEMPSOCKDIR} && rm -f ${TEMPSOCK} )
+rm -f ${NEWSCONTROL} ${NNTPCONNECT} ${SERVERPID}
+
+## Start the show.
+( echo 'Starting innd.' >/dev/console )
+eval ${WHAT} ${RFLAG} ${FLAGS}
+
+# Gee, looks like lisp, doesn't it?
+${DOINNWATCH} && {
+ echo "( ( sleep 60 ; ${INNWATCH} ) & )" | su ${NEWSUSER}
+}
+
+RMFILE=${MOST_LOGS}/expire.rm
+if [ -s ${MOST_LOGS}/expire.rm ] ; then
+ ( echo "Removing articles from pre-downtime expire run." >/dev/console )
+ (
+ echo 'System shut down during expire. Unlinking articles listed in'
+ echo ${RMFILE}
+ ) | eval ${MAIL}
+ echo "${NEWSBIN}/expirerm ${RMFILE}" | su ${NEWSUSER} &
+fi
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.sendifm1 b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.sendifm1
new file mode 100755
index 00000000000..564b9c60533
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.sendifm1
@@ -0,0 +1,74 @@
+#! /bin/sh
+## $Revision: 1.1 $
+## SH script to send UUCP batches out.
+
+## =()<. @<_PATH_SHELLVARS>@>()=
+. ~news/innshellvars
+
+PROGNAME=`basename $0`
+LOCK=${LOCKS}/LOCK.${PROGNAME}
+LOG=${MOST_LOGS}/${PROGNAME}.log
+
+MAXJOBS=200
+UUXFLAGS="- -r -gd"
+
+## Start logging.
+test ! -f ${LOG} && touch ${LOG}
+chmod 0660 ${LOG}
+exec >>${LOG} 2>&1
+echo "${PROGNAME}: [$$] begin `date`"
+cd ${BATCH}
+
+## Anyone else there?
+trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15
+shlock -p $$ -f ${LOCK} || {
+ echo "${PROGNAME}: [$$] locked by [`cat ${LOCK}`]"
+ exit 0
+}
+
+## Who are we sending to?
+if [ -n "$1" ] ; then
+ LIST="$*"
+else
+ LIST=`ls /usr/spool/news/out.going|egrep "f[0-9]*.n[0-9]*$"`
+fi
+
+case ${HAVE_UUSTAT} in
+DONT)
+ TEMP=${TMPDIR}/uuq$$
+ uuq -h |tr -d : >${TEMP}
+ ;;
+esac
+
+## Do the work...
+
+for SITE in ${LIST}; do
+
+ ## See if any data is ready for host.
+ BATCHFILE=${SITE}.uucp
+ if [ -f ${SITE}.work ] ; then
+ cat ${SITE}.work >>${BATCHFILE}
+ rm -f ${SITE}.work
+ fi
+ mv ${SITE} ${SITE}.work
+ ctlinnd -s -t30 flush ${SITE} || continue
+ cat ${SITE}.work >>${BATCHFILE}
+ rm -f ${SITE}.work
+ if [ ! -s ${BATCHFILE} ] ; then
+ echo "${PROGNAME}: [$$] no articles for ${SITE}"
+ rm -f ${BATCHFILE}
+ continue
+ fi
+
+ ## Get the compression flags.
+ echo "${PROGNAME}: [$$] begin ${SITE}"
+ case "${SITE}" in
+ phreak)
+ COMPRESS="compress"
+ ;;
+ *)
+ COMPRESS="gzip"
+ ;;
+ esac
+
+ time batcher \
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.sendifm2 b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.sendifm2
new file mode 100755
index 00000000000..1a34a1fabbc
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.sendifm2
@@ -0,0 +1,15 @@
+ ${SITE} ${BATCHFILE}
+
+ echo "${PROGNAME}: [$$] end ${SITE}"
+done
+
+case ${HAVE_UUSTAT} in
+DONT)
+ rm -f ${TEMP}
+ ;;
+esac
+
+## Remove the lock file.
+rm -f ${LOCK}
+
+echo "${PROGNAME}: [$$] end `date`"
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.trnrc b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.trnrc
new file mode 100644
index 00000000000..7be596f74db
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.trnrc
@@ -0,0 +1,13 @@
+TRNINIT="-x -e -X -F\" :> \""
+HIDELINE="^X-FTN"
+NEWSHEADER="Newsgroups: %(%F=^\$?%C:%F)
+Subject: %(%S=^\$?%\"\n\nSubject: \":%S)
+%(%R=^\$?:References: %R
+)Sender:
+Distribution: %(%i=^\$?%\"\nDistribution: \":%D)
+Organization: %o
+X-Comment-To: %f\n\n"
+ATTRIBUTION="%f writes:\n"
+YOUSAID="In article %i \n of newsgroup %C you write about \"%s\":\n"
+MAILCALL="(New Mail)"
+export NEWSHEADER HIDELINE TRNINIT ATTRIBUTION MAILCALL YOUSAID EDITOR
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.wheel b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.wheel
new file mode 100755
index 00000000000..567e559a5ab
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/copi.wheel
@@ -0,0 +1,54 @@
+#!/bin/bash
+# $Id: copi.wheel,v 1.2 2001/01/15 22:26:33 tom Exp $
+
+mkstemp size
+dialog --print-maxsize 2>$tmp_size
+ROWS="`cut $tmp_size -f1 -d, | cut -f2 -d:`"
+COLS="`cut $tmp_size -f2 -d,`"
+rm $tmp_size
+
+# Takes an integer, multiplies it for COLS, divides for 132
+scalex() {
+ echo $[$1*$COLS/132]
+}
+scaley() {
+ echo $[$1*$ROWS/60]
+}
+
+dialog --backtitle "$TITLE" --no-shadow \
+--begin `scaley 27` `scalex 98` --infobox "pushd /var/log >/dev/null" 0 0 --and-widget \
+--begin `scaley 35` `scalex 95` --infobox "mkdir -p news -m 755" 0 0 --and-widget \
+--begin `scaley 45` `scalex 86` --infobox "chown news.news news" 0 0 --and-widget \
+--begin `scaley 48` `scalex 78` --infobox "cd /var/log/news" 0 0 --and-widget \
+--begin `scaley 51` `scalex 61` --infobox "mkdir -p OLD -m 755" 0 0 --and-widget \
+--begin `scaley 52` `scalex 47` --infobox "chown news.news OLD" 0 0 --and-widget \
+--begin `scaley 51` `scalex 40` --infobox "cd /var/spool" 0 0 --and-widget \
+--begin `scaley 48` `scalex 25` --infobox "mkdir -p news -m 775" 0 0 --and-widget \
+--begin `scaley 42` `scalex 13` --infobox "chown news.news news" 0 0 --and-widget \
+--begin `scaley 35` `scalex 4` --infobox "cd /var/spool/news" 0 0 --and-widget \
+--begin `scaley 27` `scalex 2` --infobox "CURMASK=`umask`" 0 0 --and-widget \
+--begin `scaley 19` `scalex 4` --infobox "umask 02" 0 0 --and-widget \
+--begin `scaley 11` `scalex 13` --infobox "mkdir -p out.going control junk in.coming" 0 0 --and-widget \
+--begin `scaley 5` `scalex 25` --infobox "chown news.news out.going control junk in.coming" 0 0 --and-widget \
+--begin `scaley 2` `scalex 37` --infobox "cd in.coming" 0 0 --and-widget \
+--begin `scaley 1` `scalex 46` --infobox "mkdir -p bad tmp" 0 0 --and-widget \
+--begin `scaley 2` `scalex 61` --infobox "chown news.news bad tmp" 0 0 --and-widget \
+--begin `scaley 5` `scalex 76` --infobox "umask $CURMASK" 0 0 --and-widget \
+--begin `scaley 11` `scalex 87` --infobox "ln -sf ~news /usr/local/lib/" 0 0 --and-widget \
+--begin `scaley 18` `scalex 95` --infobox "ln -sf ~news/inews /usr/bin/" 0 0 --and-widget \
+--begin `scaley 26` `scalex 97` --infobox "chmod 1777 /var/tmp" 0 0 --and-widget \
+--begin `scaley 34` `scalex 95` --infobox "cd ~news" 0 0 --and-widget \
+--begin `scaley 42` `scalex 87` --infobox "touch history history.dir history.pag errlog log" 0 0 --and-widget \
+--begin `scaley 47` `scalex 76` --infobox "chown news.news history* log errlog" 0 0 --and-widget \
+--sleep 1 --infobox "Creating spooling and logging directories and files..." 0 0 --and-widget \
+--begin `scaley 51` `scalex 78` --infobox "chmod 664 history* log errlog" 0 0 --and-widget \
+--begin `scaley 52` `scalex 60` --infobox "echo \"control 0000000000 0000000001 y\" > active" 0 0 --and-widget \
+--begin `scaley 51` `scalex 42` --infobox "echo \"junk 0000000000 0000000001 y\" >> active" 0 0 --and-widget \
+--begin `scaley 48` `scalex 26` --infobox "chown news.news active" 0 0 --and-widget \
+--begin `scaley 42` `scalex 13` --infobox "echo \"control 814573260 usenet\" > active.times" 0 0 --and-widget \
+--begin `scaley 35` `scalex 4` --infobox "echo \"junk 814573260 usenet\" >> active.times" 0 0 --and-widget \
+--begin `scaley 27` `scalex 2` --infobox "chown news.news active.times" 0 0 --and-widget \
+--begin `scaley 19` `scalex 4` --infobox ":>newsgroups" 0 0 --and-widget \
+--begin `scaley 11` `scalex 12` --infobox "chown news.news newsgroups" 0 0 --and-widget \
+--begin `scaley 6` `scalex 25` --infobox "popd >/dev/null" 0 0
+sleep 1
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/ifpatch b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/ifpatch
new file mode 100644
index 00000000000..1e7c7ee510e
--- /dev/null
+++ b/Build/source/utils/dialog/dialog-1.1-20080819/samples/copifuncs/ifpatch
@@ -0,0 +1,101 @@
+--- ifgate/message.c.orig Mon Jul 24 15:17:47 1995
++++ ifgate/message.c Mon Jul 24 15:18:00 1995
+@@ -48,12 +48,26 @@
+ if (!strcasecmp(msg->key,"X-UUCP-From")) return 0;
+ if (!strcasecmp(msg->key,"X-Body-Start")) return 0;
+ if (!strncasecmp(msg->key,"X-FTN-",6)) return 0;
+- if (!strcasecmp(msg->key,"Path")) return isftnpath(msg->val)?0:1;
++ if (!strcasecmp(msg->key,"Path"))
++
++#ifdef LESS_RFC_KLUDGES
++ return 0;
++#else
++ return isftnpath(msg->val)?0:1;
++#endif
++
+ if (!strcasecmp(msg->key,"Newsgroups")) return newsmode?0:2;
+ if (!strcasecmp(msg->key,"Xref")) return 0;
+ if (!strcasecmp(msg->key,"Return-Receipt-To")) return 1;
+ if (!strcasecmp(msg->key,"Received")) return newsmode?0:2;
+- if (!strcasecmp(msg->key,"From")) return ftnorigin?0:2;
++ if (!strcasecmp(msg->key,"From"))
++
++#ifdef LESS_RFC_KLUDGES
++ return 0;
++#else
++ return ftnorigin?0:2;
++#endif
++
+ if (!strcasecmp(msg->key,"To"))
+ {
+ if (newsmode) return 0;
+@@ -66,7 +80,14 @@
+ }
+ if (!strcasecmp(msg->key,"Cc")) return 2;
+ if (!strcasecmp(msg->key,"Bcc")) return 2;
+- if (!strcasecmp(msg->key,"Reply-To")) return 2;
++ if (!strcasecmp(msg->key,"Reply-To"))
++
++#ifdef LESS_RFC_KLUDGES
++ return 0;
++#else
++ return 2;
++#endif
++
+ if (!strcasecmp(msg->key,"Lines")) return 0;
+ if (!strcasecmp(msg->key,"Date")) return 0;
+ if (!strcasecmp(msg->key,"Subject"))
+@@ -77,8 +98,22 @@
+ if (!strcasecmp(msg->key,"Organization")) return removeorg?0:1;
+ if (!strcasecmp(msg->key,"Comment-To")) return 0;
+ if (!strcasecmp(msg->key,"X-Comment-To")) return 0;
+- if (!strcasecmp(msg->key,"Keywords")) return 2;
+- if (!strcasecmp(msg->key,"Summary")) return 2;
++ if (!strcasecmp(msg->key,"Keywords"))
++
++#ifdef LESS_RFC_KLUDGES
++ return 0;
++#else
++ return 2;
++#endif
++
++ if (!strcasecmp(msg->key,"Summary"))
++
++#ifdef LESS_RFC_KLUDGES
++ return 0;
++#else
++ return 2;
++#endif
++
+ if (!strcasecmp(msg->key,"MIME-Version")) return removemime?0:1;
+ if (!strcasecmp(msg->key,"Content-Type")) return removemime?0:1;
+ if (!strcasecmp(msg->key,"Content-Length")) return removemime?0:1;
+@@ -86,8 +121,26 @@
+ if (!strcasecmp(msg->key,"Content-Name")) return 2;
+ if (!strcasecmp(msg->key,"Content-Description")) return 2;
+ if (!strcasecmp(msg->key,"Message-ID")) return ftnorigin?0:1;
+- if (!strcasecmp(msg->key,"References")) return removeref?0:1;
+- if (!strcasecmp(msg->key,"Distribution")) return ftnorigin?0:1;
++ if (!strcasecmp(msg->key,"References"))
++
++#ifdef LESS_RFC_KLUDGES
++ return 0;
++#else
++ return removeref?0:1;
++#endif
++
++ if (!strcasecmp(msg->key,"Distribution"))
++
++#ifdef LESS_RFC_KLUDGES
++ return 0;
++#else
++ return ftnorigin?0:1;
++#endif
++
++#ifdef LESS_RFC_KLUDGES
++ if (!strcasecmp(msg->key,"NNTP-Posting-Host")) return 0;
++#endif
++
+ /*if (!strcasecmp(msg->key,"")) return ;*/
+ return 1;
+ }