svn commit: r187837 - in user/thompsa/usb: . bin/chmod bin/dd cddl/contrib/opensolaris/lib/libdtrace/common contrib/gdtoa contrib/gdtoa/test contrib/gdtoa/test/obad contrib/smbfs/mount_smbfs contri...

Andrew Thompson thompsa at FreeBSD.org
Wed Jan 28 10:51:14 PST 2009


Author: thompsa
Date: Wed Jan 28 18:51:11 2009
New Revision: 187837
URL: http://svn.freebsd.org/changeset/base/187837

Log:
  MFH r187303-187835

Added:
  user/thompsa/usb/contrib/gdtoa/gdtoa_fltrnds.h
     - copied unchanged from r187835, head/contrib/gdtoa/gdtoa_fltrnds.h
  user/thompsa/usb/contrib/gdtoa/test/obad/
     - copied from r187835, head/contrib/gdtoa/test/obad/
  user/thompsa/usb/lib/libarchive/test/test_write_disk_failures.c
     - copied unchanged from r187835, head/lib/libarchive/test/test_write_disk_failures.c
  user/thompsa/usb/lib/libarchive/test/test_write_disk_sparse.c
     - copied unchanged from r187835, head/lib/libarchive/test/test_write_disk_sparse.c
  user/thompsa/usb/sbin/ipfw/dummynet.c
     - copied unchanged from r187835, head/sbin/ipfw/dummynet.c
  user/thompsa/usb/sbin/ipfw/ipfw2.h
     - copied unchanged from r187835, head/sbin/ipfw/ipfw2.h
  user/thompsa/usb/sbin/ipfw/ipv6.c
     - copied unchanged from r187835, head/sbin/ipfw/ipv6.c
  user/thompsa/usb/sbin/ipfw/main.c
     - copied unchanged from r187835, head/sbin/ipfw/main.c
  user/thompsa/usb/sbin/ipfw/nat.c
     - copied unchanged from r187835, head/sbin/ipfw/nat.c
  user/thompsa/usb/share/man/man4/man4.powerpc/snd_ai2s.4
     - copied unchanged from r187835, head/share/man/man4/man4.powerpc/snd_ai2s.4
  user/thompsa/usb/share/man/man4/man4.powerpc/snd_davbus.4
     - copied unchanged from r187835, head/share/man/man4/man4.powerpc/snd_davbus.4
  user/thompsa/usb/share/man/man4/urtw.4
     - copied unchanged from r187835, head/share/man/man4/urtw.4
  user/thompsa/usb/share/man/man5/portindex.5
     - copied unchanged from r187835, head/share/man/man5/portindex.5
  user/thompsa/usb/sys/dev/sound/macio/
     - copied from r187835, head/sys/dev/sound/macio/
  user/thompsa/usb/sys/dev/syscons/teken/teken_scs.h
     - copied unchanged from r187835, head/sys/dev/syscons/teken/teken_scs.h
  user/thompsa/usb/sys/dev/usb/if_urtw.c
     - copied unchanged from r187835, head/sys/dev/usb/if_urtw.c
  user/thompsa/usb/sys/dev/usb/if_urtwreg.h
     - copied unchanged from r187835, head/sys/dev/usb/if_urtwreg.h
  user/thompsa/usb/sys/dev/usb/if_urtwvar.h
     - copied unchanged from r187835, head/sys/dev/usb/if_urtwvar.h
  user/thompsa/usb/sys/modules/sound/driver/ai2s/
     - copied from r187835, head/sys/modules/sound/driver/ai2s/
  user/thompsa/usb/sys/modules/sound/driver/davbus/
     - copied from r187835, head/sys/modules/sound/driver/davbus/
  user/thompsa/usb/sys/modules/urtw/
     - copied from r187835, head/sys/modules/urtw/
  user/thompsa/usb/tools/regression/usr.bin/jot/regress.wX1.out
     - copied unchanged from r187835, head/tools/regression/usr.bin/jot/regress.wX1.out
  user/thompsa/usb/tools/tools/ath/athrd/
     - copied from r187835, head/tools/tools/ath/athrd/
  user/thompsa/usb/tools/tools/sysbuild/
     - copied from r187835, head/tools/tools/sysbuild/
  user/thompsa/usb/usr.bin/mail/util.c
     - copied unchanged from r187835, head/usr.bin/mail/util.c
  user/thompsa/usb/usr.sbin/i2c/
     - copied from r187835, head/usr.sbin/i2c/
Deleted:
  user/thompsa/usb/sys/dev/digi/con.CX-IBM.h
  user/thompsa/usb/sys/dev/digi/con.CX.h
  user/thompsa/usb/sys/dev/digi/con.EPCX.h
  user/thompsa/usb/sys/dev/digi/con.MBank.h
  user/thompsa/usb/tools/regression/usr.bin/jot/regress.wX.out
  user/thompsa/usb/usr.bin/mail/aux.c
Modified:
  user/thompsa/usb/   (props changed)
  user/thompsa/usb/Makefile.inc1
  user/thompsa/usb/ObsoleteFiles.inc
  user/thompsa/usb/UPDATING
  user/thompsa/usb/bin/chmod/chmod.1
  user/thompsa/usb/bin/dd/dd.1
  user/thompsa/usb/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
  user/thompsa/usb/contrib/gdtoa/   (props changed)
  user/thompsa/usb/contrib/gdtoa/README
  user/thompsa/usb/contrib/gdtoa/g_Qfmt.c
  user/thompsa/usb/contrib/gdtoa/g__fmt.c
  user/thompsa/usb/contrib/gdtoa/g_ddfmt.c
  user/thompsa/usb/contrib/gdtoa/g_dfmt.c
  user/thompsa/usb/contrib/gdtoa/g_ffmt.c
  user/thompsa/usb/contrib/gdtoa/g_xLfmt.c
  user/thompsa/usb/contrib/gdtoa/g_xfmt.c
  user/thompsa/usb/contrib/gdtoa/gdtoa.c
  user/thompsa/usb/contrib/gdtoa/gdtoa.h
  user/thompsa/usb/contrib/gdtoa/gdtoaimp.h
  user/thompsa/usb/contrib/gdtoa/gethex.c
  user/thompsa/usb/contrib/gdtoa/makefile
  user/thompsa/usb/contrib/gdtoa/smisc.c
  user/thompsa/usb/contrib/gdtoa/strtod.c
  user/thompsa/usb/contrib/gdtoa/strtodg.c
  user/thompsa/usb/contrib/gdtoa/strtof.c
  user/thompsa/usb/contrib/gdtoa/strtopQ.c
  user/thompsa/usb/contrib/gdtoa/strtopd.c
  user/thompsa/usb/contrib/gdtoa/strtopdd.c
  user/thompsa/usb/contrib/gdtoa/strtopf.c
  user/thompsa/usb/contrib/gdtoa/strtopx.c
  user/thompsa/usb/contrib/gdtoa/strtopxL.c
  user/thompsa/usb/contrib/gdtoa/test/README
  user/thompsa/usb/contrib/gdtoa/test/getround.c
  user/thompsa/usb/contrib/gdtoa/test/makefile
  user/thompsa/usb/contrib/gdtoa/test/xsum0.out
  user/thompsa/usb/contrib/gdtoa/xsum0.out
  user/thompsa/usb/contrib/smbfs/mount_smbfs/mount_smbfs.8
  user/thompsa/usb/contrib/smbfs/mount_smbfs/mount_smbfs.c
  user/thompsa/usb/contrib/wpa_supplicant/   (props changed)
  user/thompsa/usb/contrib/wpa_supplicant/ChangeLog
  user/thompsa/usb/contrib/wpa_supplicant/Makefile
  user/thompsa/usb/contrib/wpa_supplicant/base64.c
  user/thompsa/usb/contrib/wpa_supplicant/ctrl_iface.c
  user/thompsa/usb/contrib/wpa_supplicant/ctrl_iface_dbus.c
  user/thompsa/usb/contrib/wpa_supplicant/ctrl_iface_unix.c
  user/thompsa/usb/contrib/wpa_supplicant/dbus_dict_helpers.c
  user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_background.8
  user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_cli.8
  user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_cli.sgml
  user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.8
  user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.8
  user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5
  user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml
  user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.sgml
  user/thompsa/usb/contrib/wpa_supplicant/driver_ndis.c
  user/thompsa/usb/contrib/wpa_supplicant/eap.c
  user/thompsa/usb/contrib/wpa_supplicant/eap_aka.c
  user/thompsa/usb/contrib/wpa_supplicant/eap_gpsk.c
  user/thompsa/usb/contrib/wpa_supplicant/eap_gpsk_common.c
  user/thompsa/usb/contrib/wpa_supplicant/eap_ttls.c
  user/thompsa/usb/contrib/wpa_supplicant/eloop.c
  user/thompsa/usb/contrib/wpa_supplicant/eloop.h
  user/thompsa/usb/contrib/wpa_supplicant/eloop_none.c
  user/thompsa/usb/contrib/wpa_supplicant/mlme.c
  user/thompsa/usb/contrib/wpa_supplicant/os_unix.c
  user/thompsa/usb/contrib/wpa_supplicant/preauth_test.c
  user/thompsa/usb/contrib/wpa_supplicant/radius.c
  user/thompsa/usb/contrib/wpa_supplicant/sha1.c
  user/thompsa/usb/contrib/wpa_supplicant/tls_openssl.c
  user/thompsa/usb/contrib/wpa_supplicant/version.h
  user/thompsa/usb/contrib/wpa_supplicant/wpa.c
  user/thompsa/usb/contrib/wpa_supplicant/wpa.h
  user/thompsa/usb/contrib/wpa_supplicant/wpa_cli.c
  user/thompsa/usb/contrib/wpa_supplicant/wpa_gui-qt4/networkconfig.cpp
  user/thompsa/usb/contrib/wpa_supplicant/wpa_gui-qt4/scanresults.cpp
  user/thompsa/usb/contrib/wpa_supplicant/wpa_gui-qt4/wpagui.cpp
  user/thompsa/usb/contrib/wpa_supplicant/wpa_gui/networkconfig.ui.h
  user/thompsa/usb/contrib/wpa_supplicant/wpa_gui/userdatarequest.ui.h
  user/thompsa/usb/contrib/wpa_supplicant/wpa_gui/wpagui.ui.h
  user/thompsa/usb/contrib/wpa_supplicant/wpa_i.h
  user/thompsa/usb/contrib/wpa_supplicant/wpa_supplicant.c
  user/thompsa/usb/etc/defaults/rc.conf
  user/thompsa/usb/etc/devd.conf
  user/thompsa/usb/etc/rc.d/jail
  user/thompsa/usb/etc/rc.d/ntpd
  user/thompsa/usb/etc/rc.shutdown
  user/thompsa/usb/etc/regdomain.xml
  user/thompsa/usb/include/paths.h
  user/thompsa/usb/lib/libarchive/archive_write_disk.c
  user/thompsa/usb/lib/libarchive/test/Makefile
  user/thompsa/usb/lib/libarchive/test/test_write_disk_secure.c
  user/thompsa/usb/lib/libc/gen/sysctl.3
  user/thompsa/usb/lib/libc/locale/wcsftime.c
  user/thompsa/usb/lib/libc/stdio/ferror.3
  user/thompsa/usb/lib/libc/stdio/printf.3
  user/thompsa/usb/lib/libc/stdio/vfprintf.c
  user/thompsa/usb/lib/libc/stdio/vfscanf.c
  user/thompsa/usb/lib/libc/stdio/vfwprintf.c
  user/thompsa/usb/lib/libc/stdio/vfwscanf.c
  user/thompsa/usb/lib/libc/string/strlen.c
  user/thompsa/usb/lib/libpmc/libpmc.c
  user/thompsa/usb/libexec/comsat/comsat.c
  user/thompsa/usb/sbin/dumpfs/dumpfs.8
  user/thompsa/usb/sbin/dumpfs/dumpfs.c
  user/thompsa/usb/sbin/fsck_ffs/fsck.h
  user/thompsa/usb/sbin/fsck_ffs/fsck_ffs.8
  user/thompsa/usb/sbin/fsck_ffs/fsutil.c
  user/thompsa/usb/sbin/fsck_ffs/main.c
  user/thompsa/usb/sbin/ifconfig/ifieee80211.c
  user/thompsa/usb/sbin/ipfw/Makefile
  user/thompsa/usb/sbin/ipfw/ipfw2.c
  user/thompsa/usb/sbin/mount_nfs/mount_nfs.c
  user/thompsa/usb/sbin/mount_ntfs/mount_ntfs.8
  user/thompsa/usb/sbin/recoverdisk/recoverdisk.c
  user/thompsa/usb/sbin/restore/interactive.c
  user/thompsa/usb/sbin/route/route.c
  user/thompsa/usb/share/man/man4/Makefile
  user/thompsa/usb/share/man/man4/bce.4
  user/thompsa/usb/share/man/man4/bge.4
  user/thompsa/usb/share/man/man4/gem.4
  user/thompsa/usb/share/man/man4/hme.4
  user/thompsa/usb/share/man/man4/iic.4
  user/thompsa/usb/share/man/man4/man4.powerpc/Makefile
  user/thompsa/usb/share/man/man4/nge.4
  user/thompsa/usb/share/man/man4/sdhci.4
  user/thompsa/usb/share/man/man4/sk.4
  user/thompsa/usb/share/man/man5/Makefile
  user/thompsa/usb/share/man/man5/rc.conf.5
  user/thompsa/usb/share/man/man7/build.7
  user/thompsa/usb/share/man/man7/ports.7
  user/thompsa/usb/share/man/man7/tuning.7
  user/thompsa/usb/share/man/man9/kthread.9
  user/thompsa/usb/share/zoneinfo/   (props changed)
  user/thompsa/usb/share/zoneinfo/asia
  user/thompsa/usb/share/zoneinfo/backward
  user/thompsa/usb/share/zoneinfo/europe
  user/thompsa/usb/share/zoneinfo/leapseconds
  user/thompsa/usb/share/zoneinfo/northamerica
  user/thompsa/usb/share/zoneinfo/zone.tab
  user/thompsa/usb/sys/   (props changed)
  user/thompsa/usb/sys/amd64/amd64/cpu_switch.S
  user/thompsa/usb/sys/amd64/amd64/identcpu.c
  user/thompsa/usb/sys/amd64/conf/GENERIC
  user/thompsa/usb/sys/arm/arm/cpufunc_asm_sheeva.S   (props changed)
  user/thompsa/usb/sys/arm/at91/at91.c
  user/thompsa/usb/sys/arm/at91/at91_mci.c
  user/thompsa/usb/sys/arm/at91/at91_twi.c
  user/thompsa/usb/sys/arm/at91/at91_twireg.h
  user/thompsa/usb/sys/arm/at91/at91var.h
  user/thompsa/usb/sys/arm/at91/uart_bus_at91usart.c
  user/thompsa/usb/sys/arm/at91/uart_cpu_at91rm9200usart.c
  user/thompsa/usb/sys/arm/at91/uart_dev_at91usart.c
  user/thompsa/usb/sys/arm/include/vmparam.h
  user/thompsa/usb/sys/arm/xscale/i8134x/i81342_mcu.c
  user/thompsa/usb/sys/boot/forth/loader.conf
  user/thompsa/usb/sys/cam/cam_periph.c
  user/thompsa/usb/sys/cam/cam_xpt.c
  user/thompsa/usb/sys/cam/scsi/scsi_low.c
  user/thompsa/usb/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
  user/thompsa/usb/sys/compat/linprocfs/linprocfs.c
  user/thompsa/usb/sys/compat/linux/linux_stats.c
  user/thompsa/usb/sys/compat/svr4/svr4_types.h
  user/thompsa/usb/sys/conf/NOTES
  user/thompsa/usb/sys/conf/files.amd64
  user/thompsa/usb/sys/conf/files.i386
  user/thompsa/usb/sys/conf/files.pc98
  user/thompsa/usb/sys/conf/files.powerpc
  user/thompsa/usb/sys/conf/kmod.mk
  user/thompsa/usb/sys/conf/newvers.sh
  user/thompsa/usb/sys/conf/options
  user/thompsa/usb/sys/contrib/altq/altq/altq_subr.c
  user/thompsa/usb/sys/contrib/pf/   (props changed)
  user/thompsa/usb/sys/dev/acpica/acpi_battery.c
  user/thompsa/usb/sys/dev/agp/agp_via.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ah.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ah.h
  user/thompsa/usb/sys/dev/ath/ath_hal/ah_internal.h
  user/thompsa/usb/sys/dev/ath/ath_hal/ah_regdomain.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5210/ar5210.h
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5211/ar5211.h
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar2316.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar2317.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar2413.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar2425.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5111.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5112.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212.h
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_ani.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5413.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5312/ar5312.h
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar2133.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416.h
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416_cal.h
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
  user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
  user/thompsa/usb/sys/dev/ath/if_ath.c
  user/thompsa/usb/sys/dev/ath/if_athvar.h
  user/thompsa/usb/sys/dev/bce/if_bce.c
  user/thompsa/usb/sys/dev/hwpmc/hwpmc_core.c
  user/thompsa/usb/sys/dev/hwpmc/hwpmc_intel.c
  user/thompsa/usb/sys/dev/hwpmc/pmc_events.h
  user/thompsa/usb/sys/dev/iicbus/iic.c
  user/thompsa/usb/sys/dev/iicbus/iic.h
  user/thompsa/usb/sys/dev/iicbus/iicbus.c
  user/thompsa/usb/sys/dev/mmc/mmc.c
  user/thompsa/usb/sys/dev/msk/if_msk.c
  user/thompsa/usb/sys/dev/msk/if_mskreg.h
  user/thompsa/usb/sys/dev/pci/pci.c
  user/thompsa/usb/sys/dev/ppbus/if_plip.c
  user/thompsa/usb/sys/dev/ppbus/immio.c
  user/thompsa/usb/sys/dev/ppbus/lpbb.c
  user/thompsa/usb/sys/dev/ppbus/lpt.c
  user/thompsa/usb/sys/dev/ppbus/pcfclock.c
  user/thompsa/usb/sys/dev/ppbus/ppb_1284.c
  user/thompsa/usb/sys/dev/ppbus/ppb_base.c
  user/thompsa/usb/sys/dev/ppbus/ppb_msq.c
  user/thompsa/usb/sys/dev/ppbus/ppbconf.c
  user/thompsa/usb/sys/dev/ppbus/ppbconf.h
  user/thompsa/usb/sys/dev/ppbus/ppi.c
  user/thompsa/usb/sys/dev/ppbus/pps.c
  user/thompsa/usb/sys/dev/ppbus/vpo.c
  user/thompsa/usb/sys/dev/ppbus/vpoio.c
  user/thompsa/usb/sys/dev/ppc/ppc.c
  user/thompsa/usb/sys/dev/ppc/ppc_acpi.c
  user/thompsa/usb/sys/dev/ppc/ppc_isa.c
  user/thompsa/usb/sys/dev/ppc/ppc_pci.c
  user/thompsa/usb/sys/dev/ppc/ppc_puc.c
  user/thompsa/usb/sys/dev/ppc/ppcreg.h
  user/thompsa/usb/sys/dev/ppc/ppcvar.h
  user/thompsa/usb/sys/dev/puc/pucdata.c
  user/thompsa/usb/sys/dev/re/if_re.c
  user/thompsa/usb/sys/dev/sound/pci/cmi.c
  user/thompsa/usb/sys/dev/sound/pci/hda/hdac.c
  user/thompsa/usb/sys/dev/speaker/spkr.c
  user/thompsa/usb/sys/dev/syscons/teken/sequences
  user/thompsa/usb/sys/dev/syscons/teken/teken.c
  user/thompsa/usb/sys/dev/syscons/teken/teken.h
  user/thompsa/usb/sys/dev/syscons/teken/teken_demo.c
  user/thompsa/usb/sys/dev/syscons/teken/teken_subr.h
  user/thompsa/usb/sys/dev/syscons/teken/teken_subr_compat.h
  user/thompsa/usb/sys/dev/usb/ehci_ixp4xx.c   (props changed)
  user/thompsa/usb/sys/dev/usb/u3g.c
  user/thompsa/usb/sys/dev/usb/uftdi.c
  user/thompsa/usb/sys/dev/usb/usbdevs
  user/thompsa/usb/sys/dev/usb/usbdi.c
  user/thompsa/usb/sys/dev/usb2/bluetooth/ng_ubt2.c
  user/thompsa/usb/sys/dev/usb2/bluetooth/ng_ubt2_var.h
  user/thompsa/usb/sys/dev/usb2/controller/uhci2.c
  user/thompsa/usb/sys/dev/usb2/controller/usb2_controller.h
  user/thompsa/usb/sys/dev/usb2/core/usb2_hub.c
  user/thompsa/usb/sys/dev/usb2/include/usb2_devid.h
  user/thompsa/usb/sys/dev/usb2/include/usb2_devtable.h
  user/thompsa/usb/sys/dev/usb2/include/usb2_ioctl.h
  user/thompsa/usb/sys/dev/usb2/quirk/usb2_quirk.c
  user/thompsa/usb/sys/dev/usb2/serial/u3g2.c
  user/thompsa/usb/sys/dev/usb2/serial/ufoma2.c
  user/thompsa/usb/sys/dev/usb2/storage/umass2.c
  user/thompsa/usb/sys/dev/xen/blkback/blkback.c
  user/thompsa/usb/sys/fs/cd9660/cd9660_rrip.c
  user/thompsa/usb/sys/fs/fifofs/fifo_vnops.c
  user/thompsa/usb/sys/geom/geom_dev.c
  user/thompsa/usb/sys/gnu/fs/ext2fs/ext2_fs.h
  user/thompsa/usb/sys/gnu/fs/ext2fs/ext2_fs_sb.h
  user/thompsa/usb/sys/gnu/fs/ext2fs/ext2_inode.c
  user/thompsa/usb/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c
  user/thompsa/usb/sys/gnu/fs/ext2fs/ext2_vfsops.c
  user/thompsa/usb/sys/i386/conf/GENERIC
  user/thompsa/usb/sys/i386/cpufreq/smist.c
  user/thompsa/usb/sys/i386/i386/identcpu.c
  user/thompsa/usb/sys/ia64/ia64/pmap.c
  user/thompsa/usb/sys/kern/imgact_elf.c
  user/thompsa/usb/sys/kern/kern_clock.c
  user/thompsa/usb/sys/kern/kern_jail.c
  user/thompsa/usb/sys/kern/kern_malloc.c
  user/thompsa/usb/sys/kern/kern_proc.c
  user/thompsa/usb/sys/kern/kern_synch.c
  user/thompsa/usb/sys/kern/kern_sysctl.c
  user/thompsa/usb/sys/kern/kern_timeout.c
  user/thompsa/usb/sys/kern/sched_4bsd.c
  user/thompsa/usb/sys/kern/sched_ule.c
  user/thompsa/usb/sys/kern/subr_pcpu.c
  user/thompsa/usb/sys/kern/subr_smp.c
  user/thompsa/usb/sys/kern/subr_witness.c
  user/thompsa/usb/sys/kern/sys_generic.c
  user/thompsa/usb/sys/kern/tty.c
  user/thompsa/usb/sys/kern/tty_pty.c
  user/thompsa/usb/sys/kern/uipc_mbuf.c
  user/thompsa/usb/sys/kern/vfs_aio.c
  user/thompsa/usb/sys/kern/vfs_cache.c
  user/thompsa/usb/sys/kern/vfs_subr.c
  user/thompsa/usb/sys/kern/vfs_syscalls.c
  user/thompsa/usb/sys/kern/vfs_vnops.c
  user/thompsa/usb/sys/kern/vnode_if.src
  user/thompsa/usb/sys/mips/include/pmap.h
  user/thompsa/usb/sys/mips/mips/elf64_machdep.c   (props changed)
  user/thompsa/usb/sys/mips/mips/machdep.c
  user/thompsa/usb/sys/mips/mips/pmap.c
  user/thompsa/usb/sys/modules/Makefile
  user/thompsa/usb/sys/modules/agp/Makefile
  user/thompsa/usb/sys/modules/sound/driver/Makefile
  user/thompsa/usb/sys/modules/usb2/Makefile
  user/thompsa/usb/sys/modules/usb2/controller_atmegadci/   (props changed)
  user/thompsa/usb/sys/net/if.c
  user/thompsa/usb/sys/net/rtsock.c
  user/thompsa/usb/sys/net80211/_ieee80211.h
  user/thompsa/usb/sys/net80211/ieee80211.c
  user/thompsa/usb/sys/net80211/ieee80211.h
  user/thompsa/usb/sys/net80211/ieee80211_crypto.h
  user/thompsa/usb/sys/net80211/ieee80211_ddb.c
  user/thompsa/usb/sys/net80211/ieee80211_ht.h
  user/thompsa/usb/sys/net80211/ieee80211_ioctl.c
  user/thompsa/usb/sys/net80211/ieee80211_ioctl.h
  user/thompsa/usb/sys/net80211/ieee80211_node.h
  user/thompsa/usb/sys/net80211/ieee80211_regdomain.c
  user/thompsa/usb/sys/net80211/ieee80211_regdomain.h
  user/thompsa/usb/sys/net80211/ieee80211_var.h
  user/thompsa/usb/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c
  user/thompsa/usb/sys/netgraph/ng_deflate.c
  user/thompsa/usb/sys/netgraph/ng_iface.c
  user/thompsa/usb/sys/netgraph/ng_iface.h
  user/thompsa/usb/sys/netgraph/ng_mppc.c
  user/thompsa/usb/sys/netgraph/ng_ppp.c
  user/thompsa/usb/sys/netgraph/ng_pred1.c
  user/thompsa/usb/sys/netinet/in.c
  user/thompsa/usb/sys/netinet/in_pcb.c
  user/thompsa/usb/sys/netinet/ip_fw2.c
  user/thompsa/usb/sys/netinet/libalias/alias_ftp.c
  user/thompsa/usb/sys/netinet/libalias/alias_irc.c
  user/thompsa/usb/sys/netinet/libalias/alias_nbt.c
  user/thompsa/usb/sys/netinet/raw_ip.c
  user/thompsa/usb/sys/netinet/tcp_var.h
  user/thompsa/usb/sys/netinet6/in6_ifattach.c
  user/thompsa/usb/sys/netinet6/raw_ip6.c
  user/thompsa/usb/sys/netipsec/ipsec_mbuf.c
  user/thompsa/usb/sys/nfs4client/nfs4_subs.c
  user/thompsa/usb/sys/nfsclient/nfs_vfsops.c
  user/thompsa/usb/sys/nfsclient/nfs_vnops.c
  user/thompsa/usb/sys/nfsserver/nfs_srvsubs.c
  user/thompsa/usb/sys/opencrypto/cryptosoft.c
  user/thompsa/usb/sys/pci/if_rlreg.h
  user/thompsa/usb/sys/powerpc/conf/GENERIC
  user/thompsa/usb/sys/powerpc/conf/NOTES
  user/thompsa/usb/sys/powerpc/powermac/ata_macio.c
  user/thompsa/usb/sys/powerpc/powerpc/intr_machdep.c
  user/thompsa/usb/sys/security/mac/mac_audit.c
  user/thompsa/usb/sys/security/mac/mac_framework.c
  user/thompsa/usb/sys/security/mac/mac_priv.c
  user/thompsa/usb/sys/sun4v/include/pcpu.h
  user/thompsa/usb/sys/sys/conf.h
  user/thompsa/usb/sys/sys/jail.h
  user/thompsa/usb/sys/sys/ktr.h
  user/thompsa/usb/sys/sys/lock.h
  user/thompsa/usb/sys/sys/param.h
  user/thompsa/usb/sys/sys/pcpu.h
  user/thompsa/usb/sys/sys/pmc.h
  user/thompsa/usb/sys/sys/sched.h
  user/thompsa/usb/sys/sys/sysctl.h
  user/thompsa/usb/sys/sys/types.h
  user/thompsa/usb/sys/sys/vnode.h
  user/thompsa/usb/sys/ufs/ffs/ffs_alloc.c
  user/thompsa/usb/sys/ufs/ffs/ffs_balloc.c
  user/thompsa/usb/sys/ufs/ffs/ffs_extern.h
  user/thompsa/usb/sys/ufs/ffs/ffs_inode.c
  user/thompsa/usb/sys/ufs/ffs/ffs_vnops.c
  user/thompsa/usb/sys/ufs/ufs/ufs_dirhash.c
  user/thompsa/usb/sys/ufs/ufs/ufs_lookup.c
  user/thompsa/usb/sys/ufs/ufs/ufs_vnops.c
  user/thompsa/usb/sys/vm/uma.h
  user/thompsa/usb/sys/vm/uma_core.c
  user/thompsa/usb/sys/vm/uma_dbg.c
  user/thompsa/usb/sys/vm/uma_int.h
  user/thompsa/usb/sys/vm/vm_meter.c
  user/thompsa/usb/sys/vm/vm_mmap.c
  user/thompsa/usb/tools/regression/fstest/tests/conf
  user/thompsa/usb/tools/regression/fstest/tests/misc.sh
  user/thompsa/usb/tools/regression/usr.bin/jot/regress.sh
  user/thompsa/usb/tools/sched/schedgraph.py
  user/thompsa/usb/tools/tools/ath/Makefile
  user/thompsa/usb/tools/tools/ath/Makefile.inc
  user/thompsa/usb/usr.bin/fetch/fetch.c
  user/thompsa/usb/usr.bin/mail/Makefile
  user/thompsa/usb/usr.bin/make/Makefile
  user/thompsa/usb/usr.bin/make/buf.c
  user/thompsa/usb/usr.bin/make/suff.c
  user/thompsa/usb/usr.bin/split/split.1
  user/thompsa/usb/usr.bin/truss/truss.1
  user/thompsa/usb/usr.sbin/Makefile
  user/thompsa/usb/usr.sbin/config/config.8
  user/thompsa/usb/usr.sbin/jail/jail.8
  user/thompsa/usb/usr.sbin/makefs/ffs/ffs_bswap.c   (props changed)
  user/thompsa/usb/usr.sbin/makefs/ffs/ffs_subr.c   (props changed)
  user/thompsa/usb/usr.sbin/makefs/ffs/ufs_bswap.h   (props changed)
  user/thompsa/usb/usr.sbin/makefs/getid.c   (props changed)
  user/thompsa/usb/usr.sbin/sysinstall/devices.c

Modified: user/thompsa/usb/Makefile.inc1
==============================================================================
--- user/thompsa/usb/Makefile.inc1	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/Makefile.inc1	Wed Jan 28 18:51:11 2009	(r187837)
@@ -702,6 +702,10 @@ distrib-dirs distribution:
 NO_KERNELCLEAN=	t
 NO_KERNELCONFIG=	t
 NO_KERNELDEPEND=	t
+# Shortcut for KERNCONF=Blah -DKERNFAST is now KERNFAST=Blah
+.if !defined(KERNCONF) && ${KERNFAST} != "1"
+KERNCONF=${KERNFAST}
+.endif
 .endif
 .if !defined(KERNCONF) && defined(KERNEL)
 KERNCONF=	${KERNEL}

Modified: user/thompsa/usb/ObsoleteFiles.inc
==============================================================================
--- user/thompsa/usb/ObsoleteFiles.inc	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/ObsoleteFiles.inc	Wed Jan 28 18:51:11 2009	(r187837)
@@ -14,6 +14,11 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20090122: tzdata2009a import
+OLD_FILES+=usr/share/zoneinfo/Asia/Katmandu
+# 20090102: file 4.26 import
+OLD_FILES+=usr/share/misc/magic.mime
+OLD_FILES+=usr/share/misc/magic.mime.mgc
 # 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

Modified: user/thompsa/usb/UPDATING
==============================================================================
--- user/thompsa/usb/UPDATING	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/UPDATING	Wed Jan 28 18:51:11 2009	(r187837)
@@ -22,6 +22,14 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
 	to maximize performance.  (To disable malloc debugging, run
 	ln -s aj /etc/malloc.conf.)
 
+20090119:
+	NTFS has been removed from GENERIC kernel on amd64 to match
+	GENERIC on i386. Should not cause any issues since mount_ntfs(8)
+	will load ntfs.ko module automatically when NTFS support is
+	actually needed, unless ntfs.ko is not installed or security
+	level prohibits loading kernel modules. If either is the case,
+	"options NTFS" has to be added into kernel config.
+
 20090115:
 	TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
 	New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to

Modified: user/thompsa/usb/bin/chmod/chmod.1
==============================================================================
--- user/thompsa/usb/bin/chmod/chmod.1	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/bin/chmod/chmod.1	Wed Jan 28 18:51:11 2009	(r187837)
@@ -32,7 +32,7 @@
 .\"	@(#)chmod.1	8.4 (Berkeley) 3/31/94
 .\" $FreeBSD$
 .\"
-.Dd December 22, 2006
+.Dd January 26, 2009
 .Dt CHMOD 1
 .Os
 .Sh NAME
@@ -281,6 +281,10 @@ Operations upon the other permissions on
 ``o'' by itself), in combination with the
 .Ar perm
 symbols ``s'' or ``t'', are ignored.
+.Pp
+The ``w'' permission on directories will permit file creation, relocation,
+and copy into that directory.
+Files created within the directory itself will inherit its group ID.
 .Sh EXAMPLES
 .Bl -tag -width "u=rwx,go=u-w" -compact
 .It Li 644
@@ -343,4 +347,4 @@ command appeared in
 .Sh BUGS
 There is no
 .Ar perm
-option for the naughty bits.
+option for the naughty bits of a horse.

Modified: user/thompsa/usb/bin/dd/dd.1
==============================================================================
--- user/thompsa/usb/bin/dd/dd.1	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/bin/dd/dd.1	Wed Jan 28 18:51:11 2009	(r187837)
@@ -392,6 +392,11 @@ Remove parity bit from a file:
 Check for (even) parity errors on a file:
 .Pp
 .Dl "dd if=file conv=pareven | cmp -x - file"
+.Pp
+To create an image of a Mode-1 CD-ROM, which is a commonly used format
+for data CD-ROM disks, use a block size of 2048 bytes:
+.Pp
+.Dl "dd if=/dev/acd0 of=filename.iso bs=2048"
 .Sh SEE ALSO
 .Xr cp 1 ,
 .Xr mt 1 ,

Modified: user/thompsa/usb/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
==============================================================================
--- user/thompsa/usb/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -1739,15 +1739,11 @@ dtrace_program_link(dtrace_hdl_t *dtp, d
 		 * Arches which are 32-bit only just use the normal
 		 * library path.
 		 */
-#if defined(__i386__)
-		int use_32 = 1;  /* use /usr/lib/... -sson */
-#else
 		int use_32 = 0;
 #endif
-#endif
 
 		(void) snprintf(drti, sizeof (drti), "/usr/lib%s/dtrace/drti.o",
-		    use_32 ? "":"32");
+		    use_32 ? "32":"");
 
 		len = snprintf(&tmp, 1, fmt, dtp->dt_ld_path, file, tfile,
 		    drti) + 1;

Modified: user/thompsa/usb/contrib/gdtoa/README
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/README	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/README	Wed Jan 28 18:51:11 2009	(r187837)
@@ -56,7 +56,9 @@ two letters:
 		whose sum is the desired value
 
 For decimal -> binary conversions, there are three families of
-helper routines: one for round-nearest:
+helper routines: one for round-nearest (or the current rounding
+mode on IEEE-arithmetic systems that provide the C99 fegetround()
+function, if compiled with -DHonor_FLT_ROUNDS):
 
 	strtof
 	strtod
@@ -191,6 +193,9 @@ in the buffer, if the buffer was long en
 conversion are easily done with the help of gdtoa(), such as %e or %f
 style and conversions with direction of rounding specified (so that, if
 desired, the decimal value is either >= or <= the binary value).
+On IEEE-arithmetic systems that provide the C99 fegetround() function,
+if compiled with -DHonor_FLT_ROUNDS, these routines honor the current
+rounding mode.
 
 For an example of more general conversions based on dtoa(), see
 netlib's "printf.c from ampl/solvers".
@@ -342,5 +347,11 @@ standard says it should -- when Honor_FL
 current rounding mode is obtained from fegetround() rather than from
 FLT_ROUNDS, unless Trust_FLT_ROUNDS is also #defined.
 
+Compile with -DUSE_LOCALE to use the current locale; otherwise
+decimal points are assumed to be '.'.  With -DUSE_LOCALE, unless
+you also compile with -DNO_LOCALE_CACHE, the details about the
+current "decimal point" character string are cached and assumed not
+to change during the program's execution.
+
 Please send comments to	David M. Gay (dmg at acm dot org, with " at "
 changed at "@" and " dot " changed to ".").

Modified: user/thompsa/usb/contrib/gdtoa/g_Qfmt.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/g_Qfmt.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/g_Qfmt.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -51,15 +51,20 @@ THIS SOFTWARE.
 
  char*
 #ifdef KR_headers
-g_Qfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; unsigned bufsize;
+g_Qfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; size_t bufsize;
 #else
-g_Qfmt(char *buf, void *V, int ndig, unsigned bufsize)
+g_Qfmt(char *buf, void *V, int ndig, size_t bufsize)
 #endif
 {
-	static FPI fpi = { 113, 1-16383-113+1, 32766 - 16383 - 113 + 1, 1, 0 };
+	static FPI fpi0 = { 113, 1-16383-113+1, 32766 - 16383 - 113 + 1, 1, 0 };
 	char *b, *s, *se;
 	ULong bits[4], *L, sign;
 	int decpt, ex, i, mode;
+#ifdef Honor_FLT_ROUNDS
+#include "gdtoa_fltrnds.h"
+#else
+#define fpi &fpi0
+#endif
 
 	if (ndig < 0)
 		ndig = 0;
@@ -109,6 +114,6 @@ g_Qfmt(char *buf, void *V, int ndig, uns
 			return 0;
 		mode = 0;
 		}
-	s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se);
-	return g__fmt(buf, s, se, decpt, sign);
+	s = gdtoa(fpi, ex, bits, &i, mode, ndig, &decpt, &se);
+	return g__fmt(buf, s, se, decpt, sign, bufsize);
 	}

Modified: user/thompsa/usb/contrib/gdtoa/g__fmt.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/g__fmt.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/g__fmt.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -37,24 +37,51 @@ THIS SOFTWARE.
 
  char *
 #ifdef KR_headers
-g__fmt(b, s, se, decpt, sign) char *b; char *s; char *se; int decpt; ULong sign;
+g__fmt(b, s, se, decpt, sign, blen) char *b; char *s; char *se; int decpt; ULong sign; size_t blen;
 #else
-g__fmt(char *b, char *s, char *se, int decpt, ULong sign)
+g__fmt(char *b, char *s, char *se, int decpt, ULong sign, size_t blen)
 #endif
 {
 	int i, j, k;
-	char *s0 = s;
+	char *be, *s0;
+	size_t len;
 #ifdef USE_LOCALE
-	char decimalpoint = *localeconv()->decimal_point;
+#ifdef NO_LOCALE_CACHE
+	char *decimalpoint = localeconv()->decimal_point;
+	size_t dlen = strlen(decimalpoint);
 #else
-#define decimalpoint '.'
+	char *decimalpoint;
+	static char *decimalpoint_cache;
+	static size_t dlen;
+	if (!(s0 = decimalpoint_cache)) {
+		s0 = localeconv()->decimal_point;
+		dlen = strlen(s0);
+		if ((decimalpoint_cache = (char*)malloc(strlen(s0) + 1))) {
+			strcpy(decimalpoint_cache, s0);
+			s0 = decimalpoint_cache;
+			}
+		}
+	decimalpoint = s0;
+#endif
+#else
+#define dlen 0
 #endif
+	s0 = s;
+	len = (se-s) + dlen + 6; /* 6 = sign + e+dd + trailing null */
+	if (blen < len)
+		goto ret0;
+	be = b + blen - 1;
 	if (sign)
 		*b++ = '-';
 	if (decpt <= -4 || decpt > se - s + 5) {
 		*b++ = *s++;
 		if (*s) {
-			*b++ = decimalpoint;
+#ifdef USE_LOCALE
+			while((*b = *decimalpoint++))
+				++b;
+#else
+			*b++ = '.';
+#endif
 			while((*b = *s++) !=0)
 				b++;
 			}
@@ -69,6 +96,8 @@ g__fmt(char *b, char *s, char *se, int d
 		for(j = 2, k = 10; 10*k <= decpt; j++, k *= 10){}
 		for(;;) {
 			i = decpt / k;
+			if (b >= be)
+				goto ret0;
 			*b++ = i + '0';
 			if (--j <= 0)
 				break;
@@ -78,22 +107,41 @@ g__fmt(char *b, char *s, char *se, int d
 		*b = 0;
 		}
 	else if (decpt <= 0) {
-		*b++ = decimalpoint;
+#ifdef USE_LOCALE
+		while((*b = *decimalpoint++))
+			++b;
+#else
+		*b++ = '.';
+#endif
+		if (be < b - decpt + (se - s))
+			goto ret0;
 		for(; decpt < 0; decpt++)
 			*b++ = '0';
-		while((*b = *s++) !=0)
+		while((*b = *s++) != 0)
 			b++;
 		}
 	else {
-		while((*b = *s++) !=0) {
+		while((*b = *s++) != 0) {
 			b++;
-			if (--decpt == 0 && *s)
-				*b++ = decimalpoint;
+			if (--decpt == 0 && *s) {
+#ifdef USE_LOCALE
+				while(*b = *decimalpoint++)
+					++b;
+#else
+				*b++ = '.';
+#endif
+				}
+			}
+		if (b + decpt > be) {
+ ret0:
+			b = 0;
+			goto ret;
 			}
 		for(; decpt > 0; decpt--)
 			*b++ = '0';
 		*b = 0;
 		}
+ ret:
 	freedtoa(s0);
 	return b;
  	}

Modified: user/thompsa/usb/contrib/gdtoa/g_ddfmt.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/g_ddfmt.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/g_ddfmt.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -33,9 +33,9 @@ THIS SOFTWARE.
 
  char *
 #ifdef KR_headers
-g_ddfmt(buf, dd, ndig, bufsize) char *buf; double *dd; int ndig; unsigned bufsize;
+g_ddfmt(buf, dd, ndig, bufsize) char *buf; double *dd; int ndig; size_t bufsize;
 #else
-g_ddfmt(char *buf, double *dd, int ndig, unsigned bufsize)
+g_ddfmt(char *buf, double *dd, int ndig, size_t bufsize)
 #endif
 {
 	FPI fpi;
@@ -44,6 +44,21 @@ g_ddfmt(char *buf, double *dd, int ndig,
 	int bx, by, decpt, ex, ey, i, j, mode;
 	Bigint *x, *y, *z;
 	double ddx[2];
+#ifdef Honor_FLT_ROUNDS /*{{*/
+	int Rounding;
+#ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */
+	Rounding = Flt_Rounds;
+#else /*}{*/
+	Rounding = 1;
+	switch(fegetround()) {
+	  case FE_TOWARDZERO:	Rounding = 0; break;
+	  case FE_UPWARD:	Rounding = 2; break;
+	  case FE_DOWNWARD:	Rounding = 3;
+	  }
+#endif /*}}*/
+#else /*}{*/
+#define Rounding FPI_Round_near
+#endif /*}}*/
 
 	if (bufsize < 10 || bufsize < ndig + 8)
 		return 0;
@@ -144,11 +159,11 @@ g_ddfmt(char *buf, double *dd, int ndig,
 		}
 	fpi.emin = 1-1023-53+1;
 	fpi.emax = 2046-1023-106+1;
-	fpi.rounding = FPI_Round_near;
+	fpi.rounding = Rounding;
 	fpi.sudden_underflow = 0;
 	i = STRTOG_Normal;
 	s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se);
-	b = g__fmt(buf, s, se, decpt, z->sign);
+	b = g__fmt(buf, s, se, decpt, z->sign, bufsize);
 	Bfree(z);
 	return b;
 	}

Modified: user/thompsa/usb/contrib/gdtoa/g_dfmt.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/g_dfmt.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/g_dfmt.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -33,15 +33,20 @@ THIS SOFTWARE.
 
  char*
 #ifdef KR_headers
-g_dfmt(buf, d, ndig, bufsize) char *buf; double *d; int ndig; unsigned bufsize;
+g_dfmt(buf, d, ndig, bufsize) char *buf; double *d; int ndig; size_t bufsize;
 #else
-g_dfmt(char *buf, double *d, int ndig, unsigned bufsize)
+g_dfmt(char *buf, double *d, int ndig, size_t bufsize)
 #endif
 {
-	static FPI fpi = { 53, 1-1023-53+1, 2046-1023-53+1, 1, 0 };
+	static FPI fpi0 = { 53, 1-1023-53+1, 2046-1023-53+1, 1, 0 };
 	char *b, *s, *se;
 	ULong bits[2], *L, sign;
 	int decpt, ex, i, mode;
+#ifdef Honor_FLT_ROUNDS
+#include "gdtoa_fltrnds.h"
+#else
+#define fpi &fpi0
+#endif
 
 	if (ndig < 0)
 		ndig = 0;
@@ -52,6 +57,8 @@ g_dfmt(char *buf, double *d, int ndig, u
 	sign = L[_0] & 0x80000000L;
 	if ((L[_0] & 0x7ff00000) == 0x7ff00000) {
 		/* Infinity or NaN */
+		if (bufsize < 10)
+			return 0;
 		if (L[_0] & 0xfffff || L[_1]) {
 			return strcp(buf, "NaN");
 			}
@@ -78,12 +85,9 @@ g_dfmt(char *buf, double *d, int ndig, u
 		ex = 1;
 	ex -= 0x3ff + 52;
 	mode = 2;
-	if (ndig <= 0) {
-		if (bufsize < 25)
-			return 0;
+	if (ndig <= 0)
 		mode = 0;
-		}
 	i = STRTOG_Normal;
-	s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se);
-	return g__fmt(buf, s, se, decpt, sign);
+	s = gdtoa(fpi, ex, bits, &i, mode, ndig, &decpt, &se);
+	return g__fmt(buf, s, se, decpt, sign, bufsize);
 	}

Modified: user/thompsa/usb/contrib/gdtoa/g_ffmt.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/g_ffmt.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/g_ffmt.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -33,15 +33,20 @@ THIS SOFTWARE.
 
  char*
 #ifdef KR_headers
-g_ffmt(buf, f, ndig, bufsize) char *buf; float *f; int ndig; unsigned bufsize;
+g_ffmt(buf, f, ndig, bufsize) char *buf; float *f; int ndig; size_t bufsize;
 #else
-g_ffmt(char *buf, float *f, int ndig, unsigned bufsize)
+g_ffmt(char *buf, float *f, int ndig, size_t bufsize)
 #endif
 {
-	static FPI fpi = { 24, 1-127-24+1,  254-127-24+1, 1, 0 };
+	static FPI fpi0 = { 24, 1-127-24+1,  254-127-24+1, 1, 0 };
 	char *b, *s, *se;
 	ULong bits[1], *L, sign;
 	int decpt, ex, i, mode;
+#ifdef Honor_FLT_ROUNDS
+#include "gdtoa_fltrnds.h"
+#else
+#define fpi &fpi0
+#endif
 
 	if (ndig < 0)
 		ndig = 0;
@@ -83,6 +88,6 @@ g_ffmt(char *buf, float *f, int ndig, un
 		mode = 0;
 		}
 	i = STRTOG_Normal;
-	s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se);
-	return g__fmt(buf, s, se, decpt, sign);
+	s = gdtoa(fpi, ex, bits, &i, mode, ndig, &decpt, &se);
+	return g__fmt(buf, s, se, decpt, sign, bufsize);
 	}

Modified: user/thompsa/usb/contrib/gdtoa/g_xLfmt.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/g_xLfmt.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/g_xLfmt.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -49,15 +49,20 @@ THIS SOFTWARE.
 
  char*
 #ifdef KR_headers
-g_xLfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; unsigned bufsize;
+g_xLfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; size_t bufsize;
 #else
-g_xLfmt(char *buf, void *V, int ndig, unsigned bufsize)
+g_xLfmt(char *buf, void *V, int ndig, size_t bufsize)
 #endif
 {
-	static FPI fpi = { 64, 1-16383-64+1, 32766 - 16383 - 64 + 1, 1, 0 };
+	static FPI fpi0 = { 64, 1-16383-64+1, 32766 - 16383 - 64 + 1, 1, 0 };
 	char *b, *s, *se;
 	ULong bits[2], *L, sign;
 	int decpt, ex, i, mode;
+#ifdef Honor_FLT_ROUNDS
+#include "gdtoa_fltrnds.h"
+#else
+#define fpi &fpi0
+#endif
 
 	if (ndig < 0)
 		ndig = 0;
@@ -103,6 +108,6 @@ g_xLfmt(char *buf, void *V, int ndig, un
 			return 0;
 		mode = 0;
 		}
-	s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se);
-	return g__fmt(buf, s, se, decpt, sign);
+	s = gdtoa(fpi, ex, bits, &i, mode, ndig, &decpt, &se);
+	return g__fmt(buf, s, se, decpt, sign, bufsize);
 	}

Modified: user/thompsa/usb/contrib/gdtoa/g_xfmt.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/g_xfmt.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/g_xfmt.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -53,16 +53,21 @@ THIS SOFTWARE.
 
  char*
 #ifdef KR_headers
-g_xfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; unsigned bufsize;
+g_xfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; size_t bufsize;
 #else
-g_xfmt(char *buf, void *V, int ndig, unsigned bufsize)
+g_xfmt(char *buf, void *V, int ndig, size_t bufsize)
 #endif
 {
-	static FPI fpi = { 64, 1-16383-64+1, 32766 - 16383 - 64 + 1, 1, 0 };
+	static FPI fpi0 = { 64, 1-16383-64+1, 32766 - 16383 - 64 + 1, 1, 0 };
 	char *b, *s, *se;
 	ULong bits[2], sign;
 	UShort *L;
 	int decpt, ex, i, mode;
+#ifdef Honor_FLT_ROUNDS
+#include "gdtoa_fltrnds.h"
+#else
+#define fpi &fpi0
+#endif
 
 	if (ndig < 0)
 		ndig = 0;
@@ -109,6 +114,6 @@ g_xfmt(char *buf, void *V, int ndig, uns
 			return 0;
 		mode = 0;
 		}
-	s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se);
-	return g__fmt(buf, s, se, decpt, sign);
+	s = gdtoa(fpi, ex, bits, &i, mode, ndig, &decpt, &se);
+	return g__fmt(buf, s, se, decpt, sign, bufsize);
 	}

Modified: user/thompsa/usb/contrib/gdtoa/gdtoa.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/gdtoa.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/gdtoa.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -417,11 +417,9 @@ gdtoa
 					if (dval(d) > ds + dval(eps))
 						goto bump_up;
 					else if (dval(d) < ds - dval(eps)) {
-						while(*--s == '0'){}
-						s++;
 						if (dval(d))
 							inex = STRTOG_Inexlo;
-						goto ret1;
+						goto clear_trailing0;
 						}
 					break;
 					}
@@ -479,8 +477,12 @@ gdtoa
 							}
 					++*s++;
 					}
-				else
+				else {
 					inex = STRTOG_Inexlo;
+ clear_trailing0:
+					while(*--s == '0'){}
+					++s;
+					}
 				break;
 				}
 			}
@@ -738,7 +740,7 @@ gdtoa
 		if (b->wds > 1 || b->x[0])
 			inex = STRTOG_Inexlo;
 		while(*--s == '0'){}
-		s++;
+		++s;
 		}
  ret:
 	Bfree(S);

Modified: user/thompsa/usb/contrib/gdtoa/gdtoa.h
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/gdtoa.h	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/gdtoa.h	Wed Jan 28 18:51:11 2009	(r187837)
@@ -33,6 +33,7 @@ THIS SOFTWARE.
 #define GDTOA_H_INCLUDED
 
 #include "arith.h"
+#include <stddef.h> /* for size_t */
 
 #ifndef Long
 #define Long long
@@ -111,12 +112,12 @@ extern float  strtof ANSI((CONST char *,
 extern double strtod ANSI((CONST char *, char **));
 extern int strtodg ANSI((CONST char*, char**, FPI*, Long*, ULong*));
 
-extern char*	g_ddfmt  ANSI((char*, double*, int, unsigned));
-extern char*	g_dfmt   ANSI((char*, double*, int, unsigned));
-extern char*	g_ffmt   ANSI((char*, float*,  int, unsigned));
-extern char*	g_Qfmt   ANSI((char*, void*,   int, unsigned));
-extern char*	g_xfmt   ANSI((char*, void*,   int, unsigned));
-extern char*	g_xLfmt  ANSI((char*, void*,   int, unsigned));
+extern char*	g_ddfmt  ANSI((char*, double*, int, size_t));
+extern char*	g_dfmt   ANSI((char*, double*, int, size_t));
+extern char*	g_ffmt   ANSI((char*, float*,  int, size_t));
+extern char*	g_Qfmt   ANSI((char*, void*,   int, size_t));
+extern char*	g_xfmt   ANSI((char*, void*,   int, size_t));
+extern char*	g_xLfmt  ANSI((char*, void*,   int, size_t));
 
 extern int	strtoId  ANSI((CONST char*, char**, double*, double*));
 extern int	strtoIdd ANSI((CONST char*, char**, double*, double*));

Copied: user/thompsa/usb/contrib/gdtoa/gdtoa_fltrnds.h (from r187835, head/contrib/gdtoa/gdtoa_fltrnds.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/thompsa/usb/contrib/gdtoa/gdtoa_fltrnds.h	Wed Jan 28 18:51:11 2009	(r187837, copy of r187835, head/contrib/gdtoa/gdtoa_fltrnds.h)
@@ -0,0 +1,18 @@
+	FPI *fpi, fpi1;
+	int Rounding;
+#ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */
+	Rounding = Flt_Rounds;
+#else /*}{*/
+	Rounding = 1;
+	switch(fegetround()) {
+	  case FE_TOWARDZERO:	Rounding = 0; break;
+	  case FE_UPWARD:	Rounding = 2; break;
+	  case FE_DOWNWARD:	Rounding = 3;
+	  }
+#endif /*}}*/
+	fpi = &fpi0;
+	if (Rounding != 1) {
+		fpi1 = fpi0;
+		fpi = &fpi1;
+		fpi1.rounding = Rounding;
+		}

Modified: user/thompsa/usb/contrib/gdtoa/gdtoaimp.h
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/gdtoaimp.h	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/gdtoaimp.h	Wed Jan 28 18:51:11 2009	(r187837)
@@ -128,8 +128,10 @@ THIS SOFTWARE.
  *	conversions of IEEE doubles in single-threaded executions with
  *	8-byte pointers, PRIVATE_MEM >= 7400 appears to suffice; with
  *	4-byte pointers, PRIVATE_MEM >= 7112 appears adequate.
- * #define INFNAN_CHECK on IEEE systems to cause strtod to check for
- *	Infinity and NaN (case insensitively).
+ * #define NO_INFNAN_CHECK if you do not wish to have INFNAN_CHECK
+ *	#defined automatically on IEEE systems.  On such systems,
+ *	when INFNAN_CHECK is #defined, strtod checks
+ *	for Infinity and NaN (case insensitively).
  *	When INFNAN_CHECK is #defined and No_Hex_NaN is not #defined,
  *	strtodg also accepts (case insensitively) strings of the form
  *	NaN(x), where x is a string of hexadecimal digits (optionally
@@ -177,6 +179,9 @@ THIS SOFTWARE.
 
 #include "gdtoa.h"
 #include "gd_qnan.h"
+#ifdef Honor_FLT_ROUNDS
+#include <fenv.h>
+#endif
 
 #ifdef DEBUG
 #include "stdio.h"
@@ -206,6 +211,7 @@ extern Char *MALLOC ANSI((size_t));
 
 #define INFNAN_CHECK
 #define USE_LOCALE
+#define NO_LOCALE_CACHE
 #define Honor_FLT_ROUNDS
 #define Trust_FLT_ROUNDS
 
@@ -608,7 +614,7 @@ extern void memcpy_D2A ANSI((void*, cons
  extern void freedtoa ANSI((char*));
  extern char *gdtoa ANSI((FPI *fpi, int be, ULong *bits, int *kindp,
 			  int mode, int ndigits, int *decpt, char **rve));
- extern char *g__fmt ANSI((char*, char*, char*, int, ULong));
+ extern char *g__fmt ANSI((char*, char*, char*, int, ULong, size_t));
  extern int gethex ANSI((CONST char**, FPI*, Long*, Bigint**, int));
  extern void hexdig_init_D2A(Void);
  extern int hexnan ANSI((CONST char**, FPI*, ULong*));
@@ -626,7 +632,7 @@ extern void memcpy_D2A ANSI((void*, cons
  extern double ratio ANSI((Bigint*, Bigint*));
  extern void rshift ANSI((Bigint*, int));
  extern char *rv_alloc ANSI((int));
- extern Bigint *s2b ANSI((CONST char*, int, int, ULong));
+ extern Bigint *s2b ANSI((CONST char*, int, int, ULong, int));
  extern Bigint *set_ones ANSI((Bigint*, int));
  extern char *strcp ANSI((char*, const char*));
  extern int strtodg ANSI((CONST char*, char**, FPI*, Long*, ULong*));
@@ -668,6 +674,10 @@ extern void memcpy_D2A ANSI((void*, cons
  * (On HP Series 700/800 machines, -DNAN_WORD0=0x7ff40000 works.)
  */
 #ifdef IEEE_Arith
+#ifndef NO_INFNAN_CHECK
+#undef INFNAN_CHECK
+#define INFNAN_CHECK
+#endif
 #ifdef IEEE_MC68k
 #define _0 0
 #define _1 1

Modified: user/thompsa/usb/contrib/gdtoa/gethex.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/gethex.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/gethex.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -49,9 +49,21 @@ gethex( CONST char **sp, FPI *fpi, Long 
 	ULong L, lostbits, *x;
 	Long e, e1;
 #ifdef USE_LOCALE
-	unsigned char decimalpoint = *localeconv()->decimal_point;
+	int i;
+#ifdef NO_LOCALE_CACHE
+	const unsigned char *decimalpoint = (unsigned char*)localeconv()->decimal_point;
 #else
-#define decimalpoint '.'
+	const unsigned char *decimalpoint;
+	static unsigned char *decimalpoint_cache;
+	if (!(s0 = decimalpoint_cache)) {
+		s0 = (unsigned char*)localeconv()->decimal_point;
+		if ((decimalpoint_cache = (char*)malloc(strlen(s0) + 1))) {
+			strcpy(decimalpoint_cache, s0);
+			s0 = decimalpoint_cache;
+			}
+		}
+	decimalpoint = s0;
+#endif
 #endif
 
 	if (!hexdig['0'])
@@ -66,11 +78,21 @@ gethex( CONST char **sp, FPI *fpi, Long 
 	decpt = 0;
 	zret = 0;
 	e = 0;
-	if (!hexdig[*s]) {
+	if (hexdig[*s])
+		havedig++;
+	else {
 		zret = 1;
-		if (*s != decimalpoint)
+#ifdef USE_LOCALE
+		for(i = 0; decimalpoint[i]; ++i) {
+			if (s[i] != decimalpoint[i])
+				goto pcheck;
+			}
+		decpt = s += i;
+#else
+		if (*s != '.')
 			goto pcheck;
 		decpt = ++s;
+#endif
 		if (!hexdig[*s])
 			goto pcheck;
 		while(*s == '0')
@@ -82,11 +104,20 @@ gethex( CONST char **sp, FPI *fpi, Long 
 		}
 	while(hexdig[*s])
 		s++;
-	if (*s == decimalpoint && !decpt) {
+#ifdef USE_LOCALE
+	if (*s == *decimalpoint && !decpt) {
+		for(i = 1; decimalpoint[i]; ++i) {
+			if (s[i] != decimalpoint[i])
+				goto pcheck;
+			}
+		decpt = s += i;
+#else
+	if (*s == '.' && !decpt) {
 		decpt = ++s;
+#endif
 		while(hexdig[*s])
 			s++;
-		}
+		}/*}*/
 	if (decpt)
 		e = -(((Long)(s-decpt)) << 2);
  pcheck:
@@ -118,7 +149,7 @@ gethex( CONST char **sp, FPI *fpi, Long 
 	  }
 	*sp = (char*)s;
 	if (!havedig)
-		*sp = s0 - 1;
+		*sp = (char*)s0 - 1;
 	if (zret)
 		return STRTOG_Zero;
 	if (big) {
@@ -168,16 +199,26 @@ gethex( CONST char **sp, FPI *fpi, Long 
 		return STRTOG_Normal | STRTOG_Inexlo;
 		}
 	n = s1 - s0 - 1;
-	for(k = 0; n > 7; n >>= 1)
+	for(k = 0; n > (1 << kshift-2) - 1; n >>= 1)
 		k++;
 	b = Balloc(k);
 	x = b->x;
 	n = 0;
 	L = 0;
+#ifdef USE_LOCALE
+	for(i = 0; decimalpoint[i+1]; ++i);
+#endif
 	while(s1 > s0) {
-		if (*--s1 == decimalpoint)
+#ifdef USE_LOCALE
+		if (*--s1 == decimalpoint[i]) {
+			s1 -= i;
 			continue;
-		if (n == 32) {
+			}
+#else
+		if (*--s1 == '.')
+			continue;
+#endif
+		if (n == ULbits) {
 			*x++ = L;
 			L = 0;
 			n = 0;
@@ -187,7 +228,7 @@ gethex( CONST char **sp, FPI *fpi, Long 
 		}
 	*x++ = L;
 	b->wds = n = x - b->x;
-	n = 32*n - hi0bits(L);
+	n = ULbits*n - hi0bits(L);
 	nbits = fpi->nbits;
 	lostbits = 0;
 	x = b->x;

Modified: user/thompsa/usb/contrib/gdtoa/makefile
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/makefile	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/makefile	Wed Jan 28 18:51:11 2009	(r187837)
@@ -25,7 +25,7 @@
 
 .SUFFIXES: .c .o
 CC = cc
-CFLAGS = -g -DINFNAN_CHECK
+CFLAGS = -g
 
 .c.o:
 	$(CC) -c $(CFLAGS) $*.c
@@ -55,9 +55,9 @@ gdtoa.a: dmisc.c dtoa.c g_Qfmt.c g__fmt.
 # If your system lacks ranlib, you do not need it.
 
 xs0 = README arithchk.c dmisc.c dtoa.c g_Qfmt.c g__fmt.c g_ddfmt.c g_dfmt.c\
-	 g_ffmt.c g_xLfmt.c g_xfmt.c gdtoa.c gdtoa.h gdtoaimp.h gethex.c\
-	 gmisc.c hd_init.c hexnan.c makefile misc.c qnan.c smisc.c strtoIQ.c\
-	 strtoId.c strtoIdd.c strtoIf.c strtoIg.c strtoIx.c strtoIxL.c\
+	 g_ffmt.c g_xLfmt.c g_xfmt.c gdtoa.c gdtoa.h gdtoa_fltrnds.h gdtoaimp.h\
+	 gethex.c gmisc.c hd_init.c hexnan.c makefile misc.c qnan.c smisc.c\
+	 strtoIQ.c strtoId.c strtoIdd.c strtoIf.c strtoIg.c strtoIx.c strtoIxL.c\
 	 strtod.c strtodI.c strtodg.c strtodnrp.c strtof.c strtopQ.c strtopd.c\
 	 strtopdd.c strtopf.c strtopx.c strtopxL.c strtorQ.c strtord.c strtordd.c\
 	 strtorf.c strtorx.c strtorxL.c sum.c ulp.c

Modified: user/thompsa/usb/contrib/gdtoa/smisc.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/smisc.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/smisc.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -34,9 +34,9 @@ THIS SOFTWARE.
  Bigint *
 s2b
 #ifdef KR_headers
-	(s, nd0, nd, y9) CONST char *s; int nd0, nd; ULong y9;
+	(s, nd0, nd, y9, dplen) CONST char *s; int dplen, nd0, nd; ULong y9;
 #else
-	(CONST char *s, int nd0, int nd, ULong y9)
+	(CONST char *s, int nd0, int nd, ULong y9, int dplen)
 #endif
 {
 	Bigint *b;
@@ -60,10 +60,10 @@ s2b
 		s += 9;
 		do b = multadd(b, 10, *s++ - '0');
 			while(++i < nd0);
-		s++;
+		s += dplen;
 		}
 	else
-		s += 10;
+		s += dplen + 9;
 	for(; i < nd; i++)
 		b = multadd(b, 10, *s++ - '0');
 	return b;

Modified: user/thompsa/usb/contrib/gdtoa/strtod.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/strtod.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/strtod.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -80,6 +80,28 @@ strtod
 #ifdef SET_INEXACT
 	int inexact, oldinexact;
 #endif
+#ifdef USE_LOCALE /*{{*/
+#ifdef NO_LOCALE_CACHE
+	char *decimalpoint = localeconv()->decimal_point;
+	int dplen = strlen(decimalpoint);
+#else
+	char *decimalpoint;
+	static char *decimalpoint_cache;
+	static int dplen;
+	if (!(s0 = decimalpoint_cache)) {
+		s0 = localeconv()->decimal_point;
+		if ((decimalpoint_cache = (char*)malloc(strlen(s0) + 1))) {
+			strcpy(decimalpoint_cache, s0);
+			s0 = decimalpoint_cache;
+			}
+		dplen = strlen(s0);
+		}
+	decimalpoint = (char*)s0;
+#endif /*NO_LOCALE_CACHE*/
+#else  /*USE_LOCALE}{*/
+#define dplen 1
+#endif /*USE_LOCALE}}*/
+
 #ifdef Honor_FLT_ROUNDS /*{*/
 	int Rounding;
 #ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */
@@ -118,7 +140,7 @@ strtod
 		}
  break2:
 	if (*s == '0') {
-#ifndef NO_HEX_FP /*{{*/
+#ifndef NO_HEX_FP /*{*/
 		{
 		static FPI fpi = { 53, 1-1023-53+1, 2046-1023-53+1, 1, SI };
 		Long exp;
@@ -157,7 +179,7 @@ strtod
 			goto ret;
 		  }
 		}
-#endif
+#endif /*}*/
 		nz0 = 1;
 		while(*++s == '0') ;
 		if (!*s)
@@ -172,13 +194,17 @@ strtod
 			z = 10*z + c - '0';
 	nd0 = nd;
 #ifdef USE_LOCALE
-	if (c == *localeconv()->decimal_point)
+	if (c == *decimalpoint) {
+		for(i = 1; decimalpoint[i]; ++i)
+			if (s[i] != decimalpoint[i])
+				goto dig_done;
+		s += i;
+		c = *s;
 #else
-	if (c == '.')
+	if (c == '.') {
+		c = *++s;
 #endif
-		{
 		decpt = 1;
-		c = *++s;
 		if (!nd) {
 			for(; c == '0'; c = *++s)
 				nz++;
@@ -207,7 +233,7 @@ strtod
 				nz = 0;
 				}
 			}
-		}
+		}/*}*/
  dig_done:
 	e = 0;
 	if (c == 'e' || c == 'E') {
@@ -527,7 +553,7 @@ strtod
 
 	/* Put digits into bd: true value = bd * 10^e */
 
-	bd0 = s2b(s0, nd0, nd, y);
+	bd0 = s2b(s0, nd0, nd, y, dplen);
 
 	for(;;) {
 		bd = Balloc(bd0->k);
@@ -974,7 +1000,11 @@ strtod
 		dval(rv) *= dval(rv0);
 #ifndef NO_ERRNO
 		/* try to avoid the bug of testing an 8087 register value */
+#ifdef IEEE_Arith
+		if (!(word0(rv) & Exp_mask))
+#else
 		if (word0(rv) == 0 && word1(rv) == 0)
+#endif
 			errno = ERANGE;
 #endif
 		}

Modified: user/thompsa/usb/contrib/gdtoa/strtodg.c
==============================================================================
--- user/thompsa/usb/contrib/gdtoa/strtodg.c	Wed Jan 28 18:46:29 2009	(r187836)
+++ user/thompsa/usb/contrib/gdtoa/strtodg.c	Wed Jan 28 18:51:11 2009	(r187837)
@@ -331,6 +331,27 @@ strtodg
 	Long L;
 	ULong *b, *be, y, z;
 	Bigint *ab, *bb, *bb1, *bd, *bd0, *bs, *delta, *rvb, *rvb0;
+#ifdef USE_LOCALE /*{{*/
+#ifdef NO_LOCALE_CACHE
+	char *decimalpoint = localeconv()->decimal_point;
+	int dplen = strlen(decimalpoint);
+#else
+	char *decimalpoint;
+	static char *decimalpoint_cache;
+	static int dplen;
+	if (!(s0 = decimalpoint_cache)) {
+		s0 = localeconv()->decimal_point;
+		if ((decimalpoint_cache = (char*)malloc(strlen(s0) + 1))) {
+			strcpy(decimalpoint_cache, s0);
+			s0 = decimalpoint_cache;
+			}
+		dplen = strlen(s0);
+		}
+	decimalpoint = (char*)s0;
+#endif /*NO_LOCALE_CACHE*/
+#else  /*USE_LOCALE}{*/
+#define dplen 1
+#endif /*USE_LOCALE}}*/
 
 	irv = STRTOG_Zero;
 	denorm = sign = nz0 = nz = 0;
@@ -389,13 +410,17 @@ strtodg
 			z = 10*z + c - '0';
 	nd0 = nd;
 #ifdef USE_LOCALE
-	if (c == *localeconv()->decimal_point)
+	if (c == *decimalpoint) {
+		for(i = 1; decimalpoint[i]; ++i)
+			if (s[i] != decimalpoint[i])
+				goto dig_done;
+		s += i;
+		c = *s;
 #else
-	if (c == '.')
+	if (c == '.') {
+		c = *++s;
 #endif
-		{
 		decpt = 1;
-		c = *++s;
 		if (!nd) {
 			for(; c == '0'; c = *++s)
 				nz++;
@@ -424,7 +449,7 @@ strtodg
 				nz = 0;
 				}
 			}
-		}
+		}/*}*/
  dig_done:
 	e = 0;
 	if (c == 'e' || c == 'E') {
@@ -683,7 +708,7 @@ strtodg
 
 	/* Put digits into bd: true value = bd * 10^e */
 
-	bd0 = s2b(s0, nd0, nd, y);
+	bd0 = s2b(s0, nd0, nd, y, dplen);
 
 	for(;;) {
 		bd = Balloc(bd0->k);
@@ -992,7 +1017,7 @@ strtodg
 		irv = STRTOG_Normal | STRTOG_Inexlo;
 		*exp = fpi->emax;
 		b = bits;
-		be = b + (fpi->nbits >> 5) + 1;
+		be = b + ((fpi->nbits + 31) >> 5);
 		while(b < be)
 			*b++ = -1;
 		if ((j = fpi->nbits & 0x1f))

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


More information about the svn-src-user mailing list