svn commit: r186880 - in user/sam/wifi: . bin/test contrib/csup contrib/file contrib/file/Magdir contrib/file/tests contrib/lukemftpd/src crypto/openssl/apps crypto/openssl/ssl etc/defaults lib/lib...

Sam Leffler sam at FreeBSD.org
Wed Jan 7 16:08:36 PST 2009


Author: sam
Date: Thu Jan  8 00:08:34 2009
New Revision: 186880
URL: http://svn.freebsd.org/changeset/base/186880

Log:
  sync w/ head

Added:
  user/sam/wifi/contrib/csup/lex.rcs.c
     - copied unchanged from r186879, head/contrib/csup/lex.rcs.c
  user/sam/wifi/contrib/csup/rcsfile.c
     - copied unchanged from r186879, head/contrib/csup/rcsfile.c
  user/sam/wifi/contrib/csup/rcsfile.h
     - copied unchanged from r186879, head/contrib/csup/rcsfile.h
  user/sam/wifi/contrib/csup/rcsparse.c
     - copied unchanged from r186879, head/contrib/csup/rcsparse.c
  user/sam/wifi/contrib/csup/rcsparse.h
     - copied unchanged from r186879, head/contrib/csup/rcsparse.h
  user/sam/wifi/contrib/csup/rcstokenizer.h
     - copied unchanged from r186879, head/contrib/csup/rcstokenizer.h
  user/sam/wifi/contrib/csup/rcstokenizer.l
     - copied unchanged from r186879, head/contrib/csup/rcstokenizer.l
  user/sam/wifi/contrib/csup/rsyncfile.c
     - copied unchanged from r186879, head/contrib/csup/rsyncfile.c
  user/sam/wifi/contrib/csup/rsyncfile.h
     - copied unchanged from r186879, head/contrib/csup/rsyncfile.h
  user/sam/wifi/contrib/file/AUTHORS
     - copied unchanged from r186879, head/contrib/file/AUTHORS
  user/sam/wifi/contrib/file/COPYING
     - copied unchanged from r186879, head/contrib/file/COPYING
  user/sam/wifi/contrib/file/INSTALL
     - copied unchanged from r186879, head/contrib/file/INSTALL
  user/sam/wifi/contrib/file/Magdir/clarion
     - copied unchanged from r186879, head/contrib/file/Magdir/clarion
  user/sam/wifi/contrib/file/Magdir/erlang
     - copied unchanged from r186879, head/contrib/file/Magdir/erlang
  user/sam/wifi/contrib/file/Magdir/gnome-keyring
     - copied unchanged from r186879, head/contrib/file/Magdir/gnome-keyring
  user/sam/wifi/contrib/file/Magdir/gnumeric
     - copied unchanged from r186879, head/contrib/file/Magdir/gnumeric
  user/sam/wifi/contrib/file/Magdir/graphviz
     - copied unchanged from r186879, head/contrib/file/Magdir/graphviz
  user/sam/wifi/contrib/file/Magdir/inform
     - copied unchanged from r186879, head/contrib/file/Magdir/inform
  user/sam/wifi/contrib/file/Magdir/kde
     - copied unchanged from r186879, head/contrib/file/Magdir/kde
  user/sam/wifi/contrib/file/Magdir/llvm
     - copied unchanged from r186879, head/contrib/file/Magdir/llvm
  user/sam/wifi/contrib/file/Magdir/lua
     - copied unchanged from r186879, head/contrib/file/Magdir/lua
  user/sam/wifi/contrib/file/Magdir/luks
     - copied unchanged from r186879, head/contrib/file/Magdir/luks
  user/sam/wifi/contrib/file/Magdir/mathcad
     - copied unchanged from r186879, head/contrib/file/Magdir/mathcad
  user/sam/wifi/contrib/file/Magdir/mercurial
     - copied unchanged from r186879, head/contrib/file/Magdir/mercurial
  user/sam/wifi/contrib/file/Magdir/mozilla
     - copied unchanged from r186879, head/contrib/file/Magdir/mozilla
  user/sam/wifi/contrib/file/Magdir/netware
     - copied unchanged from r186879, head/contrib/file/Magdir/netware
  user/sam/wifi/contrib/file/Magdir/ole2compounddocs
     - copied unchanged from r186879, head/contrib/file/Magdir/ole2compounddocs
  user/sam/wifi/contrib/file/Magdir/ruby
     - copied unchanged from r186879, head/contrib/file/Magdir/ruby
  user/sam/wifi/contrib/file/Magdir/securitycerts
     - copied unchanged from r186879, head/contrib/file/Magdir/securitycerts
  user/sam/wifi/contrib/file/Magdir/warc
     - copied unchanged from r186879, head/contrib/file/Magdir/warc
  user/sam/wifi/contrib/file/Magdir/weak
     - copied unchanged from r186879, head/contrib/file/Magdir/weak
  user/sam/wifi/contrib/file/Magdir/windows
     - copied unchanged from r186879, head/contrib/file/Magdir/windows
  user/sam/wifi/contrib/file/Magdir/xilinx
     - copied unchanged from r186879, head/contrib/file/Magdir/xilinx
  user/sam/wifi/contrib/file/NEWS
     - copied unchanged from r186879, head/contrib/file/NEWS
  user/sam/wifi/contrib/file/TODO
     - copied unchanged from r186879, head/contrib/file/TODO
  user/sam/wifi/contrib/file/asprintf.c
     - copied unchanged from r186879, head/contrib/file/asprintf.c
  user/sam/wifi/contrib/file/compile
     - copied unchanged from r186879, head/contrib/file/compile
  user/sam/wifi/contrib/file/config.guess
     - copied unchanged from r186879, head/contrib/file/config.guess
  user/sam/wifi/contrib/file/config.sub
     - copied unchanged from r186879, head/contrib/file/config.sub
  user/sam/wifi/contrib/file/configure.ac
     - copied unchanged from r186879, head/contrib/file/configure.ac
  user/sam/wifi/contrib/file/elfclass.h
     - copied unchanged from r186879, head/contrib/file/elfclass.h
  user/sam/wifi/contrib/file/getopt_long.c
     - copied unchanged from r186879, head/contrib/file/getopt_long.c
  user/sam/wifi/contrib/file/mygetopt.h
     - copied unchanged from r186879, head/contrib/file/mygetopt.h
  user/sam/wifi/contrib/file/tests/
     - copied from r186879, head/contrib/file/tests/
  user/sam/wifi/contrib/file/vasprintf.c
     - copied unchanged from r186879, head/contrib/file/vasprintf.c
  user/sam/wifi/lib/libelf/README
     - copied unchanged from r186879, head/lib/libelf/README
  user/sam/wifi/sys/modules/usb2/serial_3g/
     - copied from r186879, head/sys/modules/usb2/serial_3g/
Replaced:
  user/sam/wifi/contrib/file/FREEBSD-upgrade
     - copied unchanged from r186879, head/contrib/file/FREEBSD-upgrade
  user/sam/wifi/contrib/file/magic2mime
     - copied unchanged from r186879, head/contrib/file/magic2mime
Deleted:
  user/sam/wifi/contrib/file/LEGAL.NOTICE
  user/sam/wifi/contrib/file/Makefile.std
  user/sam/wifi/contrib/file/PORTING
  user/sam/wifi/contrib/file/configure.in
  user/sam/wifi/contrib/file/magic.mime
  user/sam/wifi/contrib/file/mkinstalldirs
  user/sam/wifi/contrib/file/test.c
  user/sam/wifi/sys/dev/sound/pci/au88x0.c
  user/sam/wifi/sys/dev/sound/pci/au88x0.h
  user/sam/wifi/sys/modules/sound/driver/au88x0/
Modified:
  user/sam/wifi/   (props changed)
  user/sam/wifi/ObsoleteFiles.inc
  user/sam/wifi/bin/test/test.1
  user/sam/wifi/contrib/csup/   (props changed)
  user/sam/wifi/contrib/csup/GNUmakefile
  user/sam/wifi/contrib/csup/Makefile
  user/sam/wifi/contrib/csup/TODO
  user/sam/wifi/contrib/csup/config.c
  user/sam/wifi/contrib/csup/csup.1
  user/sam/wifi/contrib/csup/detailer.c
  user/sam/wifi/contrib/csup/diff.c
  user/sam/wifi/contrib/csup/diff.h
  user/sam/wifi/contrib/csup/fattr.c
  user/sam/wifi/contrib/csup/fattr.h
  user/sam/wifi/contrib/csup/keyword.c
  user/sam/wifi/contrib/csup/keyword.h
  user/sam/wifi/contrib/csup/lister.c
  user/sam/wifi/contrib/csup/misc.c
  user/sam/wifi/contrib/csup/misc.h
  user/sam/wifi/contrib/csup/mux.c
  user/sam/wifi/contrib/csup/proto.c
  user/sam/wifi/contrib/csup/proto.h
  user/sam/wifi/contrib/csup/status.c
  user/sam/wifi/contrib/csup/stream.c
  user/sam/wifi/contrib/csup/stream.h
  user/sam/wifi/contrib/csup/updater.c
  user/sam/wifi/contrib/file/   (props changed)
  user/sam/wifi/contrib/file/ChangeLog
  user/sam/wifi/contrib/file/MAINT
  user/sam/wifi/contrib/file/Magdir/adventure
  user/sam/wifi/contrib/file/Magdir/animation
  user/sam/wifi/contrib/file/Magdir/apple
  user/sam/wifi/contrib/file/Magdir/archive
  user/sam/wifi/contrib/file/Magdir/audio
  user/sam/wifi/contrib/file/Magdir/c-lang
  user/sam/wifi/contrib/file/Magdir/c64
  user/sam/wifi/contrib/file/Magdir/cafebabe
  user/sam/wifi/contrib/file/Magdir/cddb
  user/sam/wifi/contrib/file/Magdir/commands
  user/sam/wifi/contrib/file/Magdir/compress
  user/sam/wifi/contrib/file/Magdir/console
  user/sam/wifi/contrib/file/Magdir/cracklib
  user/sam/wifi/contrib/file/Magdir/ctags
  user/sam/wifi/contrib/file/Magdir/database
  user/sam/wifi/contrib/file/Magdir/diff
  user/sam/wifi/contrib/file/Magdir/dump
  user/sam/wifi/contrib/file/Magdir/elf
  user/sam/wifi/contrib/file/Magdir/filesystems
  user/sam/wifi/contrib/file/Magdir/flash
  user/sam/wifi/contrib/file/Magdir/fonts
  user/sam/wifi/contrib/file/Magdir/fortran
  user/sam/wifi/contrib/file/Magdir/frame
  user/sam/wifi/contrib/file/Magdir/freebsd
  user/sam/wifi/contrib/file/Magdir/fsav
  user/sam/wifi/contrib/file/Magdir/games
  user/sam/wifi/contrib/file/Magdir/gimp
  user/sam/wifi/contrib/file/Magdir/gnu
  user/sam/wifi/contrib/file/Magdir/hp
  user/sam/wifi/contrib/file/Magdir/iff
  user/sam/wifi/contrib/file/Magdir/images
  user/sam/wifi/contrib/file/Magdir/java
  user/sam/wifi/contrib/file/Magdir/jpeg
  user/sam/wifi/contrib/file/Magdir/lex
  user/sam/wifi/contrib/file/Magdir/linux
  user/sam/wifi/contrib/file/Magdir/lisp
  user/sam/wifi/contrib/file/Magdir/macintosh
  user/sam/wifi/contrib/file/Magdir/mail.news
  user/sam/wifi/contrib/file/Magdir/mathematica
  user/sam/wifi/contrib/file/Magdir/misctools
  user/sam/wifi/contrib/file/Magdir/msdos
  user/sam/wifi/contrib/file/Magdir/mup
  user/sam/wifi/contrib/file/Magdir/os2
  user/sam/wifi/contrib/file/Magdir/palm
  user/sam/wifi/contrib/file/Magdir/pdf
  user/sam/wifi/contrib/file/Magdir/perl
  user/sam/wifi/contrib/file/Magdir/pgp
  user/sam/wifi/contrib/file/Magdir/pkgadd
  user/sam/wifi/contrib/file/Magdir/printer
  user/sam/wifi/contrib/file/Magdir/psion
  user/sam/wifi/contrib/file/Magdir/revision
  user/sam/wifi/contrib/file/Magdir/riff
  user/sam/wifi/contrib/file/Magdir/rpm
  user/sam/wifi/contrib/file/Magdir/rtf
  user/sam/wifi/contrib/file/Magdir/sc
  user/sam/wifi/contrib/file/Magdir/scientific
  user/sam/wifi/contrib/file/Magdir/sgi
  user/sam/wifi/contrib/file/Magdir/sgml
  user/sam/wifi/contrib/file/Magdir/sharc
  user/sam/wifi/contrib/file/Magdir/sketch
  user/sam/wifi/contrib/file/Magdir/softquad
  user/sam/wifi/contrib/file/Magdir/spectrum
  user/sam/wifi/contrib/file/Magdir/tex
  user/sam/wifi/contrib/file/Magdir/troff
  user/sam/wifi/contrib/file/Magdir/unicode
  user/sam/wifi/contrib/file/Magdir/uuencode
  user/sam/wifi/contrib/file/Magdir/varied.script
  user/sam/wifi/contrib/file/Magdir/vorbis
  user/sam/wifi/contrib/file/Magdir/wordprocessors
  user/sam/wifi/contrib/file/Makefile.am
  user/sam/wifi/contrib/file/Makefile.in
  user/sam/wifi/contrib/file/README
  user/sam/wifi/contrib/file/acinclude.m4
  user/sam/wifi/contrib/file/aclocal.m4
  user/sam/wifi/contrib/file/apprentice.c
  user/sam/wifi/contrib/file/ascmagic.c
  user/sam/wifi/contrib/file/compress.c
  user/sam/wifi/contrib/file/config.h.in
  user/sam/wifi/contrib/file/configure
  user/sam/wifi/contrib/file/file.c
  user/sam/wifi/contrib/file/file.h
  user/sam/wifi/contrib/file/file.man
  user/sam/wifi/contrib/file/fsmagic.c
  user/sam/wifi/contrib/file/funcs.c
  user/sam/wifi/contrib/file/is_tar.c
  user/sam/wifi/contrib/file/libmagic.man
  user/sam/wifi/contrib/file/magic.c
  user/sam/wifi/contrib/file/magic.h
  user/sam/wifi/contrib/file/magic.man
  user/sam/wifi/contrib/file/names.h
  user/sam/wifi/contrib/file/patchlevel.h
  user/sam/wifi/contrib/file/print.c
  user/sam/wifi/contrib/file/readelf.c
  user/sam/wifi/contrib/file/readelf.h
  user/sam/wifi/contrib/file/softmagic.c
  user/sam/wifi/contrib/file/tar.h
  user/sam/wifi/contrib/lukemftpd/src/extern.h
  user/sam/wifi/contrib/lukemftpd/src/ftpcmd.y
  user/sam/wifi/contrib/lukemftpd/src/ftpd.c
  user/sam/wifi/crypto/openssl/apps/speed.c
  user/sam/wifi/crypto/openssl/apps/spkac.c
  user/sam/wifi/crypto/openssl/apps/verify.c
  user/sam/wifi/crypto/openssl/apps/x509.c
  user/sam/wifi/crypto/openssl/ssl/s2_clnt.c
  user/sam/wifi/crypto/openssl/ssl/s2_srvr.c
  user/sam/wifi/crypto/openssl/ssl/s3_clnt.c
  user/sam/wifi/crypto/openssl/ssl/s3_srvr.c
  user/sam/wifi/crypto/openssl/ssl/ssltest.c
  user/sam/wifi/etc/defaults/rc.conf
  user/sam/wifi/lib/libc/net/getaddrinfo.3
  user/sam/wifi/lib/libc/sys/jail.2
  user/sam/wifi/lib/libc/sys/socket.2
  user/sam/wifi/lib/libmagic/Makefile
  user/sam/wifi/lib/libstand/bootp.c
  user/sam/wifi/lib/libusb20/libusb20_desc.c
  user/sam/wifi/sbin/geom/class/virstor/gvirstor.8
  user/sam/wifi/sbin/md5/md5.1
  user/sam/wifi/sbin/mount_msdosfs/mount_msdosfs.8
  user/sam/wifi/sbin/ping/ping.8
  user/sam/wifi/share/man/man4/Makefile
  user/sam/wifi/share/man/man4/ae.4
  user/sam/wifi/share/man/man4/cpuctl.4
  user/sam/wifi/share/man/man4/snd_hda.4
  user/sam/wifi/share/man/man4/snd_ich.4
  user/sam/wifi/share/man/man7/build.7
  user/sam/wifi/share/man/man9/dev_clone.9
  user/sam/wifi/share/man/man9/domain.9
  user/sam/wifi/share/misc/bsd-family-tree
  user/sam/wifi/sys/amd64/amd64/identcpu.c
  user/sam/wifi/sys/amd64/conf/GENERIC
  user/sam/wifi/sys/amd64/include/cputypes.h
  user/sam/wifi/sys/amd64/include/specialreg.h
  user/sam/wifi/sys/boot/forth/loader.4th
  user/sam/wifi/sys/boot/forth/pnp.4th
  user/sam/wifi/sys/boot/forth/support.4th
  user/sam/wifi/sys/conf/NOTES
  user/sam/wifi/sys/conf/files
  user/sam/wifi/sys/conf/kern.post.mk
  user/sam/wifi/sys/dev/ath/ath_rate/amrr/amrr.c
  user/sam/wifi/sys/dev/ath/ath_rate/onoe/onoe.c
  user/sam/wifi/sys/dev/ath/ath_rate/sample/sample.c
  user/sam/wifi/sys/dev/ath/if_ath_pci.c
  user/sam/wifi/sys/dev/dcons/dcons_crom.c
  user/sam/wifi/sys/dev/dcons/dcons_os.c
  user/sam/wifi/sys/dev/exca/exca.c
  user/sam/wifi/sys/dev/iicbus/ad7418.c
  user/sam/wifi/sys/dev/iicbus/ds1672.c
  user/sam/wifi/sys/dev/iicbus/icee.c
  user/sam/wifi/sys/dev/iicbus/if_ic.c
  user/sam/wifi/sys/dev/iicbus/iic.c
  user/sam/wifi/sys/dev/iicbus/iicbus.c
  user/sam/wifi/sys/dev/iicbus/iicsmb.c
  user/sam/wifi/sys/dev/mpt/mpt.c
  user/sam/wifi/sys/dev/mpt/mpt.h
  user/sam/wifi/sys/dev/mpt/mpt_cam.c
  user/sam/wifi/sys/dev/mpt/mpt_raid.c
  user/sam/wifi/sys/dev/mpt/mpt_user.c
  user/sam/wifi/sys/dev/ofw/ofw_bus_subr.c
  user/sam/wifi/sys/dev/ofw/openfirm.c
  user/sam/wifi/sys/dev/ofw/openfirm.h
  user/sam/wifi/sys/dev/pccard/pccardvar.h
  user/sam/wifi/sys/dev/pcn/if_pcn.c
  user/sam/wifi/sys/dev/sound/pcm/sound.c
  user/sam/wifi/sys/dev/syscons/teken/teken.c
  user/sam/wifi/sys/dev/syscons/teken/teken.h
  user/sam/wifi/sys/dev/syscons/teken/teken_demo.c
  user/sam/wifi/sys/dev/syscons/teken/teken_subr.h
  user/sam/wifi/sys/dev/usb/ehci_pci.c
  user/sam/wifi/sys/dev/usb/uhci_pci.c
  user/sam/wifi/sys/dev/usb2/controller/at91dci.c
  user/sam/wifi/sys/dev/usb2/controller/ehci2.c
  user/sam/wifi/sys/dev/usb2/controller/ehci2.h
  user/sam/wifi/sys/dev/usb2/controller/musb2_otg.c
  user/sam/wifi/sys/dev/usb2/controller/ohci2.c
  user/sam/wifi/sys/dev/usb2/controller/ohci2_pci.c
  user/sam/wifi/sys/dev/usb2/controller/uhci2.c
  user/sam/wifi/sys/dev/usb2/controller/uhci2.h
  user/sam/wifi/sys/dev/usb2/controller/usb2_bus.h
  user/sam/wifi/sys/dev/usb2/controller/usb2_controller.c
  user/sam/wifi/sys/dev/usb2/controller/usb2_controller.h
  user/sam/wifi/sys/dev/usb2/controller/uss820dci.c
  user/sam/wifi/sys/dev/usb2/core/usb2_busdma.c
  user/sam/wifi/sys/dev/usb2/core/usb2_core.h
  user/sam/wifi/sys/dev/usb2/core/usb2_device.c
  user/sam/wifi/sys/dev/usb2/core/usb2_device.h
  user/sam/wifi/sys/dev/usb2/core/usb2_dynamic.c
  user/sam/wifi/sys/dev/usb2/core/usb2_dynamic.h
  user/sam/wifi/sys/dev/usb2/core/usb2_generic.c
  user/sam/wifi/sys/dev/usb2/core/usb2_handle_request.c
  user/sam/wifi/sys/dev/usb2/core/usb2_hub.c
  user/sam/wifi/sys/dev/usb2/core/usb2_hub.h
  user/sam/wifi/sys/dev/usb2/core/usb2_msctest.c
  user/sam/wifi/sys/dev/usb2/core/usb2_msctest.h
  user/sam/wifi/sys/dev/usb2/core/usb2_request.c
  user/sam/wifi/sys/dev/usb2/core/usb2_request.h
  user/sam/wifi/sys/dev/usb2/core/usb2_transfer.c
  user/sam/wifi/sys/dev/usb2/core/usb2_transfer.h
  user/sam/wifi/sys/dev/usb2/ethernet/if_axe2.c
  user/sam/wifi/sys/dev/usb2/ethernet/if_axe2_reg.h
  user/sam/wifi/sys/dev/usb2/image/uscanner2.c
  user/sam/wifi/sys/dev/usb2/include/usb2_devid.h
  user/sam/wifi/sys/dev/usb2/include/usb2_devtable.h
  user/sam/wifi/sys/dev/usb2/include/usb2_ioctl.h
  user/sam/wifi/sys/dev/usb2/include/usb2_standard.h
  user/sam/wifi/sys/dev/usb2/serial/u3g2.c
  user/sam/wifi/sys/dev/usb2/serial/uchcom2.c
  user/sam/wifi/sys/dev/usb2/serial/uftdi2.c
  user/sam/wifi/sys/dev/usb2/serial/uplcom2.c
  user/sam/wifi/sys/dev/usb2/serial/uvscom2.c
  user/sam/wifi/sys/dev/usb2/sound/uaudio2.c
  user/sam/wifi/sys/dev/usb2/storage/umass2.c
  user/sam/wifi/sys/dev/usb2/storage/ustorage2_fs.c
  user/sam/wifi/sys/dev/usb2/wlan/if_ural2.c
  user/sam/wifi/sys/dev/usb2/wlan/if_zyd2.c
  user/sam/wifi/sys/dev/usb2/wlan/if_zyd2_reg.h
  user/sam/wifi/sys/geom/part/g_part.c
  user/sam/wifi/sys/geom/part/g_part_pc98.c
  user/sam/wifi/sys/geom/part/g_part_vtoc8.c
  user/sam/wifi/sys/gnu/fs/ext2fs/ext2_bitops.h
  user/sam/wifi/sys/i386/conf/GENERIC
  user/sam/wifi/sys/i386/cpufreq/est.c
  user/sam/wifi/sys/kern/kern_jail.c
  user/sam/wifi/sys/kern/tty.c
  user/sam/wifi/sys/kern/uipc_cow.c
  user/sam/wifi/sys/kern/uipc_debug.c
  user/sam/wifi/sys/kern/uipc_domain.c
  user/sam/wifi/sys/modules/usb2/Makefile
  user/sam/wifi/sys/net/route.c
  user/sam/wifi/sys/net80211/ieee80211_node.c
  user/sam/wifi/sys/netinet/in.c
  user/sam/wifi/sys/netinet/ip_output.c
  user/sam/wifi/sys/netinet/udp_usrreq.c
  user/sam/wifi/sys/netinet/udp_var.h
  user/sam/wifi/sys/netinet6/in6.c
  user/sam/wifi/sys/netinet6/in6_gif.c
  user/sam/wifi/sys/netinet6/ip6protosw.h
  user/sam/wifi/sys/netinet6/udp6_usrreq.c
  user/sam/wifi/sys/netipsec/xform_ipip.c
  user/sam/wifi/sys/powerpc/powermac/grackle.c
  user/sam/wifi/sys/powerpc/powermac/gracklevar.h
  user/sam/wifi/sys/powerpc/powermac/macio.c
  user/sam/wifi/sys/powerpc/powermac/uninorth.c
  user/sam/wifi/sys/powerpc/powermac/uninorthvar.h
  user/sam/wifi/sys/security/audit/audit.h
  user/sam/wifi/sys/security/audit/audit_pipe.c
  user/sam/wifi/sys/sys/elf_common.h
  user/sam/wifi/sys/sys/mbuf.h
  user/sam/wifi/sys/sys/protosw.h
  user/sam/wifi/sys/sys/soundcard.h
  user/sam/wifi/sys/vm/vm_page.c
  user/sam/wifi/sys/vm/vm_page.h
  user/sam/wifi/usr.bin/csup/   (props changed)
  user/sam/wifi/usr.bin/csup/Makefile
  user/sam/wifi/usr.bin/make/globals.h
  user/sam/wifi/usr.bin/make/job.c
  user/sam/wifi/usr.bin/make/main.c
  user/sam/wifi/usr.bin/make/make.1
  user/sam/wifi/usr.bin/make/var.c
  user/sam/wifi/usr.sbin/burncd/burncd.c
  user/sam/wifi/usr.sbin/cpucontrol/cpucontrol.8
  user/sam/wifi/usr.sbin/fwcontrol/fwcontrol.c
  user/sam/wifi/usr.sbin/kldxref/ef_i386.c
  user/sam/wifi/usr.sbin/kldxref/ef_obj.c
  user/sam/wifi/usr.sbin/kldxref/fileformat
  user/sam/wifi/usr.sbin/kldxref/kldxref.c
  user/sam/wifi/usr.sbin/makefs/ffs/ffs_bswap.c   (props changed)
  user/sam/wifi/usr.sbin/makefs/ffs/ffs_subr.c   (props changed)
  user/sam/wifi/usr.sbin/makefs/ffs/ufs_bswap.h   (props changed)
  user/sam/wifi/usr.sbin/makefs/getid.c   (props changed)
  user/sam/wifi/usr.sbin/mergemaster/mergemaster.8
  user/sam/wifi/usr.sbin/mergemaster/mergemaster.sh
  user/sam/wifi/usr.sbin/mld6query/mld6query.8
  user/sam/wifi/usr.sbin/pkg_install/add/pkg_add.1
  user/sam/wifi/usr.sbin/pkg_install/lib/lib.h
  user/sam/wifi/usr.sbin/pkg_install/lib/plist.c
  user/sam/wifi/usr.sbin/rrenumd/rrenumd.8
  user/sam/wifi/usr.sbin/rtadvd/rtadvd.8
  user/sam/wifi/usr.sbin/rtsold/rtsold.8
  user/sam/wifi/usr.sbin/traceroute6/traceroute6.8

Modified: user/sam/wifi/ObsoleteFiles.inc
==============================================================================
--- user/sam/wifi/ObsoleteFiles.inc	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/ObsoleteFiles.inc	Thu Jan  8 00:08:34 2009	(r186880)
@@ -14,6 +14,8 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20081223: bind 9.4.3 import, nsupdate.8 moved to nsupdate.1
+OLD_FILES+=usr/share/man/man8/nsupdate.8.gz
 # 20081223: ipprotosw.h removed
 OLD_FILES+=usr/include/netinet/ipprotosw.h
 # 20081123: vfs_mountedon.9 removed

Modified: user/sam/wifi/bin/test/test.1
==============================================================================
--- user/sam/wifi/bin/test/test.1	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/bin/test/test.1	Thu Jan  8 00:08:34 2009	(r186880)
@@ -310,7 +310,7 @@ are evaluated consistently according to 
 standards document.
 All other cases are subject to the ambiguity in the
 command semantics.
-.Sh RETURN VALUES
+.Sh EXIT STATUS
 The
 .Nm
 utility exits with one of the following values:

Modified: user/sam/wifi/contrib/csup/GNUmakefile
==============================================================================
--- user/sam/wifi/contrib/csup/GNUmakefile	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/GNUmakefile	Thu Jan  8 00:08:34 2009	(r186880)
@@ -12,8 +12,9 @@ GROUP?=	0
 UNAME=	$(shell uname -s)
 
 SRCS=	attrstack.c config.c detailer.c diff.c fattr.c fixups.c fnmatch.c \
-	globtree.c idcache.c keyword.c lister.c main.c misc.c mux.c pathcomp.c \
-	parse.c proto.c status.c stream.c threads.c token.c updater.c
+	globtree.c idcache.c keyword.c lex.rcs.c lister.c main.c misc.c mux.c \
+	pathcomp.c parse.c proto.c rcsfile.c rcsparse.c rsyncfile.c status.c \
+	stream.c threads.c token.c updater.c
 OBJS=	$(SRCS:.c=.o)
 
 WARNS=	-Wall -W -Wno-unused-parameter -Wmissing-prototypes -Wpointer-arith \

Modified: user/sam/wifi/contrib/csup/Makefile
==============================================================================
--- user/sam/wifi/contrib/csup/Makefile	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/Makefile	Thu Jan  8 00:08:34 2009	(r186880)
@@ -9,10 +9,11 @@ UNAME!=		/usr/bin/uname -s
 PROG=	csup
 SRCS=	attrstack.c config.c detailer.c diff.c fattr.c fixups.c fnmatch.c \
 	globtree.c idcache.c keyword.c lister.c main.c misc.c mux.c parse.y \
-	pathcomp.c proto.c status.c stream.c threads.c token.l updater.c
+	pathcomp.c proto.c status.c stream.c threads.c token.l updater.c \
+	rcsfile.c rcsparse.c lex.rcs.c rsyncfile.c
 
 CFLAGS+=	-I. -I${.CURDIR} -g -pthread -DHAVE_FFLAGS -DNDEBUG
-WARNS?=		6
+WARNS?=		1
 
 # A bit of tweaking is needed to get this Makefile working
 # with the bsd.prog.mk of all the *BSD OSes...

Modified: user/sam/wifi/contrib/csup/TODO
==============================================================================
--- user/sam/wifi/contrib/csup/TODO	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/TODO	Thu Jan  8 00:08:34 2009	(r186880)
@@ -28,4 +28,3 @@ MISSING FEATURES:
   checkout files (files in CVS/ subdirectores), a command line override
   to only update a specific collection and a third verbosity level to
   display commit log messages.
-- Add support for CVS mode (maybe?).

Modified: user/sam/wifi/contrib/csup/config.c
==============================================================================
--- user/sam/wifi/contrib/csup/config.c	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/config.c	Thu Jan  8 00:08:34 2009	(r186880)
@@ -133,7 +133,6 @@ config_init(const char *file, struct col
 			coll->co_options &= ~CO_CHECKRCS;
 		/* In recent versions, we always try to set the file modes. */
 		coll->co_options |= CO_SETMODE;
-		/* XXX We don't support the rsync updating algorithm yet. */
 		coll->co_options |= CO_NORSYNC;
 		error = config_parse_refusefiles(coll);
 		if (error)
@@ -444,10 +443,6 @@ coll_add(char *name)
 		    "\"%s\"\n", cur_coll->co_name);
 		exit(1);
 	}
-	if (!(cur_coll->co_options & CO_CHECKOUTMODE)) {
-		lprintf(-1, "Client only supports checkout mode\n");
-		exit(1);
-	}
 	if (!STAILQ_EMPTY(&colls)) {
 		coll = STAILQ_LAST(&colls, coll, co_next);
 		if (strcmp(coll->co_host, cur_coll->co_host) != 0) {

Modified: user/sam/wifi/contrib/csup/csup.1
==============================================================================
--- user/sam/wifi/contrib/csup/csup.1	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/csup.1	Thu Jan  8 00:08:34 2009	(r186880)
@@ -442,8 +442,6 @@ They are called
 mode and
 .Em checkout
 mode.
-.Nm
-only supports the checkout mode for now.
 .Pp
 In CVS mode, the client receives copies of the actual RCS files making
 up the master CVS repository.  CVS mode is the default mode of operation.

Modified: user/sam/wifi/contrib/csup/detailer.c
==============================================================================
--- user/sam/wifi/contrib/csup/detailer.c	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/detailer.c	Thu Jan  8 00:08:34 2009	(r186880)
@@ -30,13 +30,21 @@
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
+#include <stdio.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
 
 #include "config.h"
 #include "detailer.h"
 #include "fixups.h"
+#include "globtree.h"
 #include "misc.h"
 #include "mux.h"
 #include "proto.h"
+#include "rcsfile.h"
+#include "rsyncfile.h"
 #include "status.h"
 #include "stream.h"
 
@@ -56,8 +64,16 @@ struct detailer {
 static int	detailer_batch(struct detailer *);
 static int	detailer_coll(struct detailer *, struct coll *,
 		    struct status *);
-static int	detailer_dofile(struct detailer *, struct coll *,
+static int	detailer_dofile_co(struct detailer *, struct coll *,
 		    struct status *, char *);
+static int	detailer_dofile_rcs(struct detailer *, struct coll *, 
+		    char *, char *);
+static int	detailer_dofile_regular(struct detailer *, char *, char *);
+static int	detailer_dofile_rsync(struct detailer *, char *, char *);
+static int	detailer_checkrcsattr(struct detailer *, struct coll *, char *,
+		    struct fattr *, int);
+int		detailer_send_details(struct detailer *, struct coll *, char *,
+		    char *, struct fattr *);
 
 void *
 detailer(void *arg)
@@ -186,8 +202,13 @@ detailer_batch(struct detailer *d)
 			}
 			if (fixup->f_coll != coll)
 				break;
-			error = proto_printf(wr, "Y %s %s %s\n", fixup->f_name,
-			    coll->co_tag, coll->co_date);
+			if (coll->co_options & CO_CHECKOUTMODE)
+				error = proto_printf(wr, "Y %s %s %s\n",
+				    fixup->f_name, coll->co_tag, coll->co_date);
+			else {
+				error = proto_printf(wr, "A %s\n",
+				    fixup->f_name);
+			}
 			if (error)
 				return (DETAILER_ERR_WRITE);
 			fixup = NULL;
@@ -208,12 +229,14 @@ detailer_batch(struct detailer *d)
 static int
 detailer_coll(struct detailer *d, struct coll *coll, struct status *st)
 {
+	struct fattr *rcsattr;
 	struct stream *rd, *wr;
-	char *cmd, *file, *line, *msg;
-	int error;
+	char *attr, *cmd, *file, *line, *msg, *path, *target;
+	int error, attic;
 
 	rd = d->rd;
 	wr = d->wr;
+	attic = 0;
 	line = stream_getln(rd, NULL);
 	if (line == NULL)
 		return (DETAILER_ERR_READ);
@@ -226,17 +249,84 @@ detailer_coll(struct detailer *d, struct
 			/* Delete file. */
 			file = proto_get_ascii(&line);
 			if (file == NULL || line != NULL)
-				return (DETAILER_ERR_PROTO);
+				return (DETAILER_ERR_PROTO); 
 			error = proto_printf(wr, "D %s\n", file);
 			if (error)
 				return (DETAILER_ERR_WRITE);
 			break;
+		case 'I':
+		case 'i':
+		case 'j':
+			/* Directory operations. */
+			file = proto_get_ascii(&line);
+			if (file == NULL || line != NULL)
+				return (DETAILER_ERR_PROTO);
+			error = proto_printf(wr, "%s %s\n", cmd, file);
+			if (error)
+				return (DETAILER_ERR_WRITE);
+			break;
+		case 'J':
+			/* Set directory attributes. */
+			file = proto_get_ascii(&line);
+			attr = proto_get_ascii(&line);
+			if (file == NULL || line != NULL || attr == NULL)
+				return (DETAILER_ERR_PROTO);
+			error = proto_printf(wr, "%s %s %s\n", cmd, file, attr);
+			if (error)
+				return (DETAILER_ERR_WRITE);
+			break;
+		case 'H':
+		case 'h':
+			/* Create a hard link. */
+			file = proto_get_ascii(&line);
+			target = proto_get_ascii(&line);
+			if (file == NULL || target == NULL)
+				return (DETAILER_ERR_PROTO);
+			error = proto_printf(wr, "%s %s %s\n", cmd, file,
+			    target);
+			break;
+		case 't':
+			file = proto_get_ascii(&line);
+			attr = proto_get_ascii(&line);
+			if (file == NULL || attr == NULL || line != NULL) {
+				return (DETAILER_ERR_PROTO);
+			}
+			rcsattr = fattr_decode(attr);
+			if (rcsattr == NULL) {
+				return (DETAILER_ERR_PROTO);
+			}
+			error = detailer_checkrcsattr(d, coll, file, rcsattr,
+			    1);
+			break;
+
+		case 'T':
+			file = proto_get_ascii(&line);
+			attr = proto_get_ascii(&line);
+			if (file == NULL || attr == NULL || line != NULL)
+				return (DETAILER_ERR_PROTO);
+			rcsattr = fattr_decode(attr);
+			if (rcsattr == NULL)
+				return (DETAILER_ERR_PROTO);
+			error = detailer_checkrcsattr(d, coll, file, rcsattr,
+			    0);
+			break;
+
 		case 'U':
 			/* Add or update file. */
 			file = proto_get_ascii(&line);
 			if (file == NULL || line != NULL)
 				return (DETAILER_ERR_PROTO);
-			error = detailer_dofile(d, coll, st, file);
+			if (coll->co_options & CO_CHECKOUTMODE) {
+				error = detailer_dofile_co(d, coll, st, file);
+			} else {
+				path = cvspath(coll->co_prefix, file, 0);
+				rcsattr = fattr_frompath(path, FATTR_NOFOLLOW);
+				error = detailer_send_details(d, coll, file,
+				    path, rcsattr);
+				if (rcsattr != NULL)
+					fattr_free(rcsattr);
+				free(path);
+			}
 			if (error)
 				return (error);
 			break;
@@ -261,14 +351,110 @@ detailer_coll(struct detailer *d, struct
 	return (0);
 }
 
+/*
+ * Tell the server to update a regular file.
+ */
 static int
-detailer_dofile(struct detailer *d, struct coll *coll, struct status *st,
-    char *file)
+detailer_dofile_regular(struct detailer *d, char *name, char *path)
 {
+	struct stream *wr;
+	struct stat st;
 	char md5[MD5_DIGEST_SIZE];
+	int error;
+	
+	wr = d->wr;
+	error = stat(path, &st);
+	/* If we don't have it or it's unaccessible, we want it again. */
+	if (error) {
+		proto_printf(wr, "A %s\n", name);
+		return (0);
+	}
+
+	/* If not, we want the file to be updated. */
+	error = MD5_File(path, md5);
+	if (error) {
+		lprintf(-1, "Error reading \"%s\"\n", name);
+		return (error);
+	}
+	error = proto_printf(wr, "R %s %O %s\n", name, st.st_size, md5);
+	if (error)
+		return (DETAILER_ERR_WRITE);
+	return (0);
+}
+
+/*
+ * Tell the server to update a file with the rsync algorithm.
+ */
+static int
+detailer_dofile_rsync(struct detailer *d, char *name, char *path)
+{
+	struct stream *wr;
+	struct rsyncfile *rf;
+
+	wr = d->wr;
+	rf = rsync_open(path, 0, 1);
+	if (rf == NULL) {
+		/* Fallback if we fail in opening it. */
+		proto_printf(wr, "A %s\n", name);
+		return (0);
+	}
+	proto_printf(wr, "r %s %z %z\n", name, rsync_filesize(rf),
+	    rsync_blocksize(rf));
+	/* Detail the blocks. */
+	while (rsync_nextblock(rf) != 0)
+		proto_printf(wr, "%s %s\n", rsync_rsum(rf), rsync_blockmd5(rf));
+	proto_printf(wr, ".\n");
+	rsync_close(rf);
+	return (0);
+}
+
+/*
+ * Tell the server to update an RCS file that we have, or send it if we don't.
+ */
+static int
+detailer_dofile_rcs(struct detailer *d, struct coll *coll, char *name,
+    char *path)
+{
+	struct stream *wr;
+	struct fattr *fa;
+	struct rcsfile *rf;
+	int error;
+
+	wr = d->wr;
+	path = atticpath(coll->co_prefix, name);
+	fa = fattr_frompath(path, FATTR_NOFOLLOW);
+	if (fa == NULL) {
+		/* We don't have it, so send request to get it. */
+		error = proto_printf(wr, "A %s\n", name);
+		if (error)
+			return (DETAILER_ERR_WRITE);
+		free(path);
+		return (0);
+	}
+
+	rf = rcsfile_frompath(path, name, coll->co_cvsroot, coll->co_tag, 1);
+	free(path);
+	if (rf == NULL) {
+		error = proto_printf(wr, "A %s\n", name);
+		if (error)
+			return (DETAILER_ERR_WRITE);
+		return (0);
+	}
+	/* Tell to update the RCS file. The client version details follow. */
+	rcsfile_send_details(rf, wr);
+	rcsfile_free(rf);
+	fattr_free(fa);
+	return (0);
+}
+
+static int
+detailer_dofile_co(struct detailer *d, struct coll *coll, struct status *st,
+    char *file)
+{
 	struct stream *wr;
 	struct fattr *fa;
 	struct statusrec *sr;
+	char md5[MD5_DIGEST_SIZE];
 	char *path;
 	int error, ret;
 
@@ -337,3 +523,81 @@ detailer_dofile(struct detailer *d, stru
 		return (DETAILER_ERR_WRITE);
 	return (0);
 }
+
+int
+detailer_checkrcsattr(struct detailer *d, struct coll *coll, char *name,
+    struct fattr *server_attr, int attic)
+{
+	struct fattr *client_attr;
+	char *attr, *path;
+	int error;
+
+	/*
+	 * I don't think we can use the status file, since it only records file
+	 * attributes in cvsmode.
+	 */
+	client_attr = NULL;
+	path = cvspath(coll->co_prefix, name, attic);
+	if (path == NULL) {
+		return (DETAILER_ERR_PROTO);
+	}
+
+	if (access(path, F_OK) == 0 && 
+	    ((client_attr = fattr_frompath(path, FATTR_NOFOLLOW)) != NULL) &&
+	    fattr_equal(client_attr, server_attr)) {
+		attr = fattr_encode(client_attr, NULL, 0);
+		if (attic) {
+			error = proto_printf(d->wr, "l %s %s\n", name, attr);
+		} else {
+			error = proto_printf(d->wr, "L %s %s\n", name, attr);
+		}
+		free(attr);
+		free(path);
+		fattr_free(client_attr);
+		if (error)
+			return (DETAILER_ERR_WRITE);
+		return (0);
+	}
+	/* We don't have it, so tell the server to send it. */
+	error = detailer_send_details(d, coll, name, path, client_attr);
+	fattr_free(client_attr);
+	free(path);
+	return (error);
+}
+
+int
+detailer_send_details(struct detailer *d, struct coll *coll, char *name,
+    char *path, struct fattr *fa)
+{
+	int error;
+	size_t len;
+
+       /*
+        * Try to check if the file exists either live or dead to see if we can
+        * edit it and put it live or dead, rather than receiving the entire
+        * file.
+	*/
+	if (fa == NULL) {
+		path = atticpath(coll->co_prefix, name); 
+		fa = fattr_frompath(path, FATTR_NOFOLLOW);
+	}
+	if (fa == NULL) {
+		error = proto_printf(d->wr, "A %s\n", name);
+		if (error)
+			return (DETAILER_ERR_WRITE);
+	} else if (fattr_type(fa) == FT_FILE) {
+		if (isrcs(name, &len) && !(coll->co_options & CO_NORCS)) {
+			detailer_dofile_rcs(d, coll, name, path);
+		} else if (!(coll->co_options & CO_NORSYNC) &&
+		    !globtree_test(coll->co_norsync, name)) {
+			detailer_dofile_rsync(d, name, path);
+		} else {
+			detailer_dofile_regular(d, name, path);
+		}
+	} else {
+		error = proto_printf(d->wr, "N %s\n", name);
+		if (error)
+			return (DETAILER_ERR_WRITE);
+	}
+	return (0);
+}

Modified: user/sam/wifi/contrib/csup/diff.c
==============================================================================
--- user/sam/wifi/contrib/csup/diff.c	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/diff.c	Thu Jan  8 00:08:34 2009	(r186880)
@@ -26,9 +26,12 @@
  * $FreeBSD$
  */
 
+#include <sys/limits.h>
+
 #include <assert.h>
 #include <err.h>
 #include <errno.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -36,15 +39,20 @@
 #include "keyword.h"
 #include "misc.h"
 #include "stream.h"
+#include "queue.h"
 
 typedef long lineno_t;
 
 #define	EC_ADD	0
 #define	EC_DEL	1
+#define	MAXKEY	LONG_MAX
 
 /* Editing command and state. */
 struct editcmd {
 	int cmd;
+	long key;
+	int havetext;
+	int offset;
 	lineno_t where;
 	lineno_t count;
 	lineno_t lasta;
@@ -55,20 +63,28 @@ struct editcmd {
 	struct diffinfo *di;
 	struct stream *orig;
 	struct stream *dest;
+	LIST_ENTRY(editcmd) next;
+};
+
+struct diffstart {
+	LIST_HEAD(, editcmd) dhead;
 };
 
 static int	diff_geteditcmd(struct editcmd *, char *);
 static int	diff_copyln(struct editcmd *, lineno_t);
+static int	diff_ignoreln(struct editcmd *, lineno_t);
 static void	diff_write(struct editcmd *, void *, size_t);
+static int	diff_insert_edit(struct diffstart *, struct editcmd *);
+static void	diff_free(struct diffstart *);
 
 int
 diff_apply(struct stream *rd, struct stream *orig, struct stream *dest,
-    struct keyword *keyword, struct diffinfo *di)
+    struct keyword *keyword, struct diffinfo *di, int comode)
 {
 	struct editcmd ec;
 	lineno_t i;
-	char *line;
 	size_t size;
+	char *line;
 	int empty, error, noeol;
 
 	memset(&ec, 0, sizeof(ec));
@@ -104,7 +120,7 @@ diff_apply(struct stream *rd, struct str
 				line = stream_getln(rd, &size);
 				if (line == NULL)
 					return (-1);
-				if (line[0] == '.') {
+				if (comode && line[0] == '.') {
 					line++;
 					size--;
 				}
@@ -124,10 +140,10 @@ diff_apply(struct stream *rd, struct str
 		}
 		line = stream_getln(rd, NULL);
 	}
-	if (line == NULL)
+	if (comode && line == NULL)
 		return (-1);
 	/* If we got ".+", there's no ending newline. */
-	if (strcmp(line, ".+") == 0 && !empty)
+	if (comode && strcmp(line, ".+") == 0 && !empty)
 		noeol = 1;
 	ec.where = 0;
 	while ((line = stream_getln(orig, &size)) != NULL)
@@ -143,6 +159,198 @@ diff_apply(struct stream *rd, struct str
 	return (0);
 }
 
+/*
+ * Reverse a diff using the same algorithm as in cvsup.
+ */
+static int
+diff_write_reverse(struct stream *dest, struct diffstart *ds)
+{
+	struct editcmd *ec, *nextec;
+	long editline, endline, firstoutputlinedeleted;
+	long num_added, num_deleted, startline;
+	int num;
+
+	nextec = LIST_FIRST(&ds->dhead);
+	editline = 0;
+	num = 0;
+	while (nextec != NULL) {
+		ec = nextec;
+		nextec = LIST_NEXT(nextec, next);
+		if (nextec == NULL)
+			break;
+		num++;
+		num_deleted = 0;
+		if (ec->havetext)
+			num_deleted = ec->count;
+		num_added = num_deleted + nextec->offset - ec->offset;
+		if (num_deleted > 0) {
+			firstoutputlinedeleted = ec->key - num_deleted + 1;
+			stream_printf(dest, "d%ld %ld\n", firstoutputlinedeleted,
+			    num_deleted);
+			if (num_added <= 0)
+				continue;
+		}
+		if (num_added > 0) {
+			stream_printf(dest, "a%ld %ld\n", ec->key, num_added);
+			startline = ec->key - num_deleted + 1 + ec->offset;
+			endline = startline + num_added - 1;
+
+			/* Copy lines from original file. First ignore some. */
+			ec->editline = editline;
+			diff_ignoreln(ec,  startline - 1);
+			diff_copyln(ec, endline);
+			editline = ec->editline;
+		}
+	}
+	return (0);
+}
+
+/* 
+ * Insert a diff into the list sorted on key. Should perhaps use quicker
+ * algorithms than insertion sort, but do this for now.
+ */
+static int
+diff_insert_edit(struct diffstart *ds, struct editcmd *ec)
+{
+	struct editcmd *curec;
+
+	if (ec == NULL)
+		return (0);
+
+	if (LIST_EMPTY(&ds->dhead)) {
+		LIST_INSERT_HEAD(&ds->dhead, ec, next);
+		return (0);
+	}
+
+	/* Insertion sort based on key. */
+	LIST_FOREACH(curec, &ds->dhead, next) {
+		if (ec->key < curec->key) {
+			LIST_INSERT_BEFORE(curec, ec, next);
+			return (0);
+		}
+		if (LIST_NEXT(curec, next) == NULL)
+			break;
+	}
+	/* Just insert it after. */
+	LIST_INSERT_AFTER(curec, ec, next);
+	return (0);
+}
+
+static void 
+diff_free(struct diffstart *ds)
+{
+	struct editcmd *ec;
+
+	while(!LIST_EMPTY(&ds->dhead)) {
+		ec = LIST_FIRST(&ds->dhead);
+		LIST_REMOVE(ec, next);
+		free(ec);
+	}
+}
+
+/*
+ * Write the reverse diff from the diff in rd, and original file into
+ * destination. This algorithm is the same as used in cvsup.
+ */
+int
+diff_reverse(struct stream *rd, struct stream *orig, struct stream *dest,
+    struct keyword *keyword, struct diffinfo *di)
+{
+	struct diffstart ds;
+	struct editcmd ec, *addec, *delec;
+	lineno_t i;
+	char *line;
+	int error, offset;
+
+	memset(&ec, 0, sizeof(ec));
+	ec.orig = orig;
+	ec.dest = dest;
+	ec.keyword = keyword;
+	ec.di = di;
+	addec = NULL;
+	delec = NULL;
+	ec.havetext = 0;
+	offset = 0;
+	LIST_INIT(&ds.dhead);
+
+	/* Start with next since we need it. */
+	line = stream_getln(rd, NULL);
+	/* First we build up the list of diffs from input. */
+	while (line != NULL) {
+		error = diff_geteditcmd(&ec, line);
+		if (error)
+			break;
+		if (ec.cmd == EC_ADD) {
+			addec = xmalloc(sizeof(struct editcmd));
+			*addec = ec;
+			addec->havetext = 1;
+			/* Ignore the lines we was supposed to add. */
+			for (i = 0; i < ec.count; i++) {
+				line = stream_getln(rd, NULL);
+				if (line == NULL)
+					return (-1);
+			}
+
+			/* Get the next diff command if we have one. */
+			addec->key = addec->where + addec->count - offset;
+			if (delec != NULL &&
+			    delec->key == addec->key - addec->count) {
+				delec->key = addec->key;
+				delec->havetext = addec->havetext;
+				delec->count = addec->count;
+				diff_insert_edit(&ds, delec);
+				free(addec);
+				delec = NULL;
+				addec = NULL;
+			} else {
+				if (delec != NULL) {
+					diff_insert_edit(&ds, delec);
+				}
+				delec = NULL;
+				addec->offset = offset;
+				diff_insert_edit(&ds, addec);
+				addec = NULL;
+			}
+			offset -= ec.count;
+		} else if (ec.cmd == EC_DEL) {
+			if (delec != NULL) {
+				/* Update offset to our next. */
+				diff_insert_edit(&ds, delec);
+				delec = NULL;
+			}
+			delec = xmalloc(sizeof(struct editcmd));
+			*delec = ec;
+			delec->key = delec->where - 1 - offset;
+			delec->offset = offset;
+			delec->count = 0;
+			delec->havetext = 0;
+			/* Important to use the count we had before reset.*/
+			offset += ec.count;
+		}
+		line = stream_getln(rd, NULL);
+	}
+
+	while (line != NULL)
+		line = stream_getln(rd, NULL);
+	if (delec != NULL) {
+		diff_insert_edit(&ds, delec);
+		delec = NULL;
+	}
+
+	addec = xmalloc(sizeof(struct editcmd));
+	/* Should be filesize, but we set it to max value. */
+	addec->key = MAXKEY;
+	addec->offset = offset;
+	addec->havetext = 0;
+	addec->count = 0;
+	diff_insert_edit(&ds, addec);
+	addec = NULL;
+	diff_write_reverse(dest, &ds);
+	diff_free(&ds);
+	stream_flush(dest);
+	return (0);
+}
+
 /* Get an editing command from the diff. */
 static int
 diff_geteditcmd(struct editcmd *ec, char *line)
@@ -181,8 +389,8 @@ diff_geteditcmd(struct editcmd *ec, char
 static int
 diff_copyln(struct editcmd *ec, lineno_t to)
 {
-	char *line;
 	size_t size;
+	char *line;
 
 	while (ec->editline < to) {
 		line = stream_getln(ec->orig, &size);
@@ -194,12 +402,28 @@ diff_copyln(struct editcmd *ec, lineno_t
 	return (0);
 }
 
+/* Ignore lines from the original version of the file up to line "to". */
+static int
+diff_ignoreln(struct editcmd *ec, lineno_t to)
+{
+	size_t size;
+	char *line;
+
+	while (ec->editline < to) {
+		line = stream_getln(ec->orig, &size);
+		if (line == NULL)
+			return (-1);
+		ec->editline++;
+	}
+	return (0);
+}
+
 /* Write a new line to the file, expanding RCS keywords appropriately. */
 static void
 diff_write(struct editcmd *ec, void *buf, size_t size)
 {
-	char *line, *newline;
 	size_t newsize;
+	char *line, *newline;
 	int ret;
 
 	line = buf;

Modified: user/sam/wifi/contrib/csup/diff.h
==============================================================================
--- user/sam/wifi/contrib/csup/diff.h	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/diff.h	Thu Jan  8 00:08:34 2009	(r186880)
@@ -45,6 +45,8 @@ struct diffinfo {
 };
 
 int		 diff_apply(struct stream *, struct stream *, struct stream *,
-		     struct keyword *, struct diffinfo *);
+		     struct keyword *, struct diffinfo *, int);
+int		 diff_reverse(struct stream *, struct stream *,
+		     struct stream *, struct keyword *, struct diffinfo *);
 
 #endif /* !_DIFF_H_ */

Modified: user/sam/wifi/contrib/csup/fattr.c
==============================================================================
--- user/sam/wifi/contrib/csup/fattr.c	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/fattr.c	Thu Jan  8 00:08:34 2009	(r186880)
@@ -44,7 +44,7 @@
 /*
  * Include the appropriate definition for the file attributes we support.
  * There are two different files: fattr_bsd.h for BSD-like systems that
- * support the extended file flags à la chflags() and fattr_posix.h for
+ * support the extended file flags a la chflags() and fattr_posix.h for
  * bare POSIX systems that don't.
  */
 #ifdef HAVE_FFLAGS
@@ -449,7 +449,7 @@ fattr_encode(const struct fattr *fa, fat
 		piece++;
 	}
 	if (mask & FA_DEV) {
-		vallen = snprintf(piece->val, sizeof(piece->val), "%lld",
+		vallen = snprintf(piece->val, sizeof(piece->val), "%llx",
 		    (long long)fa->dev);
 		len += snprintf(piece->len, sizeof(piece->len), "%lld",
 		    (long long)vallen) + vallen + 1;
@@ -534,6 +534,13 @@ fattr_getlinkcount(const struct fattr *f
 	return (fa->linkcount);
 }
 
+char *
+fattr_getlinktarget(const struct fattr *fa)
+{
+
+	return (fa->linktarget);
+}
+
 /*
  * Eat the specified attribute and put it in the file attribute
  * structure.  Returns NULL on error, or a pointer to the next
@@ -732,18 +739,28 @@ fattr_makenode(const struct fattr *fa, c
 	mode_t modemask, mode;
 	int error;
 
+	error = 0;
+
 	if (fa->mask & FA_OWNER && fa->mask & FA_GROUP)
 		modemask = FA_SETIDMASK | FA_PERMMASK;
 	else
 		modemask = FA_PERMMASK;
 
 	/* We only implement fattr_makenode() for dirs for now. */
-	assert(fa->type == FT_DIRECTORY);
 	if (fa->mask & FA_MODE)
 		mode = fa->mode & modemask;
 	else
 		mode = 0700;
-	error = mkdir(path, mode);
+
+	if (fa->type == FT_DIRECTORY)
+		error = mkdir(path, mode);
+	else if (fa->type == FT_SYMLINK) {
+		error = symlink(fa->linktarget, path);
+	} else if (fa->type == FT_CDEV) {
+		lprintf(-1, "Character devices not supported!\n");
+	} else if (fa->type == FT_BDEV) {
+		lprintf(-1, "Block devices not supported!\n");
+	}
 	return (error);
 }
 
@@ -823,6 +840,19 @@ fattr_install(struct fattr *fa, const ch
 		}
 #endif
 
+		/*
+		 * If it is changed from a file to a symlink, remove the file
+		 * and create the symlink.
+		 */
+		if (inplace && (fa->type == FT_SYMLINK) &&
+		    (old->type == FT_FILE)) {
+			error = unlink(topath);
+			if (error)
+				goto bad;
+			error = symlink(fa->linktarget, topath);
+			if (error)
+				goto bad;
+		}
 		/* Determine whether we need to remove the target first. */
 		if (!inplace && (fa->type == FT_DIRECTORY) !=
 		    (old->type == FT_DIRECTORY)) {
@@ -853,8 +883,9 @@ fattr_install(struct fattr *fa, const ch
 		if (mask & FA_GROUP)
 			gid = fa->gid;
 		error = chown(frompath, uid, gid);
-		if (error)
+		if (error) {
 			goto bad;
+		}
 	}
 	if (mask & FA_MODE) {
 		newmode = fa->mode & modemask;
@@ -901,6 +932,9 @@ fattr_equal(const struct fattr *fa1, con
 	mask = fa1->mask & fa2->mask;
 	if (fa1->type == FT_UNKNOWN || fa2->type == FT_UNKNOWN)
 		return (0);
+	if (mask & FA_FILETYPE)
+		if (fa1->type != fa2->type)
+			return (0);
 	if (mask & FA_MODTIME)
 		if (fa1->modtime != fa2->modtime)
 			return (0);
@@ -936,3 +970,12 @@ fattr_equal(const struct fattr *fa1, con
 			return (0);
 	return (1);
 }
+
+/*
+ * Must have to get the correct filesize sendt by the server.
+ */
+off_t
+fattr_filesize(const struct fattr *fa)
+{
+	return (fa->size);
+}

Modified: user/sam/wifi/contrib/csup/fattr.h
==============================================================================
--- user/sam/wifi/contrib/csup/fattr.h	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/fattr.h	Thu Jan  8 00:08:34 2009	(r186880)
@@ -101,6 +101,7 @@ int		 fattr_type(const struct fattr *);
 void		 fattr_maskout(struct fattr *, int);
 int		 fattr_getmask(const struct fattr *);
 nlink_t		 fattr_getlinkcount(const struct fattr *);
+char		*fattr_getlinktarget(const struct fattr *);
 void		 fattr_umask(struct fattr *, mode_t);
 void		 fattr_merge(struct fattr *, const struct fattr *);
 void		 fattr_mergedefault(struct fattr *);
@@ -111,5 +112,7 @@ int		 fattr_install(struct fattr *, cons
 int		 fattr_equal(const struct fattr *, const struct fattr *);
 void		 fattr_free(struct fattr *);
 int		 fattr_supported(int);
+off_t		 fattr_filesize(const struct fattr *);
+
 
 #endif /* !_FATTR_H_ */

Modified: user/sam/wifi/contrib/csup/keyword.c
==============================================================================
--- user/sam/wifi/contrib/csup/keyword.c	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/keyword.c	Thu Jan  8 00:08:34 2009	(r186880)
@@ -152,6 +152,29 @@ keyword_decode_expand(const char *expand
 		return (-1);
 }
 
+const char *
+keyword_encode_expand(int expand)
+{
+
+	switch (expand) {
+		case EXPAND_DEFAULT:
+			return (".");
+		case EXPAND_KEYVALUE:
+			return ("kv");
+		case EXPAND_KEYVALUELOCKER:
+			return ("kvl");
+		case EXPAND_KEY:
+			return ("k");
+		case EXPAND_OLD:
+			return ("o");
+		case EXPAND_BINARY:
+			return ("b");
+		case EXPAND_VALUE:
+			return ("v");
+	}
+	return (NULL);
+}
+
 void
 keyword_free(struct keyword *keyword)
 {

Modified: user/sam/wifi/contrib/csup/keyword.h
==============================================================================
--- user/sam/wifi/contrib/csup/keyword.h	Wed Jan  7 23:30:26 2009	(r186879)
+++ user/sam/wifi/contrib/csup/keyword.h	Thu Jan  8 00:08:34 2009	(r186880)
@@ -42,6 +42,7 @@ struct keyword;
 
 struct keyword	*keyword_new(void);
 int		 keyword_decode_expand(const char *);
+const char	*keyword_encode_expand(int);
 int		 keyword_alias(struct keyword *, const char *, const char *);
 int		 keyword_enable(struct keyword *, const char *);
 int		 keyword_disable(struct keyword *, const char *);

Copied: user/sam/wifi/contrib/csup/lex.rcs.c (from r186879, head/contrib/csup/lex.rcs.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/sam/wifi/contrib/csup/lex.rcs.c	Thu Jan  8 00:08:34 2009	(r186880, copy of r186879, head/contrib/csup/lex.rcs.c)
@@ -0,0 +1,2094 @@
+
+#line 3 "lex.rcs.c"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 35
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-user mailing list