Sprout from master 2002-01-22 01:54:10 UTC short '+macro editor ALT-w: wrap text (subject line) to " [WAS: &]"'
Delete:
.bash_profile
.bashrc
.cvsignore
.cvspass
.cvsrc
.gdbinit
.muttrc
.muttrc-gpg.rc
.netrc
.rpmmacros
.screenrc
.ssh/.cvsignore
.ssh/config
.ssh/known_hosts
.ssh/known_hosts2
.vimrc
.weblintrc
bin/.cvsignore
bin/4cinfo-refill
bin/CVSROOTdump
bin/From-split.perl
bin/centrum.sh
bin/checkstatic
bin/comp
bin/expunge-imap
bin/fromdos
bin/fromhex
bin/ftprate
bin/kratochvil.vellum.cz-update
bin/ldconfig-pserver
bin/m
bin/md
bin/mdr_args
bin/mr
bin/ppp9k
bin/radary
bin/rpmx
bin/sendmailerr
bin/sslsmtp
bin/todos
bin/unzipx
bin/worldisup
public_html/cgi-bin/.htaccess
public_html/cgi-bin/postget.php
src/.cvsignore
src/Makefile
src/const_test.c
src/cvs-wrap.c
src/ev.c
src/flock.c
src/ghortident.c
src/ldconfig-1999-02-21-prep-docache.diff
src/misc/LGPL2.1
src/misc/getopt/getopt.c
src/misc/getopt/getopt.h
src/misc/getopt/getopt1.c
src/misc/macros/need-declaration.m4
src/misc/memmove.c
src/misc/strdup.c
src/misc/usleep.c
src/ndc-reload-short.c
src/pserverchroot.c
src/rpm/.cvsignore
src/rpm/SOURCES/.cvsignore
src/rpm/SOURCES/cvs-1.11-badroot.patch
src/rpm/SOURCES/cvs-1.11-umask022.patch
src/rpm/SPECS/cvs.spec
src/rpm/SPECS/glibc.spec
src/unmime.c
src/urlencode.c
+++ /dev/null
-if [ -f "$HOME/.bashrc" ];then export BASH_ENV="$HOME/.bashrc";source "$BASH_ENV";fi
-
-finger
-m
-
-if [ -f "$HOME/.bash_profile.local" ];then source "$HOME/.bash_profile.local";fi
+++ /dev/null
-if [ -z "$_home_short_dotbashrc" ];then
- _home_short_dotbashrc=true
-
-if [ -f /etc/bashrc ];then source /etc/bashrc;fi
-
-function _bash_profile_addpath # variable,dirpathname
-{
- if [ '!' -d "$2" ];then return;fi
- if [ -n "$3" -o -z "`eval "echo \\${$1}"`" ];then
- eval "$1='$2'"
- else
- # we want to override any original directories, place dirpathname first!
- eval "$1=\"$2:\${$1}\""
- fi
- export "$1"
-}
-
-_bash_profile_addpath PATH "$HOME/bin"
-_bash_profile_addpath PATH "$HOME/sbin"
-_bash_profile_addpath LD_LIBRARY_PATH "$HOME/lib"
-_bash_profile_addpath MANPATH "$HOME/man"
-
-_bash_profile_addpath CVSROOT "$HOME/cvs" single
-_bash_profile_addpath CVSROOT "$HOME/pserver/cvs" single
-
-for _perldir in $(eval "echo $HOME/lib/perl5/site_perl$(
- for perlvar in version archname;do
- echo -n '{,/'
- perl -V:"$perlvar"|cut -d "'" -f 2|tr -d '\n'
- echo -n '}'
- done
- )");do
- _bash_profile_addpath PERLLIB "$_perldir"
- done
-unset _perldir
-
-unset -f _bash_profile_addpath
-
-alias ls='ls -bF'
-alias l='ls -lbF'
-alias maple="ssh -t vega.fjfi.cvut.cz maple"
-#alias cc='cc -I/home/short/include'
-alias vi='vim'
-alias grepb='grep --binary-files=binary'
-
-weberr="/var/log/httpd/error/klokan.error_log"
-if [ -f "$weberr" ];then alias weberr='tail "$weberr"';fi
-weblog="/var/log/httpd/klokan.access_log"
-if [ -f "$weblog" ];then alias weblog='tail -n 20000 "$weblog"|grep "\\(~\\|%7[eE]\\)short"';fi
-
-export IGNOREEOF=10
-export TMOUT=900
-export EDITOR='vim'
-export LC_CTYPE=cs_CZ.ISO-8859-2
-export PERL_MM_OPT="PREFIX=$HOME"
-export WWW_HOME="file:///home/short/.bookmarks.html"
-export GREP_OPTIONS="--binary-files=without-match --directories=skip"
-
-# even when LANG is set to "en_US" it is lethal - strcoll() starts to sort case-insensitively!
-unset LANG
-
-function cvsdiff { cvs diff "$@" 2>&1|pipebuf -q| less; }; export -f cvsdiff
-function cvsdiffi { cvs diff "$@" 2>&1|pipebuf -q|grep -v '^?'|less; }; export -f cvsdiffi
-function cvsupdate { cvs update "$@" 2>&1|pipebuf -q| less; }; export -f cvsupdate
-function cvsupdatei { cvs update "$@" 2>&1|pipebuf -q|grep -v '^?'|less; }; export -f cvsupdatei
-function cvsfiles {
- for i in `find . -name Entries|grep '/CVS/Entries$'`;do
- j="`echo "$i"|sed 's,CVS/Entries$,,'`"
- sed -n 's,^/\([^/]*\)/[^-].*$,'"$j"'\1,p' <$i
- done \
- | sed 's%^\./%%'
- }; export -f cvsfiles
-function cvsignore {
- for i in `find . -name .cvsignore`;do
- j="`echo "$i"|sed 's,\.cvsignore$,,'`"
- sed -n 's,^.*$,'"$j"'&,p' <$i
- done
- }; export -f cvsignore
-function cvsignorerm { cvsignore | xargs rm -f; }; export -f cvsignorerm
-function cvsignoreall {
- (find -type f|sed -e '\#/CVS/[^/]*$#d' -e 's#^\./##';cvsfiles)|sort|uniq -c|sed -n "s/^ *1`echo -e '\t'`//p"
- }; export -f cvsignoreall
-function cvsignoreallrm { cvsignoreall | xargs rm -f; }; export -f cvsignoreallrm
-
-function wclines { awk '{x[$0]++}END{for (i in x) print x[i]"\t"i}'; }; export -f wclines
-function ulimitme { ulimit -m 100000 -d 150000 -v 200000; }; export -f ulimitme
-function grep { ( ulimitme; `which grep` "$@"; ); }; export -f grep
-function rsync { `which rsync` -v -e ssh --progress --stats --partial "$@"; }; export -f rsync
-function tohex { od -An -txC /tmp/out|tr -d '\n '|tr 'a-f' 'A-F';echo; }; export -f tohex
-function edall {
- find -type f|while read -r i;do
- (awk </dev/null 'BEGIN{ for (i=1;i<ARGC;i++) print ARGV[i]; }' "$@";echo -e 'w\nq')|ed -s "$i"
- done
- }; export -f edall
-function mi { (
- set -ex;cd "$1";while true;do test "$PWD" != "/";if [ -e configure.in -o -e Makefile.PL ];then break;fi;cd ..;done;make install;
- ); };export -f mi
-
-ulimit -c 0
-
-if [ -f "$HOME/.bashrc.local" ];then source "$HOME/.bashrc.local";fi
-
- unset _home_short_dotbashrc # permit later reinitializations
-fi # _home_short_dotbashrc
+++ /dev/null
-.Xauthority
-.Xdefaults
-.bash_history
-.gdb_history
-.gnupg
-.lynxrc
-.phorum
-.pgpkey
-.viminfo
-.ssh2
-.cvspass
-.mysql_history
-.lynx_cookies
-.muttrc.9000
-.muttrc.priv
-.cpan
-pserver
-Mail
-cgw
-d
-include
-lib
-priv
-netpbm
-viewcvs
-centrum
-secure
-energie-WWW
-staticnss
+++ /dev/null
-:pserver:pserver@vellum.cz:/cvs A
+++ /dev/null
-rdiff -u
-diff -u
-update -dP -I ! -I CVS
-import -I !
+++ /dev/null
-set history filename /home/short/.gdb_history
-set history save on
-define rt
- break $arg0
- run
-# clear $arg0
- end
-define ct
- break $arg0
- continue
- clear $arg0
- end
-define rtl
- break main
- run
- clear main
- break $arg0
- continue
-# clear $arg0
- end
-define pglist3
- if (*("$arg1")=='@')
- set var $arg1=struct $arg1
- set var $pglist_list=$arg0
- while ($pglist_list)
- if (!strcmp("$arg2","."))
- print *(($arg1 *)$pglist_list->data)
- else
- print *(($arg1 *)$pglist_list->data)$arg2
- end
- set var $pglist_list=$pglist_list->next
- end
- end
-define pglist
- pglist3 $arg0 $arg1 .
- end
+++ /dev/null
-source ~/.muttrc.addons
-source ~/.muttrc.9000
-source ~/.muttrc.priv
-
-my_hdr From: Jan Kratochvil <short@ucw.cz>
-set alternates="^(short@(ucw.cz|atrey.karlin.mff.cuni.cz|k332.feld.cvut.cz|(alcor|amiga).ericsson.cz|short.mj.gts.cz|short.short)|short@(|dolly.)(vellum|valley).cz|(short|root)@((|short.)short.ucw.cz|dialup.netbeans.com|kratochvil.suse.cz)|kratochvil@(users.sourceforge.net|suse.cz))$"
-
-#set sendmail="/usr/sbin/sendmail -oem -oi -f jkra7289@ss1000.ms.mff.cuni.cz -t"
-#my_hdr From: Jan Kratochvil <jkra7289@ss1000.ms.mff.cuni.cz>
+++ /dev/null
-# -*-muttrc-*-
-#
-# Command formats for gpg.
-#
-# This version uses gpg-2comp from
-# http://muppet.faveve.uni-stuttgart.de/~gero/gpg-2comp.tar.gz
-#
-# $Id$
-#
-# %p The empty string when no passphrase is needed,
-# the string "PGPPASSFD=0" if one is needed.
-#
-# This is mostly used in conditional % sequences.
-#
-# %f Most PGP commands operate on a single file or a file
-# containing a message. %f expands to this file's name.
-#
-# %s When verifying signatures, there is another temporary file
-# containing the detached signature. %s expands to this
-# file's name.
-#
-# %a In "signing" contexts, this expands to the value of the
-# configuration variable $pgp_sign_as. You probably need to
-# use this within a conditional % sequence.
-#
-# %r In many contexts, mutt passes key IDs to pgp. %r expands to
-# a list of key IDs.
-
-# decode application/pgp
-set pgp_decode_command="gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f"
-
-# verify a pgp/mime signature
-set pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f"
-
-# decrypt a pgp/mime attachment
-set pgp_decrypt_command="gpg --passphrase-fd 0 --no-verbose --batch --output - %f"
-
-# create a pgp/mime signed attachment
-# set pgp_sign_command="gpg-2comp --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
-set pgp_sign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
-
-# create a application/pgp signed (old-style) message
-# set pgp_clearsign_command="gpg-2comp --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"
-set pgp_clearsign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"
-
-# create a pgp/mime encrypted attachment
-# set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
-set pgp_encrypt_only_command="pgpewrap gpg -v --batch --output - --encrypt --textmode --armor -- -r %r -- %f"
-# --always-trust
-
-# create a pgp/mime encrypted and signed attachment
-# set pgp_encrypt_sign_command="pgpewrap gpg-2comp --passphrase-fd 0 -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
-set pgp_encrypt_sign_command="pgpewrap gpg --passphrase-fd 0 -v --batch --textmode --output - --encrypt --sign %?a?-u %a? --armor -- -r %r -- %f"
-# --always-trust
-
-# import a key into the public key ring
-set pgp_import_command="gpg --no-verbose --import -v %f"
-
-# export a key from the public key ring
-set pgp_export_command="gpg --no-verbose --export --armor %r"
-
-# verify a key
-set pgp_verify_key_command="gpg --no-verbose --batch --fingerprint --check-sigs %r"
-
-# read in the public key ring
-set pgp_list_pubring_command="gpg --no-verbose --batch --with-colons --list-keys %r"
-
-# read in the secret key ring
-set pgp_list_secring_command="gpg --no-verbose --batch --with-colons --list-secret-keys %r"
-
-# receive key from keyserver:
-#set pgp_getkeys_command="wrap.sh -g %r"
-set pgp_getkeys_command=""
+++ /dev/null
-default
- login anonymous password short@
- macdef init
- prom
- bi
- tick
-
+++ /dev/null
-%packager Jan Kratochvil <short@ucw.cz>
-%_signature gpg
-%_gpg_name %{packager}
-
-%_usrsrc /home/short/src
+++ /dev/null
-
-#
-# Example of a user's .screenrc file
-#
-
-# This is how one can set a reattach password:
-# password ODSJQf.4IJN7E # "1234"
-
-# no annoying audible bell, please
-vbell on
-
-# detach on hangup
-autodetach on
-
-# don't display the copyright page
-startup_message off
-
-# emulate .logout message
-pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended."
-
-# advertise hardstatus support to $TERMCAP
-# termcapinfo * '' 'hs:ts=\E_:fs=\E\\:ds=\E_\E\\'
-
-# make the shell in every window a login shell
-#shell -$SHELL
-
-# autoaka testing
-# shellaka '> |tcsh'
-# shellaka '$ |sh'
-
-# set every new windows hardstatus line to somenthing descriptive
-# defhstatus "screen: ^En (^Et)"
-
-defscrollback 1000
-
-# don't kill window after the process died
-# zombie "^["
-
-################
-#
-# xterm tweaks
-#
-
-#xterm understands both im/ic and doesn't have a status line.
-#Note: Do not specify im and ic in the real termcap/info file as
-#some programs (e.g. vi) will not work anymore.
-termcap xterm hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l
-terminfo xterm hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l
-
-#80/132 column switching must be enabled for ^AW to work
-#change init sequence to not switch width
-termcapinfo xterm Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l
-
-# Make the output buffer large for (fast) xterms.
-termcapinfo xterm* OL=10000
-
-# tell screen that xterm can switch to dark background and has function
-# keys.
-termcapinfo xterm 'VR=\E[?5h:VN=\E[?5l'
-termcapinfo xterm 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~'
-termcapinfo xterm 'kh=\E[1~:kI=\E[2~:kD=\E[3~:kH=\E[4~:kP=\E[H:kN=\E[6~'
-
-# special xterm hardstatus: use the window title.
-termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
-
-#terminfo xterm 'vb=\E[?5h$<200/>\E[?5l'
-termcapinfo xterm 'vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l'
-
-# emulate part of the 'K' charset
-termcapinfo xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334,{\344,|\366,}\374,~\337'
-
-# xterm-52 tweaks:
-# - uses background color for delete operations
-termcapinfo xterm be
-
-################
-#
-# wyse terminals
-#
-
-#wyse-75-42 must have flow control (xo = "terminal uses xon/xoff")
-#essential to have it here, as this is a slow terminal.
-termcapinfo wy75-42 xo:hs@
-
-# New termcap sequences for cursor application mode.
-termcapinfo wy* CS=\E[?1h:CE=\E[?1l:vi=\E[?25l:ve=\E[?25h:VR=\E[?5h:VN=\E[?5l:cb=\E[1K:CD=\E[1J
-
-################
-#
-# other terminals
-#
-
-#make hp700 termcap/info better
-termcapinfo hp700 'Z0=\E[?3h:Z1=\E[?3l:hs:ts=\E[62"p\E[0$~\E[2$~\E[1$}:fs=\E[0}\E[61"p:ds=\E[62"p\E[1$~\E[61"p:ic@'
-
-# Extend the vt100 desciption by some sequences.
-termcap vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC
-terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC
-
-
-################
-#
-# keybindings
-#
-
-#remove some stupid / dangerous key bindings
-bind k
-bind ^k
-bind .
-bind ^\
-bind \\
-bind ^h
-bind h
-#make them better
-bind 'K' kill
-bind 'I' login on
-bind 'O' login off
-bind '}' history
-
-# Yet another hack:
-# Prepend/append register [/] to the paste if ^a^] is pressed.
-# This lets me have autoindent mode in vi.
-register [ "\033:se noai\015a"
-register ] "\033:se ai\015a"
-bind ^] paste [.]
-
-# Red Hat Hack^H^H^H^HPatch
-# This makes screen treat backspaces '^?' as
-# deletes. THere should be a fix in the code
-# for the way termcap inheritance works,
-# but I dont know where to put it, and this works.
-bindkey -d -k kb stuff \010
-# /Red Hat Patch
-
-
-################
-#
-# default windows
-#
-
-# screen -t local 0
-# screen -t mail 1 elm
-# screen -t 40 2 rlogin faui40
-
-# caption always "%3n %t%? @%u%?%? [%h]%?"
-# hardstatus alwaysignore
-# hardstatus alwayslastline "%w"
-
-# bind = resize =
-# bind + resize +1
-# bind - resize -1
-# bind _ resize max
+++ /dev/null
-random_seed
-identity
-identity.pub
-authorized_keys
-authorized_keys2
+++ /dev/null
-Host localhost
-#Cipher none
-Compression no
-
-Host dolly.vellum.cz
-User short
-Port 99
-Host dolly
-User short
-Port 99
-HostName dolly.vellum.cz
-
-Host gulz
-HostName gw.gulz.cz
-User root
-
-Host *sourceforge.net
-User kratochvil
-CompressionLevel 3
-
-Host chip.ms.mff.cuni.cz
-User krbu
-
-Host *.ms.mff.cuni.cz
-User jkra7289
-
-Host vega.fjfi.cvut.cz
-User jkratoc
- # unable to get .ssh2/authorization working
-Protocol 1,2
-
-Host *
-User short
-Compression yes
-CompressionLevel 9
-ForwardAgent yes
-ConnectionAttempts 1
-UsePrivilegedPort no
-UseRsh no
-RhostsRSAAuthentication no
-ForwardX11 no
+++ /dev/null
-dolly.vellum.cz,212.47.3.251 1024 37 138791998207279898434469195531993696771197233245266407852430313913479890103579363266072768449275026746822584251774202659607740837631698034058688929589254456991421226027963130041301374278809448176473468889344062887404930122657580936940462583118289931108542189961250755443433859803521510534865682982643282832731
-gw.gulz.cz,195.122.203.142 1024 35 135364793082266512921406037629590300568279387490052843661759526148733668526118969914146129456303677835707885835653952179475275737260812078317099451692802227460674020789936323691837715529893620395732244566615075055668298007328146465273581235766144559562569276379844551503955237635249140122399767828180220522989 gw.gulz.cz,trust=myself
-pauline.vellum.cz,paulina.vellum.cz,62.80.83.38,vellum.cz 1024 35 128736891967663456843937232449883442680197430748569172924302860185874589791226160373914068190792558929295400299058173258177275633082013606779430804389625236339278514177089029301846840082591660557477118867559942034629342207458140606760283098486400756437853576680698537779210962825291939606454153541459843721519
-k332.feld.cvut.cz,147.32.192.12 1024 37 117516146723079458678792649759633894007180076623668590112947499227207482017096669134437658187817723332484576398106392494872938279934798308925406960886127098390438106585339931975874538084019436751801581216372894343901776394737509078289816194337477157788917073245446938373140820078756652260764320164461825139329
-atrey.karlin.mff.cuni.cz,195.113.31.123 1024 35 171494489114704804489937836899063594522165591418445971049330410181037796853942196958784072850905002305882758269332595000055140034347448855223668154222226396828334966941438962831598055463856100259017675926349053928040776737590079039002405696028405745532343666916791300726526431133754689011844482240827420709169
-tangens.sinus.cz,195.39.17.8 1024 35 134115155585071696734908622315877129440852741670693684053815996110048758959456977119637426273337197428404944531846322547840015549108002670295479982733436711859051400684273685067066152421600310038567652069066014270729150070204826559099539186002496166159521987470670459688779845745629711129639839672747147096111
-vega.fjfi.cvut.cz,147.32.6.28 1024 37 109296915745315616559548935619796620109600686026481555916542984628075067361013841335722770051982997404005155435366287427344535737063226964493989953586185567196127860546226645489431848537063840907341666143391790164287815816776464624430364622512347593810143368014845617929234046563489235552296628783714055537963
+++ /dev/null
-gw.gulz.cz,195.122.203.142 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvYPqUENFvSt6yeMyeYqVp3S6a2/2dO7T8HIPq07A4L0Lfvo1L4oL482lawaCbgmMHYO02WhynQERJxBRZ/gbYtE3qX3JZIujxUh7YnrbSEVrMOCM8MChnJbmpRe3h+QBKf44aJkjC+1FUULL7pcOIZkV/if/aJeQKs2zveBjN/c= gw.gulz.cz,trust=myself
-dolly.vellum.cz,212.47.3.251 ssh-dss AAAAB3NzaC1kc3MAAACBAM3SjR9le01wZr1kVbN3Ns3nWHO/IG4nisYa8hTkIVKSYyxjjWPC8B/IOIheoJTsfkQ6xgem6OPHHe/07/WcFJ5uasLiunoXeHa8rMyUN6gb7KXm4Fl+h0hQMGQMGRJ3jLW0Z0aduoRqDo1XApHWiP4lYwCC4MUyeEp0JydPWlexAAAAFQClIR51S9gcA5XNZ99xRHHH2kFtPQAAAIEAt09Ch9F0MaRABPe+K8Uruz+srOfqPTXSMDkieUYo/sWQrSvdyn1508mtXSNts+Qjok4XIVVw+j/Iz/dL4eDZg00qaNgLH6W5pVjXcwU8qki+Ihg2LG+lWPJbhZlqVc0LihrLiurGAHEbrAjLBY2jw3TFK7SaaYIgR83aZ16fpD0AAACBAKOp0QT42feGOG0nDsi5V6RrmEjCG0YxV3OwZOkzcoQykeLfJoCFFiVbgCKmF/1QrIcmKsABl9R0NpYvOd7aoF8N3u/u7ZZdV29aTBYuRJITcgZdvnhSgs0u5qErpZ61m2JjmMEsINwN84C3DSXrIfqGUf8mLy9AcTYGzm0nw89+
-vega.fjfi.cvut.cz,147.32.6.28 ssh-dss AAAAB3NzaC1kc3MAAACBAKFqj+f9fUI7SprmIEdiRNb33+Y8s9qaIrI8ZPseponpnVipsygo7hqbAhdJfXYnN7Y/WkGNb3AWbcaE5gPoIspOEwvP1uzUyDv7kzw4F1qAomMbW6ne1bRanIMErpWmd7J7MnESwTL8jz9bEASPy3pu11TDTeg0ftCxAf0m+8t7AAAAFQCBttEgSu5DZfQDEFUgl0fjUDU/FQAAAIAWrd5gtjpQfwy1MEuZx8m2VELj/+UQ0S9LyvU+oGlzPcEJwsEjWcWJ+CP++sB0OBJFuF8hqE81zVmzzYGMNl4LdqSqwsbuSazBRVulHbGhHLrZOaXmFWcg958DHQYH4OxqOZCZKu48cPd5cwdtZ+aHkXowj7CXNZwuIzp7sIKqZQAAAIBcxk0X8ry2wH6F0k4G2Ang0Usxjthtp64lzObrz9NPaMGwFtoBuct9SsDdkguIGWF9f597iTvScfrqmam+CkhmPe9uK+ih6dlVW4wjEeAS5F/kWCysSu95+YSGMes9ysprRIOnaZ0NqudnmY/qHEdJn5J3yJQyt8p89ywbCEc9fw==
-atrey.karlin.mff.cuni.cz,195.113.31.123 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA3m5J2NUk4+DSVk4p29I/ecHOilXd2QvMbSl3+dROh5N5tbWcHR077RLcWvyOhfgmZ6qAalN9t8tOE/AWXBEUxkNj91R1cVQCTLVqNKYA9HKO1zjkLHACAn7yhgMnwQiIoWNjIx6O8n9rjX51Ud5KOlTxY45TDtyvdnNzXlQ0SZ0=
-paulina.vellum.cz,pauline.vellum.cz,62.80.83.38,vellum.cz ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA3Xob2TBjGKjOFKcSqke5nZD2XWO4YdDRKbzq9vu4yE4LJgYTFDV9dtv69ZCZJGWdDsbqGNNuFgEAnFE8u05XmpyFBFAqbE9W80Dcxna+Gsoj3bTZLhk7ZXX5HCZbNbT7Db76ANRc8jU3o1w1/gkPWSt/RLNQT7x7rxLX7XwI750=
-tangens.sinus.cz,195.39.17.8 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAxMphMtLFs2Y17Q6LullXwgMtA39BORogb0U9FukVxdy3fkp9PY+CJi7//7InITcKWVXEGFAkcG0F4Fe0wSYk7z+58SwZOr17gFiU4AMv8OF0Kq+gWDQYVafo0aClQM4nlUAMEMx+BHvNDVYUbMPksj6RpBCrvG2PUnVULlL/5h0=
-cindy.vellum.cz,195.144.124.19 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvp/yjJeZILi5rISz9BR38xYkxYqBCUvQ/8iv/EkliizBrbTxkGMqo+HGDw5p7C/LUsBCBbLaOJ1xs5qcR55Ndm49/lRWDknOa7M90GaipLn5OMXamQrhuagQxP2xZJ4+zqzf8t1AYqlEMdx53XSBHRmhpqkD0er8+02zyTbFV5E=
+++ /dev/null
-":version 4.x
-autocmd BufEnter * set sw=8 tabstop=8
-autocmd BufEnter /home/{short,root}/{src,WWW}/* set sw=2 tabstop=2
-set autoindent
-set noerrorbells
-set ruler
-set ignorecase
-set nobackup
-set nowritebackup
-set exrc
-set nohlsearch
-syntax off
-ca X x
-set fo=tcq2
-set viminfo='100,\"1000,:100,/40
-set tags=./tags,./TAGS,./../tags,./../TAGS,./../../tags,./../../TAGS,./../../../tags,./../../../TAGS,./../../../../tags,./../../../../TAGS,./../../../../../tags,./../../../../../TAGS,./../../../../../../tags,./../../../../../../TAGS,./../../../../../../../tags,./../../../../../../../TAGS,./../../../../../../../../tags,./../../../../../../../../TAGS,./../../../../../../../../../tags,./../../../../../../../../../TAGS,./../../../../../../../../../../tags,./../../../../../../../../../../TAGS,./../../../../../../../../../../../tags,./../../../../../../../../../../../TAGS,/usr/src/redhat/BUILD/tags,/usr/src/redhat/BUILD/TAGS,/usr/include/tags,/usr/include/TAGS
+++ /dev/null
-#
-# sample configuration file for weblint
-# distributed as part of weblint 1.020
-#
-# The settings in this file reflect the built-in defaults.
-# I.e. if a warning is enabled in this file, then it is enabled by
-# default, and you don't have to enable it in your .weblintrc.
-#
-
-#========================================================================
-# Global Configuration File
-#========================================================================
-#
-# Weblint supports a local site configuration file.
-# If one is set up, then you can specify it be included with the following:
-#
-# use global weblintrc
-#
-
-#========================================================================
-# Weblint Variables
-#========================================================================
-
-#
-# message-style: style of warning message to generate
-# lint generate warnings similar to traditional lint:
-# file(line #): warning
-# this is the default
-# short don't include the filename in the warning message:
-# line #: warning
-# terse a style which is easy for another program to parse:
-# file:line #:warning-identifier
-
-set message-style = lint
-
-#
-# url-get: a program which can be used to retrieve a URL
-#
-
-set url-get = lynx -source
-
-#
-# directory-index: list of filenames for directory indices
-#
-# If your server supports multiple index file names:
-# set directory-index = index.html, welcome.html
-#
-
-set directory-index = index.html
-
-#
-# file-extensions: list of filename extensions for valid HTML filenames
-#
-# A comma-separated list of filenames extensions; these are used when
-# recursing in a directory, to decide which files should be checked.
-#
-
-set file-extensions = html, htm
-
-#========================================================================
-# Extensions
-#========================================================================
-
-#------------------------------------------------------------------------
-# Allow Netscape HTML extensions, such as CENTER and FONT
-#------------------------------------------------------------------------
-# uncomment following line to enable the Netscape extensions
-# extension Netscape
-
-#------------------------------------------------------------------------
-# Allow Microsoft HTML extensions, such as MARQUEE
-#------------------------------------------------------------------------
-# uncomment following line to enable the Microsoft extensions
-# extension Microsoft
-
-
-#========================================================================
-# Weblint Warnings
-#========================================================================
-
-#------------------------------------------------------------------------
-# By default, when recursing in a directory, weblint will check files
-# which are symlinks. Uncomment the following line if you want weblint
-# to skip symlinks. This is equivalent to the -l command-line switch
-#------------------------------------------------------------------------
-# ignore symlinks
-
-#------------------------------------------------------------------------
-# There are two checks for the case of element tags:
-# upper-case all tags should be in upper case
-# lower-case all tags should be in lower case
-# If both are disabled, then case is ignored
-#------------------------------------------------------------------------
-disable upper-case lower-case
-
-#------------------------------------------------------------------------
-# Bad style to use `here' as anchor text
-#------------------------------------------------------------------------
-enable here-anchor
-
-#------------------------------------------------------------------------
-# Flag any elements which are not recognized. This will catch mis-typed
-# elements (e.g. <TOTLE>, or <\BODY>).
-#------------------------------------------------------------------------
-enable unknown-element
-
-#------------------------------------------------------------------------
-# check element attributes to see if they are legal
-#------------------------------------------------------------------------
-enable unknown-attribute
-
-#------------------------------------------------------------------------
-# flag if no HEAD element in page
-#------------------------------------------------------------------------
-enable require-head
-
-#------------------------------------------------------------------------
-# Flag elements which should only appear once on a page (eg TITLE)
-#------------------------------------------------------------------------
-enable once-only
-
-#------------------------------------------------------------------------
-# Flag case where page has BODY element, but no HEAD defined
-#------------------------------------------------------------------------
-enable body-no-head
-
-#------------------------------------------------------------------------
-# If you want outer element to be <HTML>
-#------------------------------------------------------------------------
-enable html-outer
-
-#------------------------------------------------------------------------
-# Flag elements which are only allowed to appear in HEAD element
-#------------------------------------------------------------------------
-enable head-element
-
-#------------------------------------------------------------------------
-# Flag elements which aren't allowed to appear in HEAD element
-#------------------------------------------------------------------------
-enable non-head-element
-
-#------------------------------------------------------------------------
-# Flag obsolete elements, such as XMP and LISTING
-#------------------------------------------------------------------------
-enable obsolete
-
-#------------------------------------------------------------------------
-# Flag mis-matched begin and end tags; for example:
-# <H1> ... </H2>
-#------------------------------------------------------------------------
-enable mis-match
-
-#------------------------------------------------------------------------
-# Flag any IMG elements which don't have ALT text defined.
-#------------------------------------------------------------------------
-enable img-alt
-
-#------------------------------------------------------------------------
-# Flag illegally nested elements (such as anchors).
-#------------------------------------------------------------------------
-enable nested-element
-
-#------------------------------------------------------------------------
-# Check for those elements which have required context.
-# For example, the <CAPTION> element can only appear in <FIG> or <TABLE>
-#------------------------------------------------------------------------
-enable required-context
-
-#------------------------------------------------------------------------
-# Check for mailto: LINK in header; for example:
-# <LINK REV=MADE HREF="mailto:neilb@cre.canon.co.uk">
-# This lets at least lynx users comment on a page.
-#------------------------------------------------------------------------
-disable mailto-link
-
-#------------------------------------------------------------------------
-# Flag overlapped elements. For example:
-# <A HREF="..."> <B> text </A> </B>
-#------------------------------------------------------------------------
-enable element-overlap
-
-#------------------------------------------------------------------------
-# Generate a warning if closing tag is not seen for elements where
-# it is expected. A common case is <A NAME="..."> ... </A>.
-#------------------------------------------------------------------------
-enable unclosed-element
-
-#------------------------------------------------------------------------
-# Generate a warning if markup appears inside a comment. This can
-# confuse quite a few browsers, so it's not a good idea to do it.
-#------------------------------------------------------------------------
-enable markup-in-comment
-
-#------------------------------------------------------------------------
-# You are not allowed to have any whitespace between the opening
-# < and element name.
-#------------------------------------------------------------------------
-enable leading-whitespace
-
-#------------------------------------------------------------------------
-# Flag potentially unclosed tags:
-# < ... < ... >
-#------------------------------------------------------------------------
-enable unexpected-open
-
-#------------------------------------------------------------------------
-# Elements which do not have any required attributes, but for which at
-# least one attribute is expected. Anchors, for example.
-#------------------------------------------------------------------------
-enable expected-attribute
-
-#------------------------------------------------------------------------
-# Required element attributes. Eg IMG tag must have SRC attribute.
-#------------------------------------------------------------------------
-enable required-attribute
-
-#------------------------------------------------------------------------
-# Currently just checks local links, to see if target file exists.
-# disabled at the moment, since it generates bogus warnings if the file
-# path included directories.
-#------------------------------------------------------------------------
-disable bad-link
-
-#------------------------------------------------------------------------
-# Check for headings which are more than 1 level deeper than previous.
-# Example: <H1> followed by <H3>
-#------------------------------------------------------------------------
-enable heading-order
-
-#------------------------------------------------------------------------
-# Check for odd number of double quotes in tag, to catch things like:
-# <A HREF="url >
-#------------------------------------------------------------------------
-enable odd-quotes
-
-#------------------------------------------------------------------------
-# Warn about closing tag for elements which don't take a closing tag.
-# For example: <IMG SRC="foo.gif" ALT="alt text"></IMG>
-#------------------------------------------------------------------------
-enable illegal-closing
-
-#------------------------------------------------------------------------
-# Warn about unclosed comments. For example:
-# <!-- this comment is not correctly closed >
-# Legal SGML comments are:
-# <!-- ... blah blah ... -->
-#------------------------------------------------------------------------
-enable unclosed-comment
-
-#------------------------------------------------------------------------
-# Warning for use of physical font markup, rather than logical
-# For example:
-# <B> where you should use <STRONG>
-# <I> where you should use <EM>
-# <TT> where you should use <CODE>, <KBD>, <VAR>, or <SAMP>
-#------------------------------------------------------------------------
-disable physical-font
-
-#------------------------------------------------------------------------
-# Warning for repeated attributes within the same tag. For example:
-# <IMG SRC="foo.gif" SRC="bar.gif">
-# <A NAME="fred" NAME="bloggs">
-#------------------------------------------------------------------------
-enable repeated-attribute
-
-#------------------------------------------------------------------------
-# Warn against use of ' as a delimiter for attribute values. E.g.:
-# <A HREF='http://www.cre.canon.co.uk/'>Canon Research Centre</A>
-#------------------------------------------------------------------------
-enable attribute-delimiter
-
-#------------------------------------------------------------------------
-# Warn about attributes on a closing tag of container element. E.g.:
-# <A HREF="foobar.html">click here!</A NAME="foobar">
-#------------------------------------------------------------------------
-enable closing-attribute
-
-#------------------------------------------------------------------------
-# When recursing in a directory, check whether there is a directory
-# index file. See also the variable `directory-index', which specifies
-# the name of index file to look for.
-#------------------------------------------------------------------------
-enable directory-index
-
-#------------------------------------------------------------------------
-# Warn about empty container elements. For example:
-# <TITLE></TITLE>
-#------------------------------------------------------------------------
-enable empty-container
-
-#------------------------------------------------------------------------
-# Warn about situations where one element is expected to immediately
-# follow another, with no tags or text between. For example:
-# 1) LH should be the first thing in a UL, if it appears at all
-# 2) should be nothing between </HEAD> and <BODY>
-#------------------------------------------------------------------------
-enable must-follow
-
-#------------------------------------------------------------------------
-# Warn about IMG elements which don't have the WIDTH and HEIGHT
-# attributes set. Setting these attributes can improve page layout speed
-# on some browsers.
-#------------------------------------------------------------------------
-disable img-size
-
-#------------------------------------------------------------------------
-# Warn about leading or trailing whitespace for certain container
-# elements: A, TITLE, H1 through H6.
-#------------------------------------------------------------------------
-disable container-whitespace
-
-#------------------------------------------------------------------------
-# Warn if you don't have a DOCTYPE element as the first thing in
-# your document.
-#------------------------------------------------------------------------
-disable require-doctype
-
-#------------------------------------------------------------------------
-# Warn if you a metacharacter is included literally, rather than using
-# the appropriate entity. Currently this just warns about use of >,
-# in which case you should use >
-#------------------------------------------------------------------------
-enable literal-metacharacter
-
-# ========================================================================
-# Warnings added in the 1.014 release
-# ========================================================================
-
-#------------------------------------------------------------------------
-# Warn if a heading is closed with a different level close tag than
-# the heading was opened with. For example:
-# <H2>... blah blah ...</H1>
-#------------------------------------------------------------------------
-enable heading-mismatch
-
-#------------------------------------------------------------------------
-# Warn if text is seen in unexpected context, such as inside a UL element
-# (rather than inside an LI, which is inside a UL. Or in the HEAD element.
-#------------------------------------------------------------------------
-enable bad-text-context
-
-#------------------------------------------------------------------------
-# Warn about illegal attribute values, such as values in the wrong format.
-#------------------------------------------------------------------------
-enable attribute-format
-
-# ========================================================================
-# Warnings added in the 1.015 release
-# NOTE: the netscape-markup and netscape-attribute warnings
-# were deleted with the 1.015 release
-# ========================================================================
-
-# uncomment the following line if using the Microsoft HTML extensions
-# extension Microsoft
-
-#------------------------------------------------------------------------
-# Warn if using extended markup without an appropriate extension enabled.
-# This warning replaces the 'netscape-markup' warning, and is now generated
-# if the page uses Netscape or Microsoft extensions.
-#------------------------------------------------------------------------
-enable extension-markup
-
-#------------------------------------------------------------------------
-# Warn if using extended attributes without an appropriate extension enabled.
-# This warning replaces the 'netscape-attribute' warning, and is now generated
-# if the page uses Netscape or Microsoft attributes.
-#------------------------------------------------------------------------
-enable extension-attribute
-
-
-# ========================================================================
-# New stuff in the 1.016 release
-# ========================================================================
-
-#------------------------------------------------------------------------
-# Warn of the document TITLE is longer than 64 characters.
-# This limit is recommended by the HTML specification
-#------------------------------------------------------------------------
-enable title-length
-
-#------------------------------------------------------------------------
-# Warn about a heading inside an anchor. Should be the other way round;
-# i.e. an anchor inside a heading.
-#------------------------------------------------------------------------
-enable heading-in-anchor
-
-#------------------------------------------------------------------------
-# Warn about use of < inside the PRE element. This is just a special
-# case of the `literal-metacharacter' warning.
-#------------------------------------------------------------------------
-enable meta-in-pre
-
-#------------------------------------------------------------------------
-# Warn about attribute values which should be quoted, but aren't.
-# Attribute values should be quoted if they contain characters
-# other than [-.A-Za-z0-9]
-#------------------------------------------------------------------------
-enable quote-attribute-value
-
-
-# ========================================================================
-# New stuff in the 1.020 release
-# ========================================================================
-
-#-- no new warnings or variables added in 1.020
-
+++ /dev/null
-unmime
-flock
-nmap
-hexedit
-ghortident
-rmd160
-urlencode
-webcopy
-weblint
-cvs
-
-python2.1
-python
-pydoc
-
-grep
-egrep
-fgrep
-
-ldconfig-docache
-
-iconv
-mutt
-pgpring
-pgpewrap
-
-perl
-perl5.6.1
-a2p
-c2ph
-h2ph
-h2xs
-perlbug
-perldoc
-pl2pm
-splain
-perlcc
-dprofpp
-s2p
-pod2man
-find2perl
-pod2html
-pod2latex
-pod2text
-pod2usage
-podchecker
-podselect
-pstruct
-
-GET
-lwp-mirror
-lwp-request
-lwp-download
-lwp-rget
-HEAD
-POST
-
-xmlwf
-yapp
-pngtogd
-pngtogd2
-gdtopng
-gd2topng
-gd2copypal
-gdparttopng
-webpng
-bdftogd
-xpath
-dbiproxy
-dbish
-xql.pl
-ttree
-tpage
-
-php
-phpextdist
-phpize
-php-config
-pear
+++ /dev/null
-#! /bin/sh
-exec $HOME/bin/From-split.perl <$HOME/WWW/4c/list-folder "$HOME/WWW/phorum/scripts/phorummail forum=1"
+++ /dev/null
-#! /bin/sh
-tail -n5000 `echo *,v|sed 's/,v//g'`|grep -v '^#'|less
+++ /dev/null
-#! /usr/bin/perl -w
-use strict;
-use vars qw/$cmd/;
-
-$/="\nFrom ";
-$|=1;
-while (<STDIN>) {
- s/^From //s;
- s/From $//s;
- $_="From ".$_;
- $cmd=$ARGV[0];
- $cmd=~s/%/$./;
- open(OUT,"|".$cmd.";cat >/dev/null") or die "Cannot open $cmd";
- print OUT $_ or die "Cannot write";
- close(OUT) or die "Cannot close";
- print STDOUT ".";
- }
-print STDOUT " done.\n";
+++ /dev/null
-#! /bin/sh
-#max of max is 999!
-max=310
-umask 077
-exec &>~/priv/centrum.log
-cd ~
-rm -rf ~/centrum
-mkdir ~/centrum
-cd ~/centrum
-i=1
-last=
-while [ $i -le $max ];do
- j="`echo -n 000$i|tail -c 3`"
- echo -n "$j: `date` - "
- lynx -auth short:`cat ~/priv/centrum.pwd` -reload -source 'http://hazard.centrum.cz/~short~eb3c8f5deb72db253053b59290c804d9/hry/bandita_code.phtml' >$j.html
- date
- now="`sed -n 's/^.*Kredity.*VALUE="\([0-9]*\)".*$/\1/p' <$j.html`"
- if [ "$now" = "$last" ];then break;fi
- last="$now"
- sleep 17
- i=$[$i+1]
- done
-echo -n "Termination: "
-if [ $i -gt $max ];then echo "max $max credits exceeded."
-else echo "Count "$last" matched on file $j.html."
-fi
-echo "Current credits: $last"
-tar cf - *|bzip2 -v >~/priv/centrum.tar.bz2
-cd ~
-rm -rf ~/centrum
+++ /dev/null
-#! /usr/bin/perl
-
-use strict;
-use warnings;
-use Cwd;
-use Data::Dumper;
-use Getopt::Long;
-
-
-my(%symtab)=();
-
-my($D);
-die if !GetOptions("d|debug+",\$D);
-
-
-sub defmiss
-{
-my($ref,$missval,$sub)=@_;
-
- $$ref=$missval if !defined $$ref;
- &{$sub}($ref);
-}
-
-sub addsymtype
-{
-my($slot,$type,$symref)=@_;
-
- defmiss(\$slot,{},sub {
- my($typeref)=@_;
- push(@{$$$typeref{$type}},$symref);
- });
-}
-
-sub storesym
-{
-my(%sym)=@_;
-
- $sym{"fn_c"}=~s#^$ENV{PWD}/#./# if defined $sym{"fn_c"};
- defmiss(\$symtab{$sym{"name"}},{},sub {
- my($slotref)=@_;
- my($type)=$sym{"type"};
- addsymtype($$slotref,$type,\%sym);
- addsymtype($$slotref,$type,\%sym)
- if ($type!~/nU/ && ($type=~s/(n)[[:upper:]]/$1+/ || $type=~s/(n)[[:lower:]]/$1-/));
- });
-}
-
-open(NM,"-|",'find -name "*.o"|xargs nm -f posix --print-file-name --no-sort --line-numbers')
- or die "Cannot get nm output: $!";
-while (<NM>) {
- chomp;
- die "Line $. of nm output not recognized: $_"
- # $1 $2 $3 $4
- if !/^([^:]*):\s*(\S*) (\w) [^\t]*(?:\t(.*))?$/;
- storesym(
- "fn_o"=>$1,
- "name"=>$2,
- "type"=>"n$3",
- "fn_c"=>$4,
- );
- }
-close NM;
-
-open(CTAGS,"-|",'find -name "*.h"|xargs ctags -f - --c-types=xp')
- or die "Cannot get ctags output: $!";
-while (<CTAGS>) {
- chomp;
- die "Line $. of ctags output not recognized: $_"
- # $1 $2 $3
- if !/^([^\t]*)\t([^\t]*)\t.*\t(\w)$/;
- storesym(
- "name"=>$1,
- "fn_c"=>$2,
- "type"=>"c$3",
- );
- }
-close CTAGS;
-
-print Data::Dumper->Dump([\%symtab],["%symtab"]) if $D;
-
-sub dumpsyms
-{
-my($error,@arr)=@_;
-
- print("$error ".$arr[0]{"name"}.($arr[0]{"type"}=~/cp|n[tT]/ ? "()" : "").":\n");
- my($symref);
- while ($symref=shift(@arr)) {
- print("\t");
- if (defined($$symref{"fn_c"})) {
- print($$symref{"fn_c"});
- print("\t(".$$symref{"fn_o"}.")") if defined $$symref{"fn_o"};
- }
- else {
- my($fn)=$$symref{"fn_o"};
- $fn=~s/\.o$/.c/;
- print($fn);
- }
- print("\n");
- }
-}
-
-sub refendef
-{
-my($ref)=@_;
-
- return [] if !defined($ref);
- return $ref;
-}
-
-my($symname);
-foreach $symname (sort keys %symtab) {
- my($typesref)=$symtab{$symname};
- my($ref,$ref1,$ref2);
-
-# >=2 n[:upper:]\U symbols => global conflict
- if (@{refendef($ref=$$typesref{"n+"})}>=2) {
- dumpsyms("global conflict",@{$ref});
- }
-
-# >=1 n[:upper:]\U symbol && >=1 n[:lower:] symbol => local override
- if (@{refendef($ref1=$$typesref{"n+"})}>=1 && @{refendef($ref2=$$typesref{"n-"})}>=1) {
- dumpsyms("local override of global",@{$ref1});
- dumpsyms(" -- with local",@{$ref2});
- }
-
-# >=1 n[:upper:]\U symbol && ==0 nU symbol => global singularity
- if (@{refendef($ref=$$typesref{"n+"})}>=1 && @{refendef($$typesref{"n-"})}==0) {
- dumpsyms("global singularity",@{$ref});
- }
-
-# >=1 cx symbol && ==0 n[:upper:]\U symbol => floating extern data
- if (@{refendef($ref=$$typesref{"cx"})}>=1 && @{refendef($$typesref{"n+"})}==0) {
- dumpsyms("floating extern data",@{$ref});
- }
-
-# >=1 cp symbol && ==0 n[:upper:]\U symbol => floating extern func
- if (@{refendef($ref=$$typesref{"cp"})}>=1 && @{refendef($$typesref{"n+"})}==0) {
- dumpsyms("floating extern func",@{$ref});
- }
- }
+++ /dev/null
-#! /bin/sh
-where="$PWD"
-project=`basename "$where"`
-set -x
-if [ $# != 0 ];then
- ./autogen clean
- cvs update 2>&1|tee $HOME/update
- ./autogen clean
- cvs diff 2>&1|tee $HOME/diff
- fi
-time sh -c "./autogen;make" 2>&1| \
- grep -v 'warning: inline declaration ignored for function with `\.\.\.'"'"'$'| \
- tee $HOME/errs.comp-$project
+++ /dev/null
-#! /bin/sh
-user="${1:-short-m}"
-echo 'poll localhost proto IMAP user '"$user"' pass '"`cat ~/priv/"$user".pwd \
- `"' mda "cat >/dev/null" norewrite fetchall nokeep' \
- |fetchmail -f - -s
+++ /dev/null
-#! /bin/sh
-exec tr -d '\r'
+++ /dev/null
-#! /usr/bin/perl
-
-use strict;
-use warnings;
-
-while (<>) {
- printf("%c",hex($1)) while ($_=~s/([[:xdigit:]]{2})//);
- }
+++ /dev/null
-#!/bin/sh
-if [ $# -lt 1 -o $# -gt 3 ];then
- echo "$0: <filename> [<expected size>] [<ctime>]"
- exit
- fi
-if [ -n "$3" ];then
- ctms="`date -d "$3" '+%s'`"
- ctmd="$3"
-else
- ctms="`find "$1" -printf "%A@\n"`"
- ctmd="`find "$1" -printf "%a\n"`"
-fi
-find "$1" -printf "scale=2;print \"Current rate: \",%s/(%T@-$ctms),\" B/s\\n\"\n"|bc
-if [ -n "$2" ];then
- echo -n "Progress : ";find "$1" -printf "scale=2;print \"%`echo -n "$2"|wc -c`s / $2 (\",%s*100/$2,\"%%)\\n\"\n"|bc
- echo -n "Start time: ";date -d "$ctmd"
- echo -n "Current time: ";date
- echo -n "Finish time: ";date --date "`find "$1" -printf "($2-%s)*(%T@-$ctms)/%s\n"|bc` secs"
- fi
+++ /dev/null
-#! /bin/sh
-
-lockfile="/home/short/bin/kratochvil.vellum.cz-update.lock"
-kratochvil_IP="`echo "${SSH_CLIENT:-$SSH2_CLIENT}"|cut -d ' ' -f 1`"
-kratochvil_IP_back="`echo "$kratochvil_IP"|sed 's/\./\\\\./g'`"
-named_dir="/etc/named"
-cf_file="$named_dir/cf/kratochvil.vellum.cz"
-
-if [ -f "$lockfile" ];then lockmsg=true;else lockmsg=false;fi
-if $lockmsg;then echo -n "$0: Locking \"$lockfile\"...";fi
-lockfile -l 60 "$lockfile"
-trap 'rm -f "$lockfile"' EXIT
-if $lockmsg;then echo " done.";fi
-
-if grep -q '^ `'"$kratochvil_IP_back'"'$' "$cf_file";then
- echo "$0: Nothing to do, $kratochvil_IP already present."
- exit 0
- fi
-
-echo "$0: Updating new IP $kratochvil_IP..."
-echo -e '%s#\(^ `\)[0-9.]*\('"'"'\)$#\\1'"$kratochvil_IP"'\\2#\nw'|ed -s "$cf_file"
-make -C "$named_dir" --assume-new="ver/.version"
-/home/short/secure/ndc-reload-short
-echo "$0: Update done."
-exit 0
+++ /dev/null
-#! /bin/sh
-set -ex
-exec /home/short/bin/ldconfig-docache -C /home/short/pserver/etc/ld.so.cache -n -v /home/short/pserver/lib
+++ /dev/null
-#! /bin/sh
-case $# in
- 0) ls -ltL ~/Mail #|less
- ;;
- 1) exec mutt -f ="$1"
- ;;
- *) echo "Error parameters"
- ;;
- esac
+++ /dev/null
-#! /bin/sh
-if [ -f .print_userprogs ];then
- if [ `wc -l <.print_userprogs` = 1 ];then
- arg="./`sed 's/:.*//' <.print_userprogs`"
- fi
-fi
-if [ -z "$arg" ];then
- arg="`basename "$PWD"`"
-fi
-
-run_args="`mdr_args "$arg"`"
-
-if [ -z "$1" ];then
- cmd="run"
-else
- cmd="rtl $1";shift
-fi
-
-echo "ARG: $arg CMD: $cmd"
-t="/tmp/mr.$$";rm -f "$t"
-trap 'rm -f "$t"' EXIT
-cat >"$t" <<EOCMDS
-set args $run_args
-`stty size|awk '{print "set height "$1"\nset width "$2}'`
-echo $cmd\n
-$cmd
-shell rm -vf "$t"
-EOCMDS
-set -xe
-make "$arg"
-gdb --command="$t" ./"$arg"
+++ /dev/null
-#! /bin/sh
-if [ $# != 1 ];then
- echo "Syntax: $0 \"\$arg\""
- exit 1
-fi
-
-case "`basename "$1"`" in
-
-tac_plus)
- minus=
- minus="$minus -8" # AUTHOR
- #minus="$minus -128" # CONFIG
- minus="$minus -4096" # CLEAN
- #minus="$minus -16384" # CFGEVAL
- echo "-g -p 4949 -d `echo 2^17-1-2-256-512-1024-2048-65536 $minus |bc`"
- ;;
-dosfsck)
- echo "-f -v -V -r /dev/hdc1"
- ;;
-httpd)
- echo "-DSSL -X -f $HOME/http/httpd.conf"
- ;;
-*)
- ;;
-esac
+++ /dev/null
-#! /bin/sh
-if [ -f .print_userprogs ];then
- if [ `wc -l <.print_userprogs` = 1 ];then
- arg="./`sed 's/:.*//' <.print_userprogs`"
- fi
-### elif [ -n "$1" ];then arg="$1";shift
-fi
-if [ -z "$arg" ];then
- arg="`basename "$PWD"`"
-fi
-
-run_args="`mdr_args "$arg"`"
-
-echo "ARG: $arg"
-set -xe
-make "$arg"
-./"$arg" $run_args
+++ /dev/null
-#!/bin/sh
-#
-# $Id$
-
-# IP address for N9K, "192.168.90.1" if not provided (either here or from
-# some ~/.profile etc.)
-#NOKIA9K=
-
-# Nameserver for N9K, taken from /etc/resolv.conf if not provided
-#NS=
-
-# Serial port with attached N9K, default is /dev/ttyS1 (AKA COM2:)
-#PORT=/dev/ttyS1
-
-# Nokia baudrate, usually 19200 or 38400, default is 19200
-#NOKIABAUD=19200
-
-# No user-servicable parts below!
-
-pid="/var/run/ppp9k.pid"
-if [ -f "$pid" ];then
- if kill -0 `head -n 1 "$pid"` 2>/dev/null;then
- echo "Killing previous ppp9k on PID(s):" `cat "$pid"`
- kill `cat "$pid"`
- rm -f "$pid"
- exit 0
- else
- echo "Removing state lock of PID(s):" `cat "$pid"`
- rm -f "$pid"
- fi
-fi
-
-IP="${NOKIA9K:-192.168.90.1}"
-NS="`grep '^nameserver' /etc/resolv.conf|head -n 1|cut -f 2 -d ' '`"
-NS="${NS:-127.0.0.1}"
-if [ "$NS" = localhost -o "${NS#127.}" != "$NS" ];then NS="`hostname -f`";fi
-PORT="${PORT:-ttyS1}"
-if [ "${PORT#*/}" = "$PORT" ];then PORT="/dev/$PORT";fi
-NOKIABAUD="${NOKIABAUD:-19200}"
-
-# Some rules for the chat script:
-# 9000i starts with: ATZ, AT&F (the need for TIMEOUT 2, "-OK^M^J-AT&F")
-# 9110 starts with: AT&F
-# user can have global custom initialization string (need for one "OK^M^J")
-# user can have connection custom initialization string (need for one "OK^M^J")
-
-(trap "" HUP
- while [ '!' -f "$pid" ];do sleep 1;done
- me="`cat "$pid"`"
- while :;do
- pppd "$PORT" "$NOKIABAUD" modem lock -crtscts xonxoff :$IP asyncmap 0 ms-dns "$NS" \
- connect 'chat -v \
- "TIMEOUT" "86400" \
- "AT" "\c" \
- "TIMEOUT" "2" \
- "&F-OK^M^J-AT&F" "OK^M^JOK^M^JOK^M^J" \
- "TIMEOUT" "20" \
- "ATD" "CONNECT^M^J" \
- ' \
- -ccp nodefaultroute proxyarp lcp-echo-interval 30 lcp-echo-failure 2 lcp-max-configure 30 -detach \
- -chap noauth "$@" &
- echo -e "$me\n$!" >"$pid"
- wait
- echo "$me" >"$pid"
- sleep 10
- done) </dev/null &>/dev/null &
-
-he="$!"
-echo "$he" >"$pid"
-echo "Starting up: PID=$he, port=$PORT, baud=$NOKIABAUD, remoteIP=$IP, nameserver=$NS"
+++ /dev/null
-#! /bin/sh
-box=$HOME/Mail/radary
-while [ -f $box ];do
- mv $box $box.$$
- awk '/^From /{hdr=1}{if (!hdr) print}/^$/{hdr=0}' <$box.$$|less
- rm -f $box.$$
- done
+++ /dev/null
-#! /bin/sh
-if [ $# = 0 ];then
- echo 'Syntax: $0 <file.rpm>'
- exit 1
- fi
-while [ $# -gt 0 ];do
- d=`basename "$1" .rpm`
- if [ -f "$d" ];then
- d="$d.dir"
- fi
- mkdir "$d" 2>/dev/null
- r="$1"
- if [ "${r#/}" = "$r" ];then
- r="../$r"
- fi
- (if cd "$d";then
- rpm2cpio "$r"|cpio -id --quiet #-v #FIXME: --sparse doesn't work, why?
- fi
- )
- shift
- done
+++ /dev/null
-#! /bin/sh
-exec /usr/sbin/sendmail -fshort+err@vellum.cz "$@"
+++ /dev/null
-#! /bin/sh
-port="${1:-925}"
-exec /usr/sbin/stunnel -S 0 -c -p $HOME/priv/sslvellum.key -v 3 -a $HOME/priv/sslsmtp.dir -r kratochvil.vellum.cz:"$port"
+++ /dev/null
-#! /bin/sh
-exec sed 's/$/\r/g'
+++ /dev/null
-#! /bin/sh
-if [ $# = 0 ];then
- echo 'Syntax: $0 <file.zip>...'
- exit 1
- fi
-while [ $# -gt 0 ];do
- d="$1"
- d=`basename "$d" .zip`
- d=`basename "$d" .ZIP`
- if [ -f "$d" ];then
- d="$d.dir"
- fi
- mkdir "$d" 2>/dev/null
- r="$1"
- if [ "${r#/}" = "$r" ];then
- r="../$r"
- fi
- (if cd "$d";then
- unzip -L "$r"
- fi
- )
- shift
- done
+++ /dev/null
-#!/bin/sh
-t=/tmp/worldisup.$$
-
-(date
- echo -e "\n$SSH_CLIENT\n"
- h="`echo "$SSH_CLIENT"|awk '{print $1}'`"
- host -a "$h"
- ~/bin/ghortident $SSH_CLIENT
- n="`host -a "$h" 2>&1|sed -n 's/^Name: \(.*\)/\1/p'`"
- n="${n:-h}"
- echo -e "\nssh -v $n -p 56122\ntelnet $n 56123"
-) 2>&1|todos >$t
-mv $t ~/WWW/home.txt
+++ /dev/null
-Options -Indexes
-<FilesMatch "^[^.]*$">
- SetHandler cgi-script
-</FilesMatch>
+++ /dev/null
-<?php
- $getget=isset($HTTP_GET_VARS["_getget"]);
- $wherename=($getget ? "_getget" : "_postget");
- $where=$HTTP_GET_VARS[$wherename];
- unset($HTTP_GET_VARS[$wherename]);
-
- foreach ($HTTP_GET_VARS as $key=>$val) {
- if (ereg("^_priv_(postget.*)\$",$val,$matched)) {
- if ($HTTP_SERVER_VARS["REMOTE_ADDR"]!="127.0.0.1")
- print("Forbidden:"
- ." REMOTE_ADDR=".htmlspecialchars($HTTP_SERVER_VARS["REMOTE_ADDR"])
- .",key=".htmlspecialchars($key)
- .",val=".htmlspecialchars($val)
- ."<br />"
- );
- else
- $HTTP_GET_VARS[$key]=chop(join(" ",file("/home/short/priv/".$matched[1],false/*use_include_path*/)));
- }
- }
-
- if ($getget) {
- $first='?';
- foreach ($HTTP_GET_VARS as $key=>$val) {
- $where.="${first}$key=$val";
- $first='&';
- }
- header("Location: $where");
- }
- header("Content-type: text/html");
- print('<?xml version="1.0" encoding="iso-8859-1"?>'."\n");
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head><title>postget</title></head>
-<?php
-
- if ($getget) {
- print(""
- ."<body onload=\"window.location.href=document.links[0].href;\"><p>\n"
- ."<a href=\"".htmlspecialchars($where)."\">get</a>\n"
- ."</p></body>\n");
- }
- else {
- print(""
- ."<body onload=\"document.forms[0].submit();\">\n"
- ."<form action=\"".htmlspecialchars($where)."\" method=\"post\"><p>\n");
- foreach ($HTTP_GET_VARS as $key=>$val)
- print("<input type=\"hidden\" name=\"".htmlspecialchars($key)."\" value=\"".htmlspecialchars($val)."\" />\n");
- print("<input type=\"submit\" />\n");
- print("</p></form></body>\n");
- }
-
-?>
-</html>
+++ /dev/null
-CFLAGS=
-CFLAGS+=-Wall -Wstrict-prototypes -ggdb3
-#CFLAGS+=-pedantic -ansi -traditional -Wall -Wstrict-prototype
-#CFLAGS+=-O9 -fexpensive-optimizations -finline-functions
-#CFLAGS+=-pg
-
-all: ../bin/unmime ../bin/flock
-
-../bin/%: %.c
- $(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@
+++ /dev/null
-#include <stdlib.h>
-#include <string.h>
-
-static void func1(const char *const *array) /* FAILURE! */
-{
-}
-static void func2(const char * *array) /* FAILURE! */
-{
-}
-static void func3( char *const *array) /* ok */
-{
-}
-static void func4(const char *string) /* ok */
-{
-}
-
-char **static_array;
-
-int main(void)
-{
- static_array=malloc(3*sizeof(*static_array));
- static_array[0]=strdup("A");
- static_array[1]=strdup("B");
- static_array[2]=strdup("C");
- func1(static_array);
- func2(static_array);
- func3(static_array);
- func4(static_array[0]);
- return(0);
-}
+++ /dev/null
-# /*
-set -ex
-gcc -o cvs-wrap cvs-wrap.c -O2 -Wall -ggdb3
-exit
-# */
-
-#include <unistd.h>
-#include <stdlib.h>
-
-
-#define LENGTH(x) (sizeof((x))/sizeof(*(x)))
-
-int main(int argc,char **argv)
-{
-const char *strace[]={"cvs","-s","200","-q","-o","/tmp/strace.log","/usr/bin/cvs-orig"};
-char **arg;
-
- arg=malloc(sizeof(*arg)*(LENGTH(strace)+(argc-1)+1));
- memcpy(arg ,strace,sizeof(*arg)*LENGTH(strace));
- memcpy(arg+LENGTH(strace),argv+1,sizeof(*arg)*(argc-1));
- arg[LENGTH(strace)+(argc-1)]=NULL;
- execv("/usr/bin/strace",arg);
- return(EXIT_FAILURE);
-}
+++ /dev/null
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <assert.h>
-
-#define NDEBUG
-
-#define BUFSIZE 1024
-
-#define bail(arg...) do { fprintf(stderr, ##arg); exit(EXIT_FAILURE); } while (0)
-
-char *arg;
-
-int istack[BUFSIZE];
-char opstack[BUFSIZE];
-int istackp,opstackp;
-
-#ifdef NDEBUG
-#define dump(x)
-#else
-static void dump(char *pref)
-{
-int i;
- fprintf(stderr,"%s: i[",pref);
- for (i=0;i<istackp;i++) {
- if (i) fputc(',',stderr);
- fprintf(stderr,"%d",istack[i]);
- }
- fprintf(stderr,"],op=[");
- for (i=0;i<opstackp;i++) fputc(opstack[i],stderr);
- fprintf(stderr,"]\n");
-}
-#endif
-
-static char lex(int *ip)
-{
-char c;
-long l;
-
- while (isspace(*arg)) arg++;
- switch (*arg) {
- case 0: case '+': case '-': case '*': case '/': case '(': case ')':
- c=*arg;
- if (c) arg++;
- return(c);
- case '0' ... '9':
- l=strtol(arg,&arg,10);
- *ip=l;
- return 'n';
- default:
- bail("Invalid characted in string: %s\n",arg);
- }
-}
-
-static int oppri(char op)
-{
- switch (op) {
- case 0: return(0);
- case '+': case '-': return (10);
- case '*': case '/': return (20);
- case '(': return (2);
- case ')': return (5);
- default: assert(0);
- }
-}
-
-static void evalit(void)
-{
- dump("evalit()");
- assert(opstackp); opstackp--;
- if (istackp<2)
- if (opstack[opstackp]!='(') bail("2 arguments for operator '%c' required!\n",opstack[opstackp]);
- else bail("Stray '('!\n");
- istackp--;
- switch (opstack[opstackp]) {
- case '+': istack[istackp-1]+=istack[istackp]; break;
- case '-': istack[istackp-1]-=istack[istackp]; break;
- case '*': istack[istackp-1]*=istack[istackp]; break;
- case '/':
- if (!istack[istackp]) bail("Division of %d by zero not supported!\n",istack[istackp-1]);
- istack[istackp-1]/=istack[istackp];
- break;
- }
-}
-
-static void pushop(char op)
-{
-int mypri=oppri(op);
- while (opstackp && op!='(' && oppri(opstack[opstackp-1])>=mypri)
- evalit();
- if (!op) return;
- if (op==')') {
- if (!opstackp || opstack[opstackp-1]!='(')
- bail("Not enough content for brackets-inside space!\n");
- opstackp--;
- return;
- }
- if (opstackp>=BUFSIZE) bail("Too many operators (%d is max)!\n",BUFSIZE);
- opstack[opstackp++]=op;
-}
-
-static void process(void)
-{
-char lastop,op;
-int curi;
-
- istackp=opstackp=0;
- for (lastop=0;;lastop=op) switch (op=lex(&curi)) {
- case 'n':
- if (lastop=='n') bail("Two successive numbers not permitted!\n");
- if (istackp>=BUFSIZE) bail("Too many operators (%d is max)!\n",BUFSIZE);
- istack[istackp++]=curi;
- break;
- case '(':
- if (lastop=='n') bail("Open-bracket not permitted after number!\n");
- pushop(op);
- break;
- case '+': case '-': case '*': case '/': case ')': pushop(op); break;
- case 0:
- pushop(op);
- if (istackp!=1||opstackp)
- bail("Machine not in sane state on the end of expression, ints=%d,ops=%d!\n",istackp,opstackp);
- printf("%d\n",istack[0]);
- return;
- default: assert(0);
- }
-}
-
-int main(int argc,char **argv)
-{
-int argn;
- for (argn=1;argn<argc;argn++) {
- arg=argv[argn];
- process();
- }
- return(EXIT_SUCCESS);
-}
+++ /dev/null
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <signal.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <limits.h>
-#include <getopt.h>
-#include <sys/file.h>
-
-#define failf(name) do { fprintf(stderr,"%s: ",pname); perror(name"()"); exit(EXIT_FAILURE); } while (0)
-const char version[]="This is FLock, version 1.0\n";
-
-int verbose;
-
-char *pname;
-
-static void usage(void) __attribute__((noreturn));
-static void usage(void)
-{
- fprintf(stderr,"\
-%s\
-This command acts as an interface to flock(2):\n\
-\n\
-Usage: flock [{-s|--shared}|{-x|--exclusive}] [-n|--nonblock]\n\
- [-v|--verbose] [-h|--help] [-V|--version]\n\
- <lockname> <command>\n\
-\n\
- -s, --shared\tCreate shared lock (LOCK_SH) - DEFAULT\n\
- -x, --exclusive\tCreate exclusive lock (LOCK_EX)\n\
- -n, --nonblock\tFail immediately if req. lock is busy\n\
- -v, --verbose\tDisplay progress during locking\n\
- -h, --help\tPrint a summary of the options\n\
- -V, --version\tPrint the version number\n\
-",version);
- exit(EXIT_FAILURE);
-}
-
-const struct option longopts[]={
-{"shared" ,0,0,'s'},
-{"exclusive",0,0,'x'},
-{"nonblock" ,0,0,'n'},
-{"verbose" ,0,0,'v'},
-{"help" ,0,0,'h'},
-{"version" ,0,0,'V'}};
-
-int main(int argc,char **argv)
-{
-char *fn,*cmd;
-int locktype=LOCK_SH,nonblock=0,fd,optc;
-
- pname=*argv;
- while ((optc=getopt_long(argc,argv,"sxnvhV",longopts,NULL))!=EOF) switch (optc) {
- case 's':
- locktype=LOCK_SH;
- break;
- case 'x':
- locktype=LOCK_EX;
- break;
- case 'n':
- nonblock=LOCK_NB;
- break;
- case 'v':
- verbose=1;
- break;
- case 'V':
- fprintf(stderr,version);
- exit(EXIT_FAILURE);
- default: /* also 'h' */
- usage();
- break;
- }
- if (optind+2!=argc) {
- fprintf(stderr,"%s: Incorrect number of parameters (command needs quoting?)!\n",pname);
- exit(EXIT_FAILURE);
- }
- fn=argv[optind];
- cmd=argv[optind+1];
- if (verbose) { fprintf(stderr,"%s: Opening \"%s\"...",pname,fn); fflush(stderr); }
- if ((fd=open(fn,O_RDONLY|(nonblock?O_NONBLOCK:0)))==-1) failf("open");
- if (verbose) { fprintf(stderr,"done\n%s: Locking \"%s\"...",pname,fn); fflush(stderr); }
- if (flock(fd,locktype|nonblock)) failf("flock");
- if (verbose) { fprintf(stderr,"done\n%s: Running \"%s\"...",pname,cmd); fflush(stderr); }
- if (system(cmd)==-1) failf("system");
- if (verbose) { fprintf(stderr,"done\n%s: Finishing - removing lock.\n",pname); }
- return(EXIT_SUCCESS);
-}
+++ /dev/null
-#include <stdio.h>
-#include <unistd.h>
-#include <netinet/in.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#define DBG 0
-
-int parseparams(int argc, char *argv[], ulong *adres, uint *rport, uint *lport, uint *service)
-{
- char *s;
- uint c, d;
-
- if (argc<1) return 255;
-
- *lport=80;
- *service=113;
-
- switch (argc)
- {
- case 2:
- fprintf(stderr,"Error: missing remote port!\n");
- case 1:
- fprintf(stderr,"Usage: ident <xxx.xxx.xxx.xxx> <remote port> [local port] [ident port]\n");
- return 1;
- default:
- case 5:
- c=0;
- s=argv[4];
- while (*s)
- {
- if (c<65536 && *s>='0' && *s<='9') c=c*10+*s-'0';
- else
- {
- fprintf(stderr,"Error: wrong ident port!\n");
- return 5;
- }
- s++;
- }
- *service=c;
- case 4:
- c=0;
- s=argv[3];
- while (*s)
- {
- if (c<65536 && *s>='0' && *s<='9') c=c*10+*s-'0';
- else
- {
- fprintf(stderr,"Error: wrong local port!\n");
- return 4;
- }
- s++;
- }
- *lport=c;
- case 3:
- *adres=0;
- c=d=0;
- s=argv[1];
- while (*s)
- {
- if (*s>='0' && *s<='9')
- {
- c=c*10+*s-'0';
- if (c>255)
- {
- fprintf(stderr,"Error: wrong address!\n");
- return 2;
- }
- }
- else
- if (*s=='.')
- {
- *adres=*adres*256+c;
- c=0;
- if (d++>=3)
- {
- fprintf(stderr,"Error: wrong address!\n");
- return 2;
- }
- }
- else
- {
- fprintf(stderr,"Error: wrong address!\n");
- return 2;
- }
- s++;
- }
- *adres=*adres*256+c;
-
- c=0;
- s=argv[2];
- while (*s)
- {
- if (c<65536 && *s>='0' && *s<='9') c=c*10+*s-'0';
- else
- {
- fprintf(stderr,"Error: wrong remote port!\n");
- return 3;
- }
- s++;
- }
- *rport=c;
- }
- return 0;
-}
-
-int main(int argc, char *argv[])
-{
- int sock;
- struct sockaddr_in addr;
- char buf[256];
- int count;
- ulong adres;
- uint rport, lport, service;
- int err;
- static const int val_one=1;
-
- if (parseparams(argc,argv,&adres,&rport,&lport,&service)) return 3;
-
- if (DBG) fprintf(stderr,"addr: %lX rport: %u lport: %u service: %i\n",adres,rport,lport,service);
-
- addr.sin_family=AF_INET;
- addr.sin_addr.s_addr=htonl(adres);
- addr.sin_port=htons(service);
-
- sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
- setsockopt(sock,SOL_SOCKET,SO_KEEPALIVE,&val_one,sizeof(val_one));
-
- if (DBG)
- {
- err=errno;
- fprintf(stderr,"socket: %i, errno: %i\n",sock,err);
- }
- if (sock==-1)
- {
- fprintf(stderr,"Error: cannot create socket!\n");
- return 4;
- }
-
- count=connect(sock,(struct sockaddr*)&addr,sizeof(addr));
- if (DBG)
- {
- err=errno;
- fprintf(stderr,"connect: %i, errno: %i\n",count,err);
- }
-
- if (count)
- {
- fprintf(stderr,"Error: connection failed!\n");
- return 5;
- }
-
- count=snprintf(buf,sizeof(buf),"%d , %d\n",rport,lport);
- if (count==-1) return 1;
- if (write(sock,buf,count)!=count) return 2;
-
- for (;;)
- {
- count=read(sock,buf,sizeof(buf)-1);
- if (count<=0) break;
- buf[count]=0;
- printf("%s",buf);
- fflush(stdout);
- }
-
- if (DBG) fprintf(stderr,"count = %d , errno = %d\n",count,errno);
- close(sock);
- return 0;
-}
-
+++ /dev/null
-ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.redhat.com/redhat/linux/6.2/en/os/i386/SRPMS/ldconfig-1.9.5-16.src.rpm
-
-diff -ru ldconfig-1999-02-21-prep-orig/ldconfig.c ldconfig-1999-02-21-prep/ldconfig.c
---- ldconfig-1999-02-21-prep-orig/ldconfig.c Fri Jun 29 21:06:47 2001
-+++ ldconfig-1999-02-21-prep/ldconfig.c Fri Jun 29 21:11:22 2001
-@@ -624,7 +624,7 @@
- break;
- case 'n':
- nodefault = 1; /* no default dirs */
-- nocache = 1;
-+ /* nocache = 1; * Lace */
- break;
- case 'N':
- nocache = 1; /* don't build cache */
-@@ -707,16 +707,20 @@
- {
- /* the lazy bum want's us to do all the work for him */
-
-+#if 0 /* Lace */
- /* don't cache dirs on the command line */
- int nocache_save = nocache;
- nocache = 1;
-+#endif
-
- /* OK, which directories should we do? */
- for (i = optind; i < argc; i++)
- scan_dir(argv[i]);
-
-+#if 0 /* Lace */
- /* restore the desired caching state */
- nocache = nocache_save;
-+#endif
-
- /* look ma, no defaults */
- if (!nodefault)
+++ /dev/null
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-\f
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We this
-license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- Another cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does insure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-\f
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-\f
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-\f
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-\f
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
+++ /dev/null
-/* Getopt for GNU.
- NOTE: getopt is now part of the C library, so if you don't know what
- "Keep this file name-space clean" means, talk to drepper@gnu.org
- before changing it!
-
- Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98
- Free Software Foundation, Inc.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-\f
-/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
- Ditto for AIX 3.2 and <stdlib.h>. */
-#ifndef _NO_PROTO
-# define _NO_PROTO
-#endif
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if !defined __STDC__ || !__STDC__
-/* This is a separate conditional since some stdc systems
- reject `defined (const)'. */
-# ifndef const
-# define const
-# endif
-#endif
-
-#include <stdio.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
- actually compiling the library itself. This code is part of the GNU C
- Library, but also included in many other GNU distributions. Compiling
- and linking in this code is a waste when using the GNU C library
- (especially if it is a shared library). Rather than having every GNU
- program understand `configure --with-gnu-libc' and omit the object files,
- it is simpler to just do this in the source for each such file. */
-
-#define GETOPT_INTERFACE_VERSION 2
-#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
-# include <gnu-versions.h>
-# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
-# define ELIDE_CODE
-# endif
-#endif
-
-#ifndef ELIDE_CODE
-
-
-/* This needs to come after some library #include
- to get __GNU_LIBRARY__ defined. */
-#ifdef __GNU_LIBRARY__
-/* Don't include stdlib.h for non-GNU C libraries because some of them
- contain conflicting prototypes for getopt. */
-# include <stdlib.h>
-# include <unistd.h>
-#endif /* GNU C library. */
-
-#ifdef VMS
-# include <unixlib.h>
-# if HAVE_STRING_H - 0
-# include <string.h>
-# endif
-#endif
-
-#ifndef _
-/* This is for other GNU distributions with internationalized messages.
- When compiling libc, the _ macro is predefined. */
-# ifdef HAVE_LIBINTL_H
-# include <libintl.h>
-# define _(msgid) gettext (msgid)
-# else
-# define _(msgid) (msgid)
-# endif
-#endif
-
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
- but it behaves differently for the user, since it allows the user
- to intersperse the options with the other arguments.
-
- As `getopt' works, it permutes the elements of ARGV so that,
- when it is done, all the options precede everything else. Thus
- all application programs are extended to handle flexible argument order.
-
- Setting the environment variable POSIXLY_CORRECT disables permutation.
- Then the behavior is completely standard.
-
- GNU application programs can use a third alternative mode in which
- they can distinguish the relative order of options and other arguments. */
-
-#include "getopt.h"
-
-/* For communication from `getopt' to the caller.
- When `getopt' finds an option that takes an argument,
- the argument value is returned here.
- Also, when `ordering' is RETURN_IN_ORDER,
- each non-option ARGV-element is returned here. */
-
-char *optarg = NULL;
-
-/* Index in ARGV of the next element to be scanned.
- This is used for communication to and from the caller
- and for communication between successive calls to `getopt'.
-
- On entry to `getopt', zero means this is the first call; initialize.
-
- When `getopt' returns -1, this is the index of the first of the
- non-option elements that the caller should itself scan.
-
- Otherwise, `optind' communicates from one call to the next
- how much of ARGV has been scanned so far. */
-
-/* 1003.2 says this must be 1 before any call. */
-int optind = 1;
-
-/* Formerly, initialization of getopt depended on optind==0, which
- causes problems with re-calling getopt as programs generally don't
- know that. */
-
-int __getopt_initialized = 0;
-
-/* The next char to be scanned in the option-element
- in which the last option character we returned was found.
- This allows us to pick up the scan where we left off.
-
- If this is zero, or a null string, it means resume the scan
- by advancing to the next ARGV-element. */
-
-static char *nextchar;
-
-/* Callers store zero here to inhibit the error message
- for unrecognized options. */
-
-int opterr = 1;
-
-/* Set to an option character which was unrecognized.
- This must be initialized on some systems to avoid linking in the
- system's own getopt implementation. */
-
-int optopt = '?';
-
-/* Describe how to deal with options that follow non-option ARGV-elements.
-
- If the caller did not specify anything,
- the default is REQUIRE_ORDER if the environment variable
- POSIXLY_CORRECT is defined, PERMUTE otherwise.
-
- REQUIRE_ORDER means don't recognize them as options;
- stop option processing when the first non-option is seen.
- This is what Unix does.
- This mode of operation is selected by either setting the environment
- variable POSIXLY_CORRECT, or using `+' as the first character
- of the list of option characters.
-
- PERMUTE is the default. We permute the contents of ARGV as we scan,
- so that eventually all the non-options are at the end. This allows options
- to be given in any order, even with programs that were not written to
- expect this.
-
- RETURN_IN_ORDER is an option available to programs that were written
- to expect options and other ARGV-elements in any order and that care about
- the ordering of the two. We describe each non-option ARGV-element
- as if it were the argument of an option with character code 1.
- Using `-' as the first character of the list of option characters
- selects this mode of operation.
-
- The special argument `--' forces an end of option-scanning regardless
- of the value of `ordering'. In the case of RETURN_IN_ORDER, only
- `--' can cause `getopt' to return -1 with `optind' != ARGC. */
-
-static enum
-{
- REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-} ordering;
-
-/* Value of POSIXLY_CORRECT environment variable. */
-static char *posixly_correct;
-\f
-#ifdef __GNU_LIBRARY__
-/* We want to avoid inclusion of string.h with non-GNU libraries
- because there are many ways it can cause trouble.
- On some systems, it contains special magic macros that don't work
- in GCC. */
-# include <string.h>
-# define my_index strchr
-#else
-
-# if HAVE_STRING_H
-# include <string.h>
-# else
-# include <strings.h>
-# endif
-
-/* Avoid depending on library functions or files
- whose names are inconsistent. */
-
-#ifndef getenv
-extern char *getenv ();
-#endif
-
-static char *
-my_index (str, chr)
- const char *str;
- int chr;
-{
- while (*str)
- {
- if (*str == chr)
- return (char *) str;
- str++;
- }
- return 0;
-}
-
-/* If using GCC, we can safely declare strlen this way.
- If not using GCC, it is ok not to declare it. */
-#ifdef __GNUC__
-/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
- That was relevant to code that was here before. */
-# if (!defined __STDC__ || !__STDC__) && !defined strlen
-/* gcc with -traditional declares the built-in strlen to return int,
- and has done so at least since version 2.4.5. -- rms. */
-extern int strlen (const char *);
-# endif /* not __STDC__ */
-#endif /* __GNUC__ */
-
-#endif /* not __GNU_LIBRARY__ */
-\f
-/* Handle permutation of arguments. */
-
-/* Describe the part of ARGV that contains non-options that have
- been skipped. `first_nonopt' is the index in ARGV of the first of them;
- `last_nonopt' is the index after the last of them. */
-
-static int first_nonopt;
-static int last_nonopt;
-
-#ifdef _LIBC
-/* Bash 2.0 gives us an environment variable containing flags
- indicating ARGV elements that should not be considered arguments. */
-
-/* Defined in getopt_init.c */
-extern char *__getopt_nonoption_flags;
-
-static int nonoption_flags_max_len;
-static int nonoption_flags_len;
-
-static int original_argc;
-static char *const *original_argv;
-
-/* Make sure the environment variable bash 2.0 puts in the environment
- is valid for the getopt call we must make sure that the ARGV passed
- to getopt is that one passed to the process. */
-static void
-__attribute__ ((unused))
-store_args_and_env (int argc, char *const *argv)
-{
- /* XXX This is no good solution. We should rather copy the args so
- that we can compare them later. But we must not use malloc(3). */
- original_argc = argc;
- original_argv = argv;
-}
-# ifdef text_set_element
-text_set_element (__libc_subinit, store_args_and_env);
-# endif /* text_set_element */
-
-# define SWAP_FLAGS(ch1, ch2) \
- if (nonoption_flags_len > 0) \
- { \
- char __tmp = __getopt_nonoption_flags[ch1]; \
- __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \
- __getopt_nonoption_flags[ch2] = __tmp; \
- }
-#else /* !_LIBC */
-# define SWAP_FLAGS(ch1, ch2)
-#endif /* _LIBC */
-
-/* Exchange two adjacent subsequences of ARGV.
- One subsequence is elements [first_nonopt,last_nonopt)
- which contains all the non-options that have been skipped so far.
- The other is elements [last_nonopt,optind), which contains all
- the options processed since those non-options were skipped.
-
- `first_nonopt' and `last_nonopt' are relocated so that they describe
- the new indices of the non-options in ARGV after they are moved. */
-
-#if defined __STDC__ && __STDC__
-static void exchange (char **);
-#endif
-
-static void
-exchange (argv)
- char **argv;
-{
- int bottom = first_nonopt;
- int middle = last_nonopt;
- int top = optind;
- char *tem;
-
- /* Exchange the shorter segment with the far end of the longer segment.
- That puts the shorter segment into the right place.
- It leaves the longer segment in the right place overall,
- but it consists of two parts that need to be swapped next. */
-
-#ifdef _LIBC
- /* First make sure the handling of the `__getopt_nonoption_flags'
- string can work normally. Our top argument must be in the range
- of the string. */
- if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len)
- {
- /* We must extend the array. The user plays games with us and
- presents new arguments. */
- char *new_str = malloc (top + 1);
- if (new_str == NULL)
- nonoption_flags_len = nonoption_flags_max_len = 0;
- else
- {
- memset (__mempcpy (new_str, __getopt_nonoption_flags,
- nonoption_flags_max_len),
- '\0', top + 1 - nonoption_flags_max_len);
- nonoption_flags_max_len = top + 1;
- __getopt_nonoption_flags = new_str;
- }
- }
-#endif
-
- while (top > middle && middle > bottom)
- {
- if (top - middle > middle - bottom)
- {
- /* Bottom segment is the short one. */
- int len = middle - bottom;
- register int i;
-
- /* Swap it with the top part of the top segment. */
- for (i = 0; i < len; i++)
- {
- tem = argv[bottom + i];
- argv[bottom + i] = argv[top - (middle - bottom) + i];
- argv[top - (middle - bottom) + i] = tem;
- SWAP_FLAGS (bottom + i, top - (middle - bottom) + i);
- }
- /* Exclude the moved bottom segment from further swapping. */
- top -= len;
- }
- else
- {
- /* Top segment is the short one. */
- int len = top - middle;
- register int i;
-
- /* Swap it with the bottom part of the bottom segment. */
- for (i = 0; i < len; i++)
- {
- tem = argv[bottom + i];
- argv[bottom + i] = argv[middle + i];
- argv[middle + i] = tem;
- SWAP_FLAGS (bottom + i, middle + i);
- }
- /* Exclude the moved top segment from further swapping. */
- bottom += len;
- }
- }
-
- /* Update records for the slots the non-options now occupy. */
-
- first_nonopt += (optind - last_nonopt);
- last_nonopt = optind;
-}
-
-/* Initialize the internal data when the first call is made. */
-
-#if defined __STDC__ && __STDC__
-static const char *_getopt_initialize (int, char *const *, const char *);
-#endif
-static const char *
-_getopt_initialize (argc, argv, optstring)
- int argc;
- char *const *argv;
- const char *optstring;
-{
- /* Start processing options with ARGV-element 1 (since ARGV-element 0
- is the program name); the sequence of previously skipped
- non-option ARGV-elements is empty. */
-
- first_nonopt = last_nonopt = optind;
-
- nextchar = NULL;
-
- posixly_correct = getenv ("POSIXLY_CORRECT");
-
- /* Determine how to handle the ordering of options and nonoptions. */
-
- if (optstring[0] == '-')
- {
- ordering = RETURN_IN_ORDER;
- ++optstring;
- }
- else if (optstring[0] == '+')
- {
- ordering = REQUIRE_ORDER;
- ++optstring;
- }
- else if (posixly_correct != NULL)
- ordering = REQUIRE_ORDER;
- else
- ordering = PERMUTE;
-
-#ifdef _LIBC
- if (posixly_correct == NULL
- && argc == original_argc && argv == original_argv)
- {
- if (nonoption_flags_max_len == 0)
- {
- if (__getopt_nonoption_flags == NULL
- || __getopt_nonoption_flags[0] == '\0')
- nonoption_flags_max_len = -1;
- else
- {
- const char *orig_str = __getopt_nonoption_flags;
- int len = nonoption_flags_max_len = strlen (orig_str);
- if (nonoption_flags_max_len < argc)
- nonoption_flags_max_len = argc;
- __getopt_nonoption_flags =
- (char *) malloc (nonoption_flags_max_len);
- if (__getopt_nonoption_flags == NULL)
- nonoption_flags_max_len = -1;
- else
- memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
- '\0', nonoption_flags_max_len - len);
- }
- }
- nonoption_flags_len = nonoption_flags_max_len;
- }
- else
- nonoption_flags_len = 0;
-#endif
-
- return optstring;
-}
-\f
-/* Scan elements of ARGV (whose length is ARGC) for option characters
- given in OPTSTRING.
-
- If an element of ARGV starts with '-', and is not exactly "-" or "--",
- then it is an option element. The characters of this element
- (aside from the initial '-') are option characters. If `getopt'
- is called repeatedly, it returns successively each of the option characters
- from each of the option elements.
-
- If `getopt' finds another option character, it returns that character,
- updating `optind' and `nextchar' so that the next call to `getopt' can
- resume the scan with the following option character or ARGV-element.
-
- If there are no more option characters, `getopt' returns -1.
- Then `optind' is the index in ARGV of the first ARGV-element
- that is not an option. (The ARGV-elements have been permuted
- so that those that are not options now come last.)
-
- OPTSTRING is a string containing the legitimate option characters.
- If an option character is seen that is not listed in OPTSTRING,
- return '?' after printing an error message. If you set `opterr' to
- zero, the error message is suppressed but we still return '?'.
-
- If a char in OPTSTRING is followed by a colon, that means it wants an arg,
- so the following text in the same ARGV-element, or the text of the following
- ARGV-element, is returned in `optarg'. Two colons mean an option that
- wants an optional arg; if there is text in the current ARGV-element,
- it is returned in `optarg', otherwise `optarg' is set to zero.
-
- If OPTSTRING starts with `-' or `+', it requests different methods of
- handling the non-option ARGV-elements.
- See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
-
- Long-named options begin with `--' instead of `-'.
- Their names may be abbreviated as long as the abbreviation is unique
- or is an exact match for some defined option. If they have an
- argument, it follows the option name in the same ARGV-element, separated
- from the option name by a `=', or else the in next ARGV-element.
- When `getopt' finds a long-named option, it returns 0 if that option's
- `flag' field is nonzero, the value of the option's `val' field
- if the `flag' field is zero.
-
- The elements of ARGV aren't really const, because we permute them.
- But we pretend they're const in the prototype to be compatible
- with other systems.
-
- LONGOPTS is a vector of `struct option' terminated by an
- element containing a name which is zero.
-
- LONGIND returns the index in LONGOPT of the long-named option found.
- It is only valid when a long-named option has been found by the most
- recent call.
-
- If LONG_ONLY is nonzero, '-' as well as '--' can introduce
- long-named options. */
-
-int
-_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
- int argc;
- char *const *argv;
- const char *optstring;
- const struct option *longopts;
- int *longind;
- int long_only;
-{
- optarg = NULL;
-
- if (optind == 0 || !__getopt_initialized)
- {
- if (optind == 0)
- optind = 1; /* Don't scan ARGV[0], the program name. */
- optstring = _getopt_initialize (argc, argv, optstring);
- __getopt_initialized = 1;
- }
-
- /* Test whether ARGV[optind] points to a non-option argument.
- Either it does not have option syntax, or there is an environment flag
- from the shell indicating it is not an option. The later information
- is only used when the used in the GNU libc. */
-#ifdef _LIBC
-# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
- || (optind < nonoption_flags_len \
- && __getopt_nonoption_flags[optind] == '1'))
-#else
-# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
-#endif
-
- if (nextchar == NULL || *nextchar == '\0')
- {
- /* Advance to the next ARGV-element. */
-
- /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
- moved back by the user (who may also have changed the arguments). */
- if (last_nonopt > optind)
- last_nonopt = optind;
- if (first_nonopt > optind)
- first_nonopt = optind;
-
- if (ordering == PERMUTE)
- {
- /* If we have just processed some options following some non-options,
- exchange them so that the options come first. */
-
- if (first_nonopt != last_nonopt && last_nonopt != optind)
- exchange ((char **) argv);
- else if (last_nonopt != optind)
- first_nonopt = optind;
-
- /* Skip any additional non-options
- and extend the range of non-options previously skipped. */
-
- while (optind < argc && NONOPTION_P)
- optind++;
- last_nonopt = optind;
- }
-
- /* The special ARGV-element `--' means premature end of options.
- Skip it like a null option,
- then exchange with previous non-options as if it were an option,
- then skip everything else like a non-option. */
-
- if (optind != argc && !strcmp (argv[optind], "--"))
- {
- optind++;
-
- if (first_nonopt != last_nonopt && last_nonopt != optind)
- exchange ((char **) argv);
- else if (first_nonopt == last_nonopt)
- first_nonopt = optind;
- last_nonopt = argc;
-
- optind = argc;
- }
-
- /* If we have done all the ARGV-elements, stop the scan
- and back over any non-options that we skipped and permuted. */
-
- if (optind == argc)
- {
- /* Set the next-arg-index to point at the non-options
- that we previously skipped, so the caller will digest them. */
- if (first_nonopt != last_nonopt)
- optind = first_nonopt;
- return -1;
- }
-
- /* If we have come to a non-option and did not permute it,
- either stop the scan or describe it to the caller and pass it by. */
-
- if (NONOPTION_P)
- {
- if (ordering == REQUIRE_ORDER)
- return -1;
- optarg = argv[optind++];
- return 1;
- }
-
- /* We have found another option-ARGV-element.
- Skip the initial punctuation. */
-
- nextchar = (argv[optind] + 1
- + (longopts != NULL && argv[optind][1] == '-'));
- }
-
- /* Decode the current option-ARGV-element. */
-
- /* Check whether the ARGV-element is a long option.
-
- If long_only and the ARGV-element has the form "-f", where f is
- a valid short option, don't consider it an abbreviated form of
- a long option that starts with f. Otherwise there would be no
- way to give the -f short option.
-
- On the other hand, if there's a long option "fubar" and
- the ARGV-element is "-fu", do consider that an abbreviation of
- the long option, just like "--fu", and not "-f" with arg "u".
-
- This distinction seems to be the most useful approach. */
-
- if (longopts != NULL
- && (argv[optind][1] == '-'
- || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
- {
- char *nameend;
- const struct option *p;
- const struct option *pfound = NULL;
- int exact = 0;
- int ambig = 0;
- int indfound = -1;
- int option_index;
-
- for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
- /* Do nothing. */ ;
-
- /* Test all long options for either exact match
- or abbreviated matches. */
- for (p = longopts, option_index = 0; p->name; p++, option_index++)
- if (!strncmp (p->name, nextchar, nameend - nextchar))
- {
- if ((unsigned int) (nameend - nextchar)
- == (unsigned int) strlen (p->name))
- {
- /* Exact match found. */
- pfound = p;
- indfound = option_index;
- exact = 1;
- break;
- }
- else if (pfound == NULL)
- {
- /* First nonexact match found. */
- pfound = p;
- indfound = option_index;
- }
- else
- /* Second or later nonexact match found. */
- ambig = 1;
- }
-
- if (ambig && !exact)
- {
- if (opterr)
- fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
- argv[0], argv[optind]);
- nextchar += strlen (nextchar);
- optind++;
- optopt = 0;
- return '?';
- }
-
- if (pfound != NULL)
- {
- option_index = indfound;
- optind++;
- if (*nameend)
- {
- /* Don't test has_arg with >, because some C compilers don't
- allow it to be used on enums. */
- if (pfound->has_arg)
- optarg = nameend + 1;
- else
- {
- if (opterr)
- {
- if (argv[optind - 1][1] == '-')
- /* --option */
- fprintf (stderr,
- _("%s: option `--%s' doesn't allow an argument\n"),
- argv[0], pfound->name);
- else
- /* +option or -option */
- fprintf (stderr,
- _("%s: option `%c%s' doesn't allow an argument\n"),
- argv[0], argv[optind - 1][0], pfound->name);
- }
-
- nextchar += strlen (nextchar);
-
- optopt = pfound->val;
- return '?';
- }
- }
- else if (pfound->has_arg == 1)
- {
- if (optind < argc)
- optarg = argv[optind++];
- else
- {
- if (opterr)
- fprintf (stderr,
- _("%s: option `%s' requires an argument\n"),
- argv[0], argv[optind - 1]);
- nextchar += strlen (nextchar);
- optopt = pfound->val;
- return optstring[0] == ':' ? ':' : '?';
- }
- }
- nextchar += strlen (nextchar);
- if (longind != NULL)
- *longind = option_index;
- if (pfound->flag)
- {
- *(pfound->flag) = pfound->val;
- return 0;
- }
- return pfound->val;
- }
-
- /* Can't find it as a long option. If this is not getopt_long_only,
- or the option starts with '--' or is not a valid short
- option, then it's an error.
- Otherwise interpret it as a short option. */
- if (!long_only || argv[optind][1] == '-'
- || my_index (optstring, *nextchar) == NULL)
- {
- if (opterr)
- {
- if (argv[optind][1] == '-')
- /* --option */
- fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
- argv[0], nextchar);
- else
- /* +option or -option */
- fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
- argv[0], argv[optind][0], nextchar);
- }
- nextchar = (char *) "";
- optind++;
- optopt = 0;
- return '?';
- }
- }
-
- /* Look at and handle the next short option-character. */
-
- {
- char c = *nextchar++;
- char *temp = my_index (optstring, c);
-
- /* Increment `optind' when we start to process its last character. */
- if (*nextchar == '\0')
- ++optind;
-
- if (temp == NULL || c == ':')
- {
- if (opterr)
- {
- if (posixly_correct)
- /* 1003.2 specifies the format of this message. */
- fprintf (stderr, _("%s: illegal option -- %c\n"),
- argv[0], c);
- else
- fprintf (stderr, _("%s: invalid option -- %c\n"),
- argv[0], c);
- }
- optopt = c;
- return '?';
- }
- /* Convenience. Treat POSIX -W foo same as long option --foo */
- if (temp[0] == 'W' && temp[1] == ';')
- {
- char *nameend;
- const struct option *p;
- const struct option *pfound = NULL;
- int exact = 0;
- int ambig = 0;
- int indfound = 0;
- int option_index;
-
- /* This is an option that requires an argument. */
- if (*nextchar != '\0')
- {
- optarg = nextchar;
- /* If we end this ARGV-element by taking the rest as an arg,
- we must advance to the next element now. */
- optind++;
- }
- else if (optind == argc)
- {
- if (opterr)
- {
- /* 1003.2 specifies the format of this message. */
- fprintf (stderr, _("%s: option requires an argument -- %c\n"),
- argv[0], c);
- }
- optopt = c;
- if (optstring[0] == ':')
- c = ':';
- else
- c = '?';
- return c;
- }
- else
- /* We already incremented `optind' once;
- increment it again when taking next ARGV-elt as argument. */
- optarg = argv[optind++];
-
- /* optarg is now the argument, see if it's in the
- table of longopts. */
-
- for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
- /* Do nothing. */ ;
-
- /* Test all long options for either exact match
- or abbreviated matches. */
- for (p = longopts, option_index = 0; p->name; p++, option_index++)
- if (!strncmp (p->name, nextchar, nameend - nextchar))
- {
- if ((unsigned int) (nameend - nextchar) == strlen (p->name))
- {
- /* Exact match found. */
- pfound = p;
- indfound = option_index;
- exact = 1;
- break;
- }
- else if (pfound == NULL)
- {
- /* First nonexact match found. */
- pfound = p;
- indfound = option_index;
- }
- else
- /* Second or later nonexact match found. */
- ambig = 1;
- }
- if (ambig && !exact)
- {
- if (opterr)
- fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
- argv[0], argv[optind]);
- nextchar += strlen (nextchar);
- optind++;
- return '?';
- }
- if (pfound != NULL)
- {
- option_index = indfound;
- if (*nameend)
- {
- /* Don't test has_arg with >, because some C compilers don't
- allow it to be used on enums. */
- if (pfound->has_arg)
- optarg = nameend + 1;
- else
- {
- if (opterr)
- fprintf (stderr, _("\
-%s: option `-W %s' doesn't allow an argument\n"),
- argv[0], pfound->name);
-
- nextchar += strlen (nextchar);
- return '?';
- }
- }
- else if (pfound->has_arg == 1)
- {
- if (optind < argc)
- optarg = argv[optind++];
- else
- {
- if (opterr)
- fprintf (stderr,
- _("%s: option `%s' requires an argument\n"),
- argv[0], argv[optind - 1]);
- nextchar += strlen (nextchar);
- return optstring[0] == ':' ? ':' : '?';
- }
- }
- nextchar += strlen (nextchar);
- if (longind != NULL)
- *longind = option_index;
- if (pfound->flag)
- {
- *(pfound->flag) = pfound->val;
- return 0;
- }
- return pfound->val;
- }
- nextchar = NULL;
- return 'W'; /* Let the application handle it. */
- }
- if (temp[1] == ':')
- {
- if (temp[2] == ':')
- {
- /* This is an option that accepts an argument optionally. */
- if (*nextchar != '\0')
- {
- optarg = nextchar;
- optind++;
- }
- else
- optarg = NULL;
- nextchar = NULL;
- }
- else
- {
- /* This is an option that requires an argument. */
- if (*nextchar != '\0')
- {
- optarg = nextchar;
- /* If we end this ARGV-element by taking the rest as an arg,
- we must advance to the next element now. */
- optind++;
- }
- else if (optind == argc)
- {
- if (opterr)
- {
- /* 1003.2 specifies the format of this message. */
- fprintf (stderr,
- _("%s: option requires an argument -- %c\n"),
- argv[0], c);
- }
- optopt = c;
- if (optstring[0] == ':')
- c = ':';
- else
- c = '?';
- }
- else
- /* We already incremented `optind' once;
- increment it again when taking next ARGV-elt as argument. */
- optarg = argv[optind++];
- nextchar = NULL;
- }
- }
- return c;
- }
-}
-
-int
-getopt (argc, argv, optstring)
- int argc;
- char *const *argv;
- const char *optstring;
-{
- return _getopt_internal (argc, argv, optstring,
- (const struct option *) 0,
- (int *) 0,
- 0);
-}
-
-#endif /* Not ELIDE_CODE. */
-\f
-#ifdef TEST
-
-/* Compile with -DTEST to make an executable for use in testing
- the above definition of `getopt'. */
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- int c;
- int digit_optind = 0;
-
- while (1)
- {
- int this_option_optind = optind ? optind : 1;
-
- c = getopt (argc, argv, "abc:d:0123456789");
- if (c == -1)
- break;
-
- switch (c)
- {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if (digit_optind != 0 && digit_optind != this_option_optind)
- printf ("digits occur in two different argv-elements.\n");
- digit_optind = this_option_optind;
- printf ("option %c\n", c);
- break;
-
- case 'a':
- printf ("option a\n");
- break;
-
- case 'b':
- printf ("option b\n");
- break;
-
- case 'c':
- printf ("option c with value `%s'\n", optarg);
- break;
-
- case '?':
- break;
-
- default:
- printf ("?? getopt returned character code 0%o ??\n", c);
- }
- }
-
- if (optind < argc)
- {
- printf ("non-option ARGV-elements: ");
- while (optind < argc)
- printf ("%s ", argv[optind++]);
- printf ("\n");
- }
-
- exit (0);
-}
-
-#endif /* TEST */
+++ /dev/null
-/* Declarations for getopt.
- Copyright (C) 1989,90,91,92,93,94,96,97,98 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#ifndef _GETOPT_H
-
-#ifndef __need_getopt
-# define _GETOPT_H 1
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* For communication from `getopt' to the caller.
- When `getopt' finds an option that takes an argument,
- the argument value is returned here.
- Also, when `ordering' is RETURN_IN_ORDER,
- each non-option ARGV-element is returned here. */
-
-extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
- This is used for communication to and from the caller
- and for communication between successive calls to `getopt'.
-
- On entry to `getopt', zero means this is the first call; initialize.
-
- When `getopt' returns -1, this is the index of the first of the
- non-option elements that the caller should itself scan.
-
- Otherwise, `optind' communicates from one call to the next
- how much of ARGV has been scanned so far. */
-
-extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
- for unrecognized options. */
-
-extern int opterr;
-
-/* Set to an option character which was unrecognized. */
-
-extern int optopt;
-
-#ifndef __need_getopt
-/* Describe the long-named options requested by the application.
- The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
- of `struct option' terminated by an element containing a name which is
- zero.
-
- The field `has_arg' is:
- no_argument (or 0) if the option does not take an argument,
- required_argument (or 1) if the option requires an argument,
- optional_argument (or 2) if the option takes an optional argument.
-
- If the field `flag' is not NULL, it points to a variable that is set
- to the value given in the field `val' when the option is found, but
- left unchanged if the option is not found.
-
- To have a long-named option do something other than set an `int' to
- a compiled-in constant, such as set a value from `optarg', set the
- option's `flag' field to zero and its `val' field to a nonzero
- value (the equivalent single-letter option character, if there is
- one). For long options that have a zero `flag' field, `getopt'
- returns the contents of the `val' field. */
-
-struct option
-{
-# if defined __STDC__ && __STDC__
- const char *name;
-# else
- char *name;
-# endif
- /* has_arg can't be an enum because some compilers complain about
- type mismatches in all the code that assumes it is an int. */
- int has_arg;
- int *flag;
- int val;
-};
-
-/* Names for the values of the `has_arg' field of `struct option'. */
-
-# define no_argument 0
-# define required_argument 1
-# define optional_argument 2
-#endif /* need getopt */
-
-
-/* Get definitions and prototypes for functions to process the
- arguments in ARGV (ARGC of them, minus the program name) for
- options given in OPTS.
-
- Return the option character from OPTS just read. Return -1 when
- there are no more options. For unrecognized options, or options
- missing arguments, `optopt' is set to the option letter, and '?' is
- returned.
-
- The OPTS string is a list of characters which are recognized option
- letters, optionally followed by colons, specifying that that letter
- takes an argument, to be placed in `optarg'.
-
- If a letter in OPTS is followed by two colons, its argument is
- optional. This behavior is specific to the GNU `getopt'.
-
- The argument `--' causes premature termination of argument
- scanning, explicitly telling `getopt' that there are no more
- options.
-
- If OPTS begins with `--', then non-option arguments are treated as
- arguments to the option '\0'. This behavior is specific to the GNU
- `getopt'. */
-
-#if defined __STDC__ && __STDC__
-# ifdef __GNU_LIBRARY__
-/* Many other libraries have conflicting prototypes for getopt, with
- differences in the consts, in stdlib.h. To avoid compilation
- errors, only prototype getopt for the GNU C library. */
-extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
-# else /* not __GNU_LIBRARY__ */
-extern int getopt ();
-# endif /* __GNU_LIBRARY__ */
-
-# ifndef __need_getopt
-extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts,
- const struct option *__longopts, int *__longind);
-extern int getopt_long_only (int __argc, char *const *__argv,
- const char *__shortopts,
- const struct option *__longopts, int *__longind);
-
-/* Internal only. Users should not call this directly. */
-extern int _getopt_internal (int __argc, char *const *__argv,
- const char *__shortopts,
- const struct option *__longopts, int *__longind,
- int __long_only);
-# endif
-#else /* not __STDC__ */
-extern int getopt ();
-# ifndef __need_getopt
-extern int getopt_long ();
-extern int getopt_long_only ();
-
-extern int _getopt_internal ();
-# endif
-#endif /* __STDC__ */
-
-#ifdef __cplusplus
-}
-#endif
-
-/* Make sure we later can get all the definitions and declarations. */
-#undef __need_getopt
-
-#endif /* getopt.h */
+++ /dev/null
-/* getopt_long and getopt_long_only entry points for GNU getopt.
- Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
- Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-\f
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "getopt.h"
-
-#if !defined __STDC__ || !__STDC__
-/* This is a separate conditional since some stdc systems
- reject `defined (const)'. */
-#ifndef const
-#define const
-#endif
-#endif
-
-#include <stdio.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
- actually compiling the library itself. This code is part of the GNU C
- Library, but also included in many other GNU distributions. Compiling
- and linking in this code is a waste when using the GNU C library
- (especially if it is a shared library). Rather than having every GNU
- program understand `configure --with-gnu-libc' and omit the object files,
- it is simpler to just do this in the source for each such file. */
-
-#define GETOPT_INTERFACE_VERSION 2
-#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
-#include <gnu-versions.h>
-#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
-#define ELIDE_CODE
-#endif
-#endif
-
-#ifndef ELIDE_CODE
-
-
-/* This needs to come after some library #include
- to get __GNU_LIBRARY__ defined. */
-#ifdef __GNU_LIBRARY__
-#include <stdlib.h>
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-int
-getopt_long (argc, argv, options, long_options, opt_index)
- int argc;
- char *const *argv;
- const char *options;
- const struct option *long_options;
- int *opt_index;
-{
- return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
-}
-
-/* Like getopt_long, but '-' as well as '--' can indicate a long option.
- If an option that starts with '-' (not '--') doesn't match a long option,
- but does match a short option, it is parsed as a short option
- instead. */
-
-int
-getopt_long_only (argc, argv, options, long_options, opt_index)
- int argc;
- char *const *argv;
- const char *options;
- const struct option *long_options;
- int *opt_index;
-{
- return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
-}
-
-
-#endif /* Not ELIDE_CODE. */
-\f
-#ifdef TEST
-
-#include <stdio.h>
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- int c;
- int digit_optind = 0;
-
- while (1)
- {
- int this_option_optind = optind ? optind : 1;
- int option_index = 0;
- static struct option long_options[] =
- {
- {"add", 1, 0, 0},
- {"append", 0, 0, 0},
- {"delete", 1, 0, 0},
- {"verbose", 0, 0, 0},
- {"create", 0, 0, 0},
- {"file", 1, 0, 0},
- {0, 0, 0, 0}
- };
-
- c = getopt_long (argc, argv, "abc:d:0123456789",
- long_options, &option_index);
- if (c == -1)
- break;
-
- switch (c)
- {
- case 0:
- printf ("option %s", long_options[option_index].name);
- if (optarg)
- printf (" with arg %s", optarg);
- printf ("\n");
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if (digit_optind != 0 && digit_optind != this_option_optind)
- printf ("digits occur in two different argv-elements.\n");
- digit_optind = this_option_optind;
- printf ("option %c\n", c);
- break;
-
- case 'a':
- printf ("option a\n");
- break;
-
- case 'b':
- printf ("option b\n");
- break;
-
- case 'c':
- printf ("option c with value `%s'\n", optarg);
- break;
-
- case 'd':
- printf ("option d with value `%s'\n", optarg);
- break;
-
- case '?':
- break;
-
- default:
- printf ("?? getopt returned character code 0%o ??\n", c);
- }
- }
-
- if (optind < argc)
- {
- printf ("non-option ARGV-elements: ");
- while (optind < argc)
- printf ("%s ", argv[optind++]);
- printf ("\n");
- }
-
- exit (0);
-}
-
-#endif /* TEST */
+++ /dev/null
-dnl See whether we need a declaration for a function.
-dnl GCC_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES])
-AC_DEFUN(GCC_NEED_DECLARATION,
-[AC_MSG_CHECKING([whether $1 must be declared])
-AC_CACHE_VAL(gcc_cv_decl_needed_$1,
-[AC_TRY_COMPILE([
-#include <stdio.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-$2],
-[char *(*pfn) = (char *(*)) $1],
-eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")])
-if eval "test \"`echo '$gcc_cv_decl_needed_'$1`\" = yes"; then
- AC_MSG_RESULT(yes)
- gcc_need_declarations="$gcc_need_declarations $1"
- gcc_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- AC_DEFINE_UNQUOTED($gcc_tr_decl)
-else
- AC_MSG_RESULT(no)
-fi
-])dnl
-
-dnl Check multiple functions to see whether each needs a declaration.
-dnl GCC_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES])
-AC_DEFUN(GCC_NEED_DECLARATIONS,
-[for ac_func in $1
-do
-GCC_NEED_DECLARATION($ac_func, $2)
-done
-]
-)
+++ /dev/null
-#include "config.h"
-#ifndef lint
-static char rcsid[] ATTR_UNUSED = "$Id$";
-#endif
-
-/* This part of code is a public domain */
-
-/* CONFORMING TO SVID 3, BSD 4.3, ISO 9899 */
-
-void *memmove(void *dest, const void *src, size_t n)
-{
-char *cdest,*csrc;
-
- if (dest==src || !n) return;
- cdest=dest; csrc=src;
- if (dest<src) {
- while (n--) *cdest++=*csrc++;
- } else {
- cdest+=n; csrc+=n;
- while (n--) *--cdest=*--csrc;
- }
-}
+++ /dev/null
-#include "config.h"
-#ifndef lint
-static char rcsid[] ATTR_UNUSED = "$Id$";
-#endif
-
-/* This part of code is a public domain */
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-/* CONFORMING TO SVID 3, BSD 4.3 */
-
-char *strdup(const char *s)
-{
-size_t l;
-char *d;
-
- if (!(d=malloc(l=strlen(s)+1))) return(NULL);
- return memcpy(d,s,l);
-}
+++ /dev/null
-#include "config.h"
-#ifndef lint
-static char rcsid[] ATTR_UNUSED = "$Id$";
-#endif
-
-/* This part of code is a public domain */
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-/* CONFORMING TO BSD 4.3 */
-
-void usleep(unsigned long usec)
-{
-struct timeval tv;
-
- tv.tv_sec =usec/1000000;
- tv.tv_usec=usec%1000000;
- select(0,NULL,NULL,NULL,&tv);
-}
+++ /dev/null
-#include <stdlib.h>
-#include <syslog.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-extern const char **environ;
-
-
-#define ZONE "kratochvil.vellum.cz"
-
-#define SETUID 0 /* user UID */
-#define SETGID 0 /* group GID */
-#define PERMITTED_ENV_LIST "PWD"
-#define EXEC_PATHNAME "/usr/sbin/ndc"
-#define EXEC_ARGV "/usr/sbin/ndc","reload",ZONE,NULL
-
-
-#ifndef G_GNUC_NORETURN
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
-#define G_GNUC_NORETURN __attribute__((noreturn))
-#else /* !__GNUC__ */
-#define G_GNUC_NORETURN
-#endif /* !__GNUC__ */
-#endif /* !G_GNUC_NORETURN */
-
-#define EXITLOG(msg...) do {\
- openlog("pserverchroot",LOG_PID,LOG_DAEMON); \
- syslog(LOG_CRIT,msg); \
- closelog(); \
- exit(EXIT_FAILURE); \
- } while (0)
-
-#define LENGTH(x) (sizeof((x))/sizeof(*(x)))
-
-#define FUNCCHK(funcname,args...) do { \
- if (errno=0,funcname(args)) \
- funcfail( #funcname ); \
- } while (0)
-
-static void funcfail(const char *funcname) G_GNUC_NORETURN;
-static void funcfail(const char *funcname)
-{
- EXITLOG("Unable to %s(2): %s",funcname,strerror(errno));
-}
-
-int main(int argc,char **argv)
-{
-int total=0;
-const char *allowed[]={ PERMITTED_ENV_LIST };
-const char **allp,**envp;
-char *dup=NULL,*s;
-
-retry:
- for (envp=environ;*envp;envp++) {
- if (dup) free(dup);
- dup=strdup(*envp);
- if ((s=strchr(dup,'='))) *s='\0';
- for (allp=allowed;allp<allowed+LENGTH(allowed);allp++)
- if (!strcmp(dup,*allp)) goto ok;
- if (total++>1000)
- EXITLOG("Unable to clean environment for 'ndc': %s",*envp);
- unsetenv(dup);
- goto retry;
-ok:;
- }
- FUNCCHK(setenv,"PATH","/usr/bin",1);
- FUNCCHK(chdir,"/");
- FUNCCHK(setgid,SETGID);
- FUNCCHK(setuid,SETUID);
- errno=0,execl(EXEC_PATHNAME,EXEC_ARGV);
- funcfail("execl");
-}
+++ /dev/null
-#include <stdlib.h>
-#include <syslog.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-extern const char **environ;
-
-
-#define SETUID 554 /* "pserver" user UID */
-#define SETGID 554 /* "pserver" group GID */
-#define PERMITTED_ENV_LIST "PWD"
-#define EXEC_PATHNAME "/usr/bin/cvs"
-
-
-#ifndef G_GNUC_NORETURN
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
-#define G_GNUC_NORETURN __attribute__((noreturn))
-#else /* !__GNUC__ */
-#define G_GNUC_NORETURN
-#endif /* !__GNUC__ */
-#endif /* !G_GNUC_NORETURN */
-
-#define EXITLOG(msg...) do {\
- openlog("pserverchroot",LOG_PID,LOG_DAEMON); \
- syslog(LOG_CRIT,msg); \
- closelog(); \
- exit(EXIT_FAILURE); \
- } while (0)
-
-#define LENGTH(x) (sizeof((x))/sizeof(*(x)))
-
-#define FUNCCHK(funcname,args...) do { \
- if (errno=0,funcname(args)) \
- funcfail( #funcname ); \
- } while (0)
-
-static void funcfail(const char *funcname) G_GNUC_NORETURN;
-static void funcfail(const char *funcname)
-{
- EXITLOG("Unable to %s(2): %s",funcname,strerror(errno));
-}
-
-int main(int argc,char **argv)
-{
-int total=0;
-const char *allowed[]={ PERMITTED_ENV_LIST };
-const char **allp,**envp;
-char *dup=NULL,*s;
-
-retry:
- for (envp=environ;*envp;envp++) {
- if (dup) free(dup);
- dup=strdup(*envp);
- if ((s=strchr(dup,'='))) *s='\0';
- for (allp=allowed;allp<allowed+LENGTH(allowed);allp++)
- if (!strcmp(dup,*allp)) goto ok;
- if (total++>1000)
- EXITLOG("Unable to clean environment for CVS pserver: %s",*envp);
- unsetenv(dup);
- goto retry;
-ok:;
- }
- FUNCCHK(setenv,"PATH","/usr/bin",1);
- FUNCCHK(chroot,"/home/short/pserver");
- FUNCCHK(chdir,"/");
- FUNCCHK(setgid,SETGID);
- FUNCCHK(setuid,SETUID);
- if (!getuid() || !geteuid() || !getgid() || !getegid())
- EXITLOG("Privileges NOT dropped!: uid=%d,euid=%d,gid=%d,egid=%d",
- getuid(),geteuid(),getgid(),getegid());
- errno=0,execv(EXEC_PATHNAME,argv);
- funcfail("execv");
-}
+++ /dev/null
-BUILD
-RPMS
+++ /dev/null
-cvs-1.11-3:
-cvs-1.10-tmprace.patch
-cvs-1.10.7-fixinfo.patch
-cvs-1.10.7-krb5-1.1.1.patch
-cvs-1.10.8-errno.patch
-cvs-1.10.8-krb4.patch
-cvs-1.10.8-zlib.patch
-cvs-1.11-existence.patch
-cvs-1.11-security.patch
-cvs-1.11.tar.gz
-
-glibc-2.2.2-10:
-glibc-2.2.2.tar.bz2
-glibc-kernel-2.4.patch
-
+++ /dev/null
-diff -ru cvs-1.11-orig/src/options.h.in cvs-1.11/src/options.h.in
---- cvs-1.11-orig/src/options.h.in Wed Jan 27 23:58:14 1999
-+++ cvs-1.11/src/options.h.in Fri Aug 31 10:31:37 2001
-@@ -136,7 +136,7 @@
- * the lines below.
- */
- #ifndef CVS_BADROOT
--#define CVS_BADROOT
-+/*#define CVS_BADROOT*/
- #endif
-
- /* Define this to enable the SETXID support. The way to use this is
+++ /dev/null
-diff -ru cvs-1.11-prep/src/options.h.in cvs-1.11/src/options.h.in
---- cvs-1.11-prep/src/options.h.in Wed Jan 27 23:58:14 1999
-+++ cvs-1.11/src/options.h.in Wed Sep 26 16:34:25 2001
-@@ -63,7 +63,7 @@
- * octal number.
- */
- #ifndef UMASK_DFLT
--#define UMASK_DFLT 002
-+#define UMASK_DFLT 022
- #endif
-
- /*
+++ /dev/null
-%define cvsbase 1.11.1
-%define cvspatch p1
-Summary: A version control system.
-Name: cvs
-Version: %{cvsbase}%{cvspatch}
-Release: 3
-License: GPL
-Group: Development/Tools
-Source: ftp://ftp.cvshome.org/pub/cvs-%{cvsbase}/cvs-%{version}.tar.gz
-URL: http://www.cvshome.org/
-Patch0: cvs-1.11.1p1-mktemp.patch
-Patch1: cvs-1.11.1p1-krb4.patch
-Patch2: cvs-1.11.1p1-automake.patch
-Patch3: cvs-1.11.1p1-sockaddr.patch
-Patch4: cvs-1.11.1p1-authserver.patch
-Patch5: cvs-1.11.1p1-cvspass.patch
-Patch6: cvs-1.11.1p1-bs.patch
-Prereq: /sbin/install-info
-Prefix: %{_prefix}
-Buildroot: %{_tmppath}/%{name}-root
-BuildPreReq: autoconf, automake, libtool, zlib-devel
-%{!?nokerberos:Requires: krb5-libs}
-%{!?nokerberos:BuildPrereq: krb5-devel}
-
-%description
-CVS (Concurrent Version System) is a version control system that can
-record the history of your files (usually, but not always, source
-code). CVS only stores the differences between versions, instead of
-every version of every file you have ever created. CVS also keeps a log
-of who, when, and why changes occurred.
-
-CVS is very helpful for managing releases and controlling the
-concurrent editing of source files among multiple authors. Instead of
-providing version control for a collection of files in a single
-directory, CVS provides version control for a hierarchical collection
-of directories consisting of revision controlled files. These
-directories and files can then be combined together to form a software
-release.
-
-%prep
-%setup -q
-%patch0 -p1 -b .mktemp
-%patch1 -p1 -b .krb4
-%patch2 -p1 -b .automake
-%patch3 -p1 -b .sockaddr
-%patch4 -p1 -b .authserver
-%patch5 -p1 -b .cvspass
-%patch6 -p1 -b .bs
-aclocal
-automake
-autoconf
-
-%build
-%{!?nokerberos: CPPFLAGS="-I/usr/kerberos/include"; export CPPFLAGS}
-%{!?nokerberos: CFLAGS="-I/usr/kerberos/include $RPM_OPT_FLAGS"; export CFLAGS}
-%{!?nokerberos: LIBS="-L/usr/kerberos/lib -lkrb4 -ldes425 -lk5crypto -lcom_err"; export LIBS}
-%configure \
-%{!?nokerberos: --with-gssapi=/usr/kerberos --with-krb4=/usr/kerberos --enable-encryption}
-
-make
-if [ `id -u` -ne 0 ] ; then
- make check
-fi
-
-%install
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
-%{makeinstall}
-# forcefully compress the info pages so that install-info will work properly
-# in the %%post
-gzip $RPM_BUILD_ROOT/%{_infodir}/cvs* || true
-
-%clean
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
-
-%post
-/sbin/install-info /%{_infodir}/cvs.info.gz /%{_infodir}/dir
-/sbin/install-info /%{_infodir}/cvsclient.info.gz /%{_infodir}/dir
-
-%preun
-if [ $1 = 0 ]; then
- /sbin/install-info --delete /%{_infodir}/cvs.info.gz /%{_infodir}/dir
- /sbin/install-info --delete /%{_infodir}/cvsclient.info.gz /%{_infodir}/dir
-fi
-
-%files
-%defattr(-,root,root)
-%doc AUTHORS BUGS FAQ MINOR-BUGS NEWS PROJECTS TODO README
-%doc doc/*.ps
-%{_bindir}/*
-%{_mandir}/*/*
-%{_infodir}/*.info*
-%{_datadir}/%{name}
-
-%changelog
-* Tue Jul 31 2001 Bernhard Rosenkraenzer <bero@redhat.com> 1.11.1p1-3
-- Fix up initial cvs login (#47457)
-- Bring back the leading newline at the beginning of commit messages
- "a" is one key less than "O". ;)
-- Fix build in the current build system
-
-* Mon Jun 25 2001 Bill Nottingham <notting@redhat.com>
-- don't own /usr/share/info/dir
-
-* Fri Jun 22 2001 Nalin Dahyabhai <nalin@redhat.com>
-- fix the files list
-
-* Mon Jun 18 2001 Nalin Dahyabhai <nalin@redhat.com>
-- update to 1.11.1p1
-- drop no-longer-necessary patches
-- use bundled zlib, because it's apparently not the same as the system zlib
-- run the test suite in the build phase
-- drop explicit Requires: on perl (RPM will catch the interpreter req)
-
-* Mon Jan 29 2001 Nalin Dahyabhai <nalin@redhat.com>
-- fix cvs-1.11-security.patch, which had CR-LF line terminators (#25090)
-- check for and ignore ENOENT errors when attempting to remove symlinks (#25173)
-
-* Mon Jan 08 2001 Preston Brown <pbrown@redhat.com>
-- patch from Olaf Kirch <okir@lst.de> to do tmp files safely.
-
-* Tue Oct 10 2000 Bernhard Rosenkraenzer <bero@redhat.com>
-- 1.11
-
-* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
-- automatic rebuild
-
-* Mon Jul 10 2000 Nalin Dahyabhai <nalin@redhat.com>
-- always zero errno before calling readdir (#10374)
-
-* Tue Jun 27 2000 Nalin Dahyabhai <nalin@redhat.com>
-- rebuild in new build environment (release 6)
-
-* Mon Jun 5 2000 Nalin Dahyabhai <nalin@redhat.com>
-- rebuild in new build environment (release 5)
-- FHS tweaks
-- actually gzip the info pages
-
-* Wed May 10 2000 Nalin Dahyabhai <nalin@redhat.com>
-- reverse sense of conditional kerberos dependency
-- add kerberos IV patch from Ken Raeburn
-- switch to using the system's zlib instead of built-in
-- default to unstripped binaries
-
-* Tue Apr 4 2000 Bill Nottingham <notting@redhat.com>
-- eliminate explicit krb5-configs dependency
-
-* Mon Mar 20 2000 Bernhard Rosenkraenzer <bero@redhat.com>
-- 1.10.8
-
-* Wed Mar 1 2000 Nalin Dahyabhai <nalin@redhat.com>
-- make kerberos support conditional at build-time
-
-* Wed Mar 1 2000 Bill Nottingham <notting@redhat.com>
-- integrate kerberos support into main tree
-
-* Mon Feb 14 2000 Nalin Dahyabhai <nalin@redhat.com>
-- build with gssapi auth (--with-gssapi, --with-encryption)
-- apply patch to update libs to krb5 1.1.1
-
-* Fri Feb 04 2000 Cristian Gafton <gafton@redhat.com>
-- fix the damn info pages too while we're at it.
-- fix description
-- man pages are compressed
-- make sure %post and %preun work okay
-
-* Sun Jan 9 2000 Jim Kingdon <http://bugzilla.redhat.com/bugzilla>
-- update to 1.10.7.
-
-* Wed Jul 14 1999 Jim Kingdon <http://developer.redhat.com>
-- add the patch to make 1.10.6 usable
- (http://www.cyclic.com/cvs/dev-known.html).
-
-* Tue Jun 1 1999 Jeff Johnson <jbj@redhat.com>
-- update to 1.10.6.
-
-* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
-- auto rebuild in the new build environment (release 2)
-
-* Mon Feb 22 1999 Jeff Johnson <jbj@redhat.com>
-- updated text in spec file.
-
-* Mon Feb 22 1999 Jeff Johnson <jbj@redhat.com>
-- update to 1.10.5.
-
-* Tue Feb 2 1999 Jeff Johnson <jbj@redhat.com>
-- update to 1.10.4.
-
-* Tue Oct 20 1998 Jeff Johnson <jbj@redhat.com>
-- update to 1.10.3.
-
-* Mon Sep 28 1998 Jeff Johnson <jbj@redhat.com>
-- update to 1.10.2.
-
-* Wed Sep 23 1998 Jeff Johnson <jbj@redhat.com>
-- remove trailing characters from rcs2log mktemp args
-
-* Thu Sep 10 1998 Jeff Johnson <jbj@redhat.com>
-- update to 1.10.1
-
-* Mon Aug 31 1998 Jeff Johnson <jbj@redhat.com>
-- fix race conditions in cvsbug/rcs2log
-
-* Sun Aug 16 1998 Jeff Johnson <jbj@redhat.com>
-- update to 1.10.
-
-* Wed Aug 12 1998 Jeff Johnson <jbj@redhat.com>
-- update to 1.9.30.
-
-* Mon Jun 08 1998 Prospector System <bugs@redhat.com>
-- translations modified for de, fr
-
-* Mon Jun 8 1998 Jeff Johnson <jbj@redhat.com>
-- build root
-- update to 1.9.28
-
-* Mon Apr 27 1998 Prospector System <bugs@redhat.com>
-- translations modified for de, fr, tr
-
-* Wed Oct 29 1997 Otto Hammersmith <otto@redhat.com>
-- added install-info stuff
-- added changelog section
+++ /dev/null
-%define glibcrelease 10
-%define auxarches sparcv9 alphaev6
-Summary: The GNU libc libraries.
-Name: glibc
-Version: 2.2.2
-Release: %{glibcrelease}_staticnss
-Copyright: LGPL
-Group: System Environment/Libraries
-Source: %{name}-%{version}.tar.bz2
-# In the source tarball the file diff-CYGNUS-to-REDHAT.patch contains all
-# diffs applied by Red Hat to the current CVS version of glibc
-Buildroot: %{_tmppath}/glibc-%{PACKAGE_VERSION}-root
-Obsoletes: zoneinfo, libc-static, libc-devel, libc-profile, libc-headers,
-Obsoletes: linuxthreads, gencat, locale, ldconfig, locale-ja
-Provides: ldconfig
-Autoreq: false
-Requires: glibc-common = %{version}-%{release}
-%ifarch alpha
-Provides: ld.so.2
-%else
-%endif
-%ifarch sparc
-Obsoletes: libc
-%endif
-Prereq: basesystem
-Conflicts: rpm <= 4.0-0.65
-Patch: glibc-kernel-2.4.patch
-%ifarch ia64 sparc64 s390x
-Conflicts: kernel < 2.4.0
-%define enablekernel 2.4.0
-%else
-%define enablekernel 2.2.5
-%endif
-%define enablekernel2 2.4.1
-%define __find_provides %{_builddir}/%{name}-%{version}/find_provides.sh
-
-%description
-The glibc package contains standard libraries which are used by
-multiple programs on the system. In order to save disk space and
-memory, as well as to make upgrading easier, common system code is
-kept in one place and shared between programs. This particular package
-contains the most important sets of shared libraries: the standard C
-library and the standard math library. Without these two libraries, a
-Linux system will not function.
-
-%package devel
-Summary: Header and object files for development using standard C libraries.
-Group: Development/Libraries
-Conflicts: texinfo < 3.11
-Prereq: /sbin/install-info
-Obsoletes: libc-debug, libc-headers, libc-devel, linuxthreads-devel
-Obsoletes: glibc-debug
-Prereq: kernel-headers
-Requires: kernel-headers >= 2.2.1, %{name} = %{version}
-Autoreq: true
-
-%description devel
-The glibc-devel package contains the header and object files necessary
-for developing programs which use the standard C libraries (which are
-used by nearly all programs). If you are developing programs which
-will use the standard C libraries, your system needs to have these
-standard header and object files available in order to create the
-executables.
-
-Install glibc-devel if you are going to develop programs which will
-use the standard C libraries.
-
-%package profile
-Summary: The GNU libc libraries, including support for gprof profiling.
-Group: Development/Libraries
-Obsoletes: libc-profile
-Autoreq: true
-
-%description profile
-The glibc-profile package includes the GNU libc libraries and support
-for profiling using the gprof program. Profiling is analyzing a
-program's functions to see how much CPU time they use and determining
-which functions are calling other functions during execution. To use
-gprof to profile a program, your program needs to use the GNU libc
-libraries included in glibc-profile (instead of the standard GNU libc
-libraries included in the glibc package).
-
-If you are going to use the gprof program to profile a program, you'll
-need to install the glibc-profile program.
-
-%package common
-Summary: Common binaries and locale data for glibc
-Conflicts: %{name} < %{version}
-Conflicts: %{name} > %{version}
-Autoreq: false
-Group: System Environment/Base
-
-%description common
-The glibc-common package includes common binaries for the GNU libc
-libraries, as well as national language (locale) support and timezone
-databases.
-
-%package -n nscd
-Summary: A Name Service Caching Daemon (nscd).
-Group: System Environment/Daemons
-Conflicts: kernel < 2.2.0
-Prereq: /sbin/chkconfig, /usr/sbin/useradd, /usr/sbin/userdel
-Autoreq: true
-
-%description -n nscd
-Nscd caches name service lookups and can dramatically improve
-performance with NIS+, and may help with DNS as well. Note that you
-can't use nscd with 2.0 kernels because of bugs in the kernel-side
-thread support. Unfortunately, nscd happens to hit these bugs
-particularly hard.
-
-Install nscd if you need a name service lookup caching daemon, and
-you're not using a version 2.0 kernel.
-
-%prep
-%setup -q
-%ifarch ia64 sparc64 s390x %{auxarches}
-# If we are building enablekernel 2.4.1 glibc on older kernel,
-# we have to make sure no binaries compiled against that glibc
-# are ever run
-case `uname -r` in
-[01].*|2.[0-3]*|2.4.0*)
-%patch -p1
-;; esac
-%endif
-
-%ifarch armv4l sparc64 ia64 s390 s390x
-rm -rf glibc-compat
-%endif
-
-find . -type f -size 0 -o -name "*.orig" -exec rm -f {} \;
-
-cat > find_provides.sh <<EOF
-#!/bin/sh
-/usr/lib/rpm/find-provides | grep -v GLIBC_2.2.3
-EOF
-chmod +x find_provides.sh
-
-%build
-rm -rf build-%{_target_cpu}-linux
-mkdir build-%{_target_cpu}-linux ; cd build-%{_target_cpu}-linux
-GCC=gcc
-%ifarch %{ix86}
-BuildFlags="-march=%{_target_cpu} -D__USE_STRING_INLINES -fstrict-aliasing"
-%endif
-%ifarch alphaev6
-BuildFlags="-mcpu=ev6"
-%endif
-%ifarch sparc
-BuildFlags="-fcall-used-g7"
-GCC="gcc -m32"
-%endif
-%ifarch sparcv9
-BuildFlags="-mcpu=ultrasparc -fcall-used-g7"
-GCC="gcc -m32"
-%endif
-%ifarch sparc64
-BuildFlags="-mcpu=ultrasparc -mvis -fcall-used-g7"
-GCC="gcc -m64"
-%endif
-# Temporarily don't do this on ia64 and s390
-%ifnarch ia64 s390 s390x
-BuildFlags="$BuildFlags -freorder-blocks"
-%endif
-BuildFlags="$BuildFlags -DNDEBUG=1"
-EnableKernel="--enable-kernel=%{enablekernel}"
-%ifarch %{auxarches}
-EnableKernel="$EnableKernel --disable-profile"
-%endif
-echo "$BuildFlags" > ../BuildFlags
-CC="$GCC -Lnss -Lbuild-%{_target_cpu}-linux/nss" CFLAGS="$BuildFlags -g -O3" ../configure --prefix=%{_prefix} \
- --enable-add-ons=yes --without-cvs $EnableKernel \
- --enable-static-nss \
- %{_target_cpu}-redhat-linux
-if [ -x /usr/bin/getconf ] ; then
- numprocs=$(/usr/bin/getconf _NPROCESSORS_ONLN)
- if [ $numprocs -eq 0 ]; then
- numprocs=1
- fi
-else
- numprocs=1
-fi
-make -j$numprocs -r CFLAGS="$BuildFlags -g -O3" PARALLELMFLAGS=-s
-gcc -static -Os ../redhat/glibc_post_upgrade.c -o glibc_post_upgrade
-
-%install
-rm -rf $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT
-make install_root=$RPM_BUILD_ROOT install -C build-%{_target_cpu}-linux
-cd build-%{_target_cpu}-linux && \
- make install_root=$RPM_BUILD_ROOT install-locales -C ../localedata objdir=`pwd` && \
- cd ..
-
-%ifarch i686
-rm -rf build-%{_target_cpu}-linux2.4
-mkdir build-%{_target_cpu}-linux2.4 ; cd build-%{_target_cpu}-linux2.4
-GCC=gcc
-BuildFlags=`cat ../BuildFlags`
-EnableKernel="--enable-kernel=%{enablekernel2} --disable-profile"
-CC="$GCC" CFLAGS="$BuildFlags -g -O3" ../configure --prefix=%{_prefix} \
- --enable-add-ons=yes --without-cvs $EnableKernel \
- --enable-static-nss \
- %{_target_cpu}-redhat-linux
-if [ -x /usr/bin/getconf ] ; then
- numprocs=$(/usr/bin/getconf _NPROCESSORS_ONLN)
- if [ $numprocs -eq 0 ]; then
- numprocs=1
- fi
-else
- numprocs=1
-fi
-make -j$numprocs -r CFLAGS="$BuildFlags -g -O3" PARALLELMFLAGS=-s
-mkdir -p $RPM_BUILD_ROOT/lib/%{_target_cpu}/
-cp -a libc.so $RPM_BUILD_ROOT/lib/%{_target_cpu}/`basename $RPM_BUILD_ROOT/lib/libc-*.so`
-ln -sf `basename $RPM_BUILD_ROOT/lib/libc-*.so` $RPM_BUILD_ROOT/lib/%{_target_cpu}/`basename $RPM_BUILD_ROOT/lib/libc.so.*`
-cp -a math/libm.so $RPM_BUILD_ROOT/lib/%{_target_cpu}/`basename $RPM_BUILD_ROOT/lib/libm-*.so`
-ln -sf `basename $RPM_BUILD_ROOT/lib/libm-*.so` $RPM_BUILD_ROOT/lib/%{_target_cpu}/`basename $RPM_BUILD_ROOT/lib/libm.so.*`
-cp -a linuxthreads/libpthread.so $RPM_BUILD_ROOT/lib/%{_target_cpu}/`basename $RPM_BUILD_ROOT/lib/libpthread-*.so`
-ln -sf `basename $RPM_BUILD_ROOT/lib/libpthread-*.so` $RPM_BUILD_ROOT/lib/%{_target_cpu}/`basename $RPM_BUILD_ROOT/lib/libpthread.so.*`
-strip -R .comment $RPM_BUILD_ROOT/lib/{libc,libm,libpthread}-*.so
-cd ..
-%endif
-
-# compatibility hack: this locale has vanished from glibc, but some other
-# programs are still using it. Normally we would handle it in the %pre
-# section but with glibc that is simply not an option
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/locale/ru_RU/LC_MESSAGES
-
-# Remove the files we don't want to distribute
-rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libNoVersion*
-%ifarch sparc64 ia64 s390 s390x
-rm -f $RPM_BUILD_ROOT/%{_lib}/libNoVersion*
-%endif
-
-# the man pages for the linuxthreads require special attention
-make -C linuxthreads/man
-mkdir -p $RPM_BUILD_ROOT%{_mandir}/man3
-install -m 0644 linuxthreads/man/*.3thr $RPM_BUILD_ROOT%{_mandir}/man3
-gzip -9nvf $RPM_BUILD_ROOT%{_mandir}/man3/*
-
-if [ -d $RPM_BUILD_ROOT%{_prefix}/info -a "%{_infodir}" != "%{_prefix}/info" ]; then
- mkdir -p $RPM_BUILD_ROOT%{_infodir}
- mv -f $RPM_BUILD_ROOT%{_prefix}/info/* $RPM_BUILD_ROOT%{_infodir}
- rm -rf $RPM_BUILD_ROOT%{_prefix}/info
-fi
-
-gzip -9nvf $RPM_BUILD_ROOT%{_infodir}/libc*
-
-ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libbsd.a
-
-install -m 644 redhat/nsswitch.conf $RPM_BUILD_ROOT/etc/nsswitch.conf
-
-# Take care of setuids
-# -- new security review sez that this shouldn't be needed anymore
-#chmod 755 $RPM_BUILD_ROOT%{_prefix}/libexec/pt_chown
-
-# This is for ncsd - in glibc 2.2
-install -m 644 nscd/nscd.conf $RPM_BUILD_ROOT/etc
-mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
-install -m 755 nscd/nscd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/nscd
-
-# Don't include ld.so.cache
-rm -f $RPM_BUILD_ROOT/etc/ld.so.cache
-
-# Include ld.so.conf
-> $RPM_BUILD_ROOT/etc/ld.so.conf
-chmod 644 $RPM_BUILD_ROOT/etc/ld.so.conf
-
-# Install the upgrade program
-install -m 700 build-%{_target_cpu}-linux/glibc_post_upgrade $RPM_BUILD_ROOT/usr/sbin/glibc_post_upgrade
-
-# Strip binaries
-strip -R .comment $RPM_BUILD_ROOT/sbin/* || :
-strip -R .comment $RPM_BUILD_ROOT%{_prefix}/bin/* || :
-strip -R .comment $RPM_BUILD_ROOT%{_prefix}/sbin/* || :
-strip -R .comment $RPM_BUILD_ROOT%{_prefix}/libexec/pt_chown || :
-strip -R .comment $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gconv/* || :
-
-# Hardlink identical locale files together
-ALL_LC="LC_ADDRESS LC_COLLATE LC_CTYPE LC_IDENTIFICATION LC_MEASUREMENT \
- LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME \
- LC_MESSAGES/SYS_LC_MESSAGES"
-for i in $RPM_BUILD_ROOT%{_prefix}/lib/locale/*; do
- if [ ! -d $i ]; then continue; fi
- for j in $ALL_LC; do
- for k in $RPM_BUILD_ROOT%{_prefix}/lib/locale/*; do
- if [ ! -d $k ]; then continue; fi
- if [ $i = $k ]; then break; fi
- if cmp -s $i/$j $k/$j; then ln -f $k/$j $i/$j; break; fi
- done
- done
-done
-
-# BUILD THE FILE LIST
-find $RPM_BUILD_ROOT -type f -or -type l |
- sed -e 's|.*/etc|%config &|' \
- -e 's|.*/gconv/gconv-modules|%verify(not md5 size mtime) %config(noreplace) &|' > rpm.filelist.in
-for n in %{_prefix}/share %{_prefix}/include %{_prefix}/lib/locale; do
- find ${RPM_BUILD_ROOT}${n} -type d | \
- grep -v '%{_prefix}/share$' | \
- sed "s/^/%dir /" >> rpm.filelist.in
-done
-
-# primary filelist
-SHARE_LANG='s|.*/share/locale/\([^/_]\+\).*/LC_MESSAGES/.*\.mo|%lang(\1) &|'
-LIB_LANG='s|.*/lib/locale/\([^/_]\+\)|%lang(\1) &|'
-# rpm does not handle %lang() tagged files hardlinked together accross
-# languages very well, temporarily disable
-LIB_LANG=''
-sed -e "s|$RPM_BUILD_ROOT||" -e "$LIB_LANG" -e "$SHARE_LANG" < rpm.filelist.in |
- grep -v '/etc/localtime' | \
- grep -v '/etc/nsswitch.conf' | \
- grep -v '/etc/ld.so.conf' | \
- sort > rpm.filelist
-
-grep '%{_prefix}/%{_lib}/lib.*_p\.a' < rpm.filelist > profile.filelist || :
-egrep "(%{_prefix}/include)|(%{_infodir})" < rpm.filelist |
- grep -v %{_infodir}/dir > devel.filelist
-
-mv rpm.filelist rpm.filelist.full
-grep -v '%{_prefix}/%{_lib}/lib.*_p.a' rpm.filelist.full |
- egrep -v "(%{_prefix}/include)|(%{_infodir})" > rpm.filelist
-
-grep '%{_prefix}/%{_lib}/lib.*\.a' < rpm.filelist >> devel.filelist
-grep '%{_prefix}/%{_lib}/.*\.o' < rpm.filelist >> devel.filelist
-grep '%{_prefix}/%{_lib}/lib.*\.so' < rpm.filelist >> devel.filelist
-grep '%{_mandir}' < rpm.filelist >> devel.filelist
-
-mv rpm.filelist rpm.filelist.full
-grep -v '%{_prefix}/%{_lib}/lib.*\.a' < rpm.filelist.full |
- grep -v '%{_prefix}/%{_lib}/.*\.o' |
- grep -v '%{_prefix}/%{_lib}/lib.*\.so'|
- grep -v '%{_mandir}' |
- grep -v 'nscd' > rpm.filelist
-
-grep '%{_prefix}/bin' < rpm.filelist >> common.filelist
-grep '%{_prefix}/lib/locale' < rpm.filelist >> common.filelist
-grep '%{_prefix}/libexec' < rpm.filelist >> common.filelist
-grep '%{_prefix}/sbin/[^g]' < rpm.filelist >> common.filelist
-grep '%{_prefix}/share' < rpm.filelist >> common.filelist
-
-mv rpm.filelist rpm.filelist.full
-grep -v '%{_prefix}/bin' < rpm.filelist.full |
- grep -v '%{_prefix}/lib/locale' |
- grep -v '%{_prefix}/libexec' |
- grep -v '%{_prefix}/sbin/[^g]' |
- grep -v '%{_prefix}/share' > rpm.filelist
-
-# /etc/localtime - we're proud of our timezone
-rm -f $RPM_BUILD_ROOT/etc/localtime
-cp -f $RPM_BUILD_ROOT%{_prefix}/share/zoneinfo/US/Eastern $RPM_BUILD_ROOT/etc/localtime
-#ln -sf ..%{_prefix}/share/zoneinfo/US/Eastern $RPM_BUILD_ROOT/etc/localtime
-
-# the last bit: more documentation
-rm -rf documentation
-mkdir documentation
-cp linuxthreads/ChangeLog documentation/ChangeLog.threads
-cp linuxthreads/Changes documentation/Changes.threads
-cp linuxthreads/README documentation/README.threads
-cp linuxthreads/FAQ.html documentation/FAQ-threads.html
-cp -r linuxthreads/Examples documentation/examples.threads
-cp crypt/README.ufc-crypt documentation/README.ufc-crypt
-cp timezone/README documentation/README.timezone
-cp ChangeLog* documentation
-gzip -9 documentation/ChangeLog*
-
-%post -p /usr/sbin/glibc_post_upgrade
-
-%postun -p /sbin/ldconfig
-
-%post devel
-/sbin/install-info %{_infodir}/libc.info.gz %{_infodir}/dir
-
-%pre devel
-# this used to be a link and it is causing nightmares now
-if [ -L %{_prefix}/include/scsi ] ; then
- rm -f %{_prefix}/include/scsi
-fi
-
-%preun devel
-if [ "$1" = 0 ]; then
- /sbin/install-info --delete %{_infodir}/libc.info.gz %{_infodir}/dir
-fi
-
-%pre -n nscd
-/usr/sbin/useradd -M -o -r -d / -s /bin/false \
- -c "NSCD Daemon" -u 28 nscd > /dev/null 2>&1 || :
-
-%post -n nscd
-/sbin/chkconfig --add nscd
-
-%preun -n nscd
-if [ $1 = 0 ] ; then
- service nscd stop > /dev/null 2>&1
- /sbin/chkconfig --del nscd
-fi
-
-%postun -n nscd
-if [ $1 = 0 ] ; then
- /usr/sbin/userdel nscd > /dev/null 2>&1 || :
-fi
-if [ "$1" -ge "1" ]; then
- service nscd condrestart > /dev/null 2>&1 || :
-fi
-
-%clean
-rm -rf "$RPM_BUILD_ROOT"
-rm -f *.filelist*
-
-%files -f rpm.filelist
-%defattr(-,root,root)
-%verify(not md5 size mtime) %config(noreplace) /etc/localtime
-%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf
-%verify(not md5 size mtime) %config(noreplace) /etc/ld.so.conf
-%doc README NEWS INSTALL FAQ BUGS NOTES PROJECTS CONFORMANCE
-%doc COPYING COPYING.LIB README.template README.libm
-%doc hesiod/README.hesiod
-
-%ifnarch %{auxarches}
-%files -f common.filelist common
-%defattr(-,root,root)
-%doc documentation/*
-
-%files -f devel.filelist devel
-%defattr(-,root,root)
-
-%files -f profile.filelist profile
-%defattr(-,root,root)
-
-%files -n nscd
-%defattr(-,root,root)
-%config(noreplace) /etc/nscd.conf
-%config /etc/rc.d/init.d/nscd
-%{_prefix}/sbin/nscd
-%endif
-
-%changelog
-* Fri Apr 6 2001 Jakub Jelinek <jakub@redhat.com>
-- support even 2.4.0 kernels on ia64, sparc64 and s390x
-- include UTF-8 locales
-- make gconv-modules %%config(noreplace)
-
-* Fri Mar 23 2001 Jakub Jelinek <jakub@redhat.com>
-- back out sunrpc changes
-
-* Wed Mar 21 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
- - fix ia64 build
- - fix pthread_getattr_np
-
-* Fri Mar 16 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
- - run atexit() registered functions at dlclose time if they are in shared
- libraries (#28625)
- - add pthread_getattr_np API to make JVM folks happy
-
-* Wed Mar 14 2001 Jakub Jelinek <jakub@redhat.com>
-- require 2.4.1 instead of 2.4.0 on platforms where it required 2.4 kernel
-- fix ldd behaviour on unresolved symbols
-- remove nonsensical ldconfig warning, update osversion for the most
- recent library with the same soname in the same directory instead (#31703)
-- apply selected patches from CVS
-- s390x spec file changes from Florian La Roche
-
-* Wed Mar 7 2001 Jakub Jelinek <jakub@redhat.com>
-- fix gencat (#30894)
-- fix ldconfig changes from yesterday, fix LD_ASSUME_KERNEL handling
-
-* Tue Mar 6 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-- make pthread_attr_setstacksize consistent before and after pthread manager
- is started (#28194)
-- pass back struct sigcontext from pthread signal wrapper (on ia32 only so
- far, #28493)
-- on i686 ship both --enable-kernel 2.2.5 and 2.4.0 libc/libm/libpthread,
- make ld.so pick the right one
-
-* Sat Feb 17 2001 Preston Brown <pbrown@redhat.com>
-- glib-common doesn't require glibc, until we can figure out how to get out of dependency hell.
-
-* Sat Feb 17 2001 Jakub Jelinek <jakub@redhat.com>
-- make glibc require particular version of glibc-common
- and glibc-common prerequire glibc.
-
-* Fri Feb 16 2001 Jakub Jelinek <jakub@redhat.com>
-- glibc 2.2.2 release
- - fix regex REG_ICASE bug seen in ksymoops
-
-* Sat Feb 10 2001 Jakub Jelinek <jakub@redhat.com>
-- fix regexec leaking memory (#26864)
-
-* Fri Feb 9 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
- - fix ia64 build with gnupro
- - make regex 64bit clean
- - fix tgmath make check failures on alpha
-
-* Tue Feb 6 2001 Jakub Jelinek <jakub@redhat.com>
-- update again for ia64 DF_1_INITFIRST
-
-* Fri Feb 2 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
- - fix getaddrinfo (#25437)
- - support DF_1_INITFIRST (#25029)
-
-* Wed Jan 24 2001 Jakub Jelinek <jakub@redhat.com>
-- build all auxiliary arches with --enablekernel 2.4.0, those wanting
- to run 2.2 kernels can downgrade to the base architecture glibc.
-
-* Sat Jan 20 2001 Jakub Jelinek <jakub@redhat.com>
-- remove %%lang() flags from %%{_prefix}/lib/locale files temporarily
-
-* Sun Jan 14 2001 Jakub Jelinek <jakub@redhat.com>
-- update to 2.2.1 final
- - fix a pthread_kill_other_threads_np breakage (#23966)
- - make static binaries using dlopen work on ia64 again
-- fix a typo in glibc-common group
-
-* Wed Jan 10 2001 Bernhard Rosenkraenzer <bero@redhat.com>
-- devel requires glibc = %%{version}
-- noreplace /etc/nscd.conf
-
-* Wed Jan 10 2001 Jakub Jelinek <jakub@redhat.com>
-- some more security fixes:
- - don't look up LD_PRELOAD libs in cache for SUID apps
- (because that bypasses SUID bit checking on the library)
- - place output files for profiling SUID apps into /var/profile,
- use O_NOFOLLOW for them
- - add checks for $MEMUSAGE_OUTPUT and $SEGFAULT_OUTPUT_NAME
-- hardlink identical locale files together
-- add %%lang() tags to locale stuff
-- remove ko_KR.utf8 for now, it is provided by locale-utf8 package
-
-* Mon Jan 8 2001 Jakub Jelinek <jakub@redhat.com>
-- add glibc-common subpackage
-- fix alphaev6 memcpy (#22494)
-- fix sys/cdefs.h (#22908)
-- don't define stdin/stdout/stderr as macros for -traditional (#22913)
-- work around a bug in IBM JDK (#22932, #23012)
-- fix pmap_unset when network is down (#23176)
-- move nscd in rc.d before netfs on shutdown
-- fix $RESOLV_HOST_CONF in SUID apps (#23562)
-
-* Fri Dec 15 2000 Jakub Jelinek <jakub@redhat.com>
-- fix ftw and nftw
-
-* Wed Dec 13 2000 Jakub Jelinek <jakub@redhat.com>
-- fix fcvt (#22184)
-- ldd /lib/ld-linux.so.2 is not crashing any longer again (#22197)
-- fix gencat
-
-* Mon Dec 11 2000 Jakub Jelinek <jakub@redhat.com>
-- fix alpha htonl and alphaev6 stpcpy
-
-* Sat Dec 9 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS to:
- - fix getnameinfo (#21934)
- - don't stomp on memory in rpath handling (#21544)
- - fix setlocale (#21507)
-- fix libNoVersion.so.1 loading code (#21579)
-- use auxarches define in spec file for auxiliary
- architectures (#21219)
-- remove /usr/share directory from filelist (#21218)
-
-* Sun Nov 19 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS to fix getaddrinfo
-
-* Fri Nov 17 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS to fix freopen
-- remove all alpha workarounds, not needed anymore
-
-* Wed Nov 15 2000 Jakub Jelinek <jakub@redhat.com>
-- fix dladdr bug on alpha/sparc32/sparc64
-- fix Makefiles so that they run static tests properly
-
-* Tue Nov 14 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS to fix ldconfig
-
-* Thu Nov 9 2000 Jakub Jelinek <jakub@redhat.com>
-- update to glibc 2.2 release
-
-* Mon Nov 6 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS to:
- - export __sysconf@@GLIBC_2.2 (#20417)
-
-* Fri Nov 3 2000 Jakub Jelinek <jakub@redhat.com>
-- merge to 2.1.97
-
-* Mon Oct 30 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS, including:
- - fix WORD_BIT/LONG_BIT definition in limits.h (#19088)
- - fix hesiod (#19375)
- - set LC_MESSAGES in zic/zdump for proper error message output (#19495)
- - fix LFS fcntl when used with non-LFS aware kernels (#19730)
-
-* Thu Oct 19 2000 Jakub Jelinek <jakub@redhat.com>
-- fix alpha semctl (#19199)
-- update to CVS, including:
- - fix glibc headers for Compaq non-gcc compilers
- - fix locale alias handling code (#18832)
- - fix rexec on little endian machines (#18886)
-- started writing changelog again
-
-* Thu Aug 10 2000 Adrian Havill <havill@redhat.com>
-- added ja ujis alias for backwards compatibility
+++ /dev/null
-#include <stdio.h>
-
-int fromhex(int a)
-{
- return(a<='9'?a-'0':a-'A'+10);
-}
-
-int main(int argc,char **argv)
-{
-char c,seek;
-int i;
- if (argc>1&&*(argv[1])) seek=*(argv[1]);
- for (;;) {
- i=getchar();
- if (i==-1) break;
- if (i!=seek) { putchar(i); continue; }
- i=getchar();
- if (i=='\n') continue;
- if (i==-1) break;
- c=i;
- i=getchar();
- if (i==-1) break;
- putchar(fromhex(c)*0x10+fromhex(i));
- }
- return(0);
-}
+++ /dev/null
-#include <termios.h>
-#include <errno.h>
-#include <stdio.h>
-
-int main(void)
-{
-int c;
- while ((c=getchar())!=EOF) switch (c) {
- case ' ':
- putchar('+');
- break;
- case '0' ... '9':
- case 'A' ... 'Z':
- case 'a' ... 'z':
- case '!': case '*': case '\'': case '(': case ')': case ',': /* extra */
- case '$': case '-': case '_' : case '.': /* safe */
- putchar(c);
- break;
- default:
- printf("%%%02X",c);
- }
- fflush(stdout);
- return(0);
-}