From d1ef819c6a4c6aa9ca6c742db6151dc1edf68d26 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 7 Nov 2016 19:05:57 +0000 Subject: [PATCH] Fix line endings in Git. --- LICENSE.txt | 158 +-- .../windows/installer/bbackupd.conf.template | 352 +++--- .../installer/tools/InstallService.bat | 6 +- .../installer/tools/KillBackupProcess.bat | 6 +- .../installer/tools/QueryOutputAll.bat | 10 +- .../installer/tools/QueryOutputCurrent.bat | 10 +- .../windows/installer/tools/ReloadConfig.bat | 6 +- .../windows/installer/tools/RemoveService.bat | 6 +- .../installer/tools/RestartService.bat | 10 +- contrib/windows/installer/tools/ShowUsage.bat | 6 +- .../windows/installer/tools/StartService.bat | 6 +- .../windows/installer/tools/StopService.bat | 6 +- contrib/windows/installer/tools/Sync.bat | 6 +- docs/xsl-generic/highlighting/common.xsl | 124 +- .../highlighting/xslthl-config.xml | 22 +- docs/xsl-generic/html/highlight.xsl | 108 +- .../cmake/build/bin_bbackupd.vcxproj.user | 14 +- .../cmake/build/bin_bbstored.vcxproj.user | 14 +- .../cmake/build/test_backupstore.vcxproj.user | 16 +- .../build/test_backupstorefix.vcxproj.user | 12 +- .../cmake/build/test_bbackupd.vcxproj.user | 14 +- .../cmake/build/test_common.vcxproj.user | 12 +- .../cmake/build/test_httpserver.vcxproj.user | 12 +- .../cmake/build/test_raidfile.vcxproj.user | 12 +- lib/win32/bsd_getopt.h | 210 ++-- lib/win32/getopt_long.cpp | 1092 ++++++++--------- lib/win32/messages.h | 114 +- lib/win32/messages.rc | 4 +- qdbm/VCmakefile | 496 ++++---- qdbm/misc/VCmakefile-old | 338 ++--- qdbm/misc/win32check.bat | 222 ++-- qdbm/qdbm.def | 848 ++++++------- 32 files changed, 2136 insertions(+), 2136 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index dd4e26e1a..4f57a372d 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,79 +1,79 @@ -Box Backup, http://www.boxbackup.org/ - -Copyright (c) 2003-2015, Ben Summers and contributors. -All rights reserved. - -The license of the code was changed on 23-Jan-2010 in order to meet the -Fedora Project's definition of Free Software, and therefore allow inclusion -in Fedora, Red Hat Linux and CentOS. This also solves a long-standing -incompatibility with the GNU Readline library that prevented us from -distributing Box Backup binaries compiled against that library. You can -review our discussions of the change in the mailing list archives at: -http://lists.boxbackup.org/pipermail/boxbackup/2010-January/000005.html - -Note that this project uses mixed licensing. Different parts of the project -may be used and distributed under different licenses, as described below. -The two licenses used are "Box Backup GPL" and a BSD-style license. - -For full details of the license, please read the included COPYING.txt file. - -Unless stated otherwise in the file, all files in the following directories -fall under the "Box Backup GPL" license, described below: - -bin/bbackupctl -bin/bbackupd -bin/bbackupobjdump -bin/bbackupquery -bin/bbstoreaccounts -bin/bbstored -bin/s3simulator -lib/backupclient -lib/backupstore -test/backupdiff -test/backupstore -test/backupstorefix -test/backupstorepatch -test/bbackupd -contrib/bbadmin -contrib/bbreporter -contrib/cygwin -contrib/debian -contrib/mac_osx -contrib/redhat -contrib/rpm -contrib/solaris -contrib/suse -contrib/windows -distribution/boxbackup - -The "Box Backup GPL" license text may be found in the file -LICENSE-GPL.txt, or online at: -[https://www.boxbackup.org/svn/box/trunk/LICENSE-GPL.txt] - -Unless stated otherwise in the file, all files in the following directories -are dual licensed under the BSD and GPL licenses. You may use and distribute -them providing that you comply EITHER with the terms of the BSD license, -OR the GPL license. It is not necessary to comply with both licenses, -only one. - -lib/common -lib/compress -lib/crypto -lib/httpserver -lib/intercept -lib/raidfile -lib/server -lib/win32 -test/basicserver -test/common -test/compress -test/crypto -test/httpserver -test/raidfile -test/win32 -infrastructure -distribution - -The dual license text may be found in the file -LICENSE-DUAL.txt, or online at: -[https://www.boxbackup.org/svn/box/trunk/LICENSE-DUAL.txt] +Box Backup, http://www.boxbackup.org/ + +Copyright (c) 2003-2015, Ben Summers and contributors. +All rights reserved. + +The license of the code was changed on 23-Jan-2010 in order to meet the +Fedora Project's definition of Free Software, and therefore allow inclusion +in Fedora, Red Hat Linux and CentOS. This also solves a long-standing +incompatibility with the GNU Readline library that prevented us from +distributing Box Backup binaries compiled against that library. You can +review our discussions of the change in the mailing list archives at: +http://lists.boxbackup.org/pipermail/boxbackup/2010-January/000005.html + +Note that this project uses mixed licensing. Different parts of the project +may be used and distributed under different licenses, as described below. +The two licenses used are "Box Backup GPL" and a BSD-style license. + +For full details of the license, please read the included COPYING.txt file. + +Unless stated otherwise in the file, all files in the following directories +fall under the "Box Backup GPL" license, described below: + +bin/bbackupctl +bin/bbackupd +bin/bbackupobjdump +bin/bbackupquery +bin/bbstoreaccounts +bin/bbstored +bin/s3simulator +lib/backupclient +lib/backupstore +test/backupdiff +test/backupstore +test/backupstorefix +test/backupstorepatch +test/bbackupd +contrib/bbadmin +contrib/bbreporter +contrib/cygwin +contrib/debian +contrib/mac_osx +contrib/redhat +contrib/rpm +contrib/solaris +contrib/suse +contrib/windows +distribution/boxbackup + +The "Box Backup GPL" license text may be found in the file +LICENSE-GPL.txt, or online at: +[https://www.boxbackup.org/svn/box/trunk/LICENSE-GPL.txt] + +Unless stated otherwise in the file, all files in the following directories +are dual licensed under the BSD and GPL licenses. You may use and distribute +them providing that you comply EITHER with the terms of the BSD license, +OR the GPL license. It is not necessary to comply with both licenses, +only one. + +lib/common +lib/compress +lib/crypto +lib/httpserver +lib/intercept +lib/raidfile +lib/server +lib/win32 +test/basicserver +test/common +test/compress +test/crypto +test/httpserver +test/raidfile +test/win32 +infrastructure +distribution + +The dual license text may be found in the file +LICENSE-DUAL.txt, or online at: +[https://www.boxbackup.org/svn/box/trunk/LICENSE-DUAL.txt] diff --git a/contrib/windows/installer/bbackupd.conf.template b/contrib/windows/installer/bbackupd.conf.template index 969ca619a..cf61e72eb 100644 --- a/contrib/windows/installer/bbackupd.conf.template +++ b/contrib/windows/installer/bbackupd.conf.template @@ -1,176 +1,176 @@ -StoreHostname = @@ServerName@@ -AccountNumber = 0x@@AccountNo@@ -KeysFile = @@InstallDir@@/conf/@@AccountNo@@-FileEncKeys.raw - -CertificateFile = @@InstallDir@@/conf/@@AccountNo@@-cert.pem -PrivateKeyFile = @@InstallDir@@/conf/@@AccountNo@@-key.pem -TrustedCAsFile = @@InstallDir@@/conf/serverCA.pem - -DataDirectory = @@InstallDir@@/state - - -# This script is run whenever bbackupd changes state or encounters a -# problem which requires the system administrator to assist: -# -# 1) The store is full, and no more data can be uploaded. -# 2) Some files or directories were not readable. -# 3) A backup run starts or finishes. -# -# The default script emails the system administrator, except for backups -# starting and stopping, where it does nothing. - -NotifyScript = @@InstallDir@@/bin/NotifySysAdmin.vbs - -# The number of seconds between backup runs under normal conditions. To avoid -# cycles of load on the server, this time is randomly adjusted by a small -# percentage as the daemon runs. - -UpdateStoreInterval = 3600 - - -# The minimum age of a file, in seconds, that will be uploaded. Avoids -# repeated uploads of a file which is constantly being modified. - -MinimumFileAge = 21600 - -# If a file is modified repeated, it won't be uploaded immediately in case -# it's modified again, due to the MinimumFileAge specified above. However, it -# should be uploaded eventually even if it is being modified repeatedly. This -# is how long we should wait, in seconds, after first noticing a change. -# (86400 seconds = 1 day) - -MaxUploadWait = 86400 - -# If the connection is idle for some time (e.g. over 10 minutes or 600 -# seconds, not sure exactly how long) then the server will give up and -# disconnect the client, resulting in Connection Protocol_Timeout errors -# on the server and TLSReadFailed or TLSWriteFailed errors on the client. -# Also, some firewalls and NAT gateways will kill idle connections after -# similar lengths of time. -# -# This can happen for example when most files are backed up already and -# don't need to be sent to the store again, while scanning a large -# directory, or while calculating diffs of a large file. To avoid this, -# KeepAliveTime specifies that special keep-alive messages should be sent -# when the connection is otherwise idle for a certain length of time, -# specified here in seconds. -# -# The default is that these messages are never sent, equivalent to setting -# this option to zero, but we recommend that all users enable this. - -KeepAliveTime = 120 - -# Files above this size (in bytes) are tracked, and if they are renamed they will simply be -# renamed on the server, rather than being uploaded again. (64k - 1) - -FileTrackingSizeThreshold = 65535 - -# The daemon does "changes only" uploads for files above this size (in bytes). -# Files less than it are uploaded whole without this extra processing. - -DiffingUploadSizeThreshold = 8192 - -# The limit on how much time is spent diffing files, in seconds. Most files -# shouldn't take very long, but if you have really big files you can use this -# to limit the time spent diffing them. -# -# * Reduce if you are having problems with processor usage. -# -# * Increase if you have large files, and think the upload of changes is too -# large and you want bbackupd to spend more time searching for unchanged -# blocks. - -MaximumDiffingTime = 120 - -# Uncomment this line to see exactly what the daemon is going when it's connected to the server. - -# ExtendedLogging = yes - -# This specifies a program or script script which is run just before each -# sync, and ideally the full path to the interpreter. It will be run as the -# same user bbackupd is running as, usually root. -# -# The script must output (print) either "now" or a number to STDOUT (and a -# terminating newline, no quotes). -# -# If the result was "now", then the sync will happen. If it's a number, then -# no backup will happen for that number of seconds (bbackupd will pause) and -# then the script will be run again. -# -# Use this to temporarily stop bbackupd from syncronising or connecting to the -# store. For example, you could use this on a laptop to only backup when on a -# specific network, or when it has a working Internet connection. - -# SyncAllowScript = /path/to/intepreter/or/exe script-name parameters etc - -# Where the command socket is created in the filesystem. - -CommandSocket = @@CommandSocketNamedPipe@@ - -# Uncomment the StoreObjectInfoFile to enable the experimental archiving -# of the daemon's state (including client store marker and configuration) -# between backup runs. This saves time and increases efficiency when -# bbackupd is frequently stopped and started, since it removes the need -# to rescan all directories on the remote server. However, it is new and -# not yet heavily tested, so use with caution. - -StoreObjectInfoFile = @@InstallDir@@/state/bbackupd.state - -Server -{ - PidFile = @@InstallDir@@/state/bbackupd.pid -} - -# BackupLocations specifies which locations on disc should be backed up. Each -# directory is in the format -# -# name -# { -# Path = /path/of/directory -# (optional exclude directives) -# } -# -# 'name' is derived from the Path by the config script, but should merely be -# unique. -# -# The exclude directives are of the form -# -# [Exclude|AlwaysInclude][File|Dir][|sRegex] = regex or full pathname -# -# (The regex suffix is shown as 'sRegex' to make File or Dir plural) -# -# For example: -# -# ExcludeDir = /home/guest-user -# ExcludeFilesRegex = \.(mp3|MP3)\$ -# AlwaysIncludeFile = /home/username/veryimportant.mp3 -# -# This excludes the directory /home/guest-user from the backup along with all mp3 -# files, except one MP3 file in particular. -# -# In general, Exclude excludes a file or directory, unless the directory is -# explicitly mentioned in a AlwaysInclude directive. However, Box Backup -# does NOT scan inside excluded directories and will never back up an -# AlwaysIncluded file or directory inside an excluded directory or any -# subdirectory thereof. -# -# To back up a directory inside an excluded directory, use a configuration -# like this, to ensure that each directory in the path to the important -# files is included, but none of their contents will be backed up except -# the directories further down that path to the important one. -# -# ExcludeDirsRegex = ^/home/user/bigfiles/ -# ExcludeFilesRegex = ^/home/user/bigfiles/ -# AlwaysIncludeDir = /home/user/bigfiles/path -# AlwaysIncludeDir = /home/user/bigfiles/path/to -# AlwaysIncludeDir = /home/user/bigfiles/path/important -# AlwaysIncludeDir = /home/user/bigfiles/path/important/files -# AlwaysIncludeDirsRegex = ^/home/user/bigfiles/path/important/files/ -# AlwaysIncludeFilesRegex = ^/home/user/bigfiles/path/important/files/ -# -# If a directive ends in Regex, then it is a regular expression rather than a -# explicit full pathname. See -# -# man 7 re_format -# -# for the regex syntax on your platform. +StoreHostname = @@ServerName@@ +AccountNumber = 0x@@AccountNo@@ +KeysFile = @@InstallDir@@/conf/@@AccountNo@@-FileEncKeys.raw + +CertificateFile = @@InstallDir@@/conf/@@AccountNo@@-cert.pem +PrivateKeyFile = @@InstallDir@@/conf/@@AccountNo@@-key.pem +TrustedCAsFile = @@InstallDir@@/conf/serverCA.pem + +DataDirectory = @@InstallDir@@/state + + +# This script is run whenever bbackupd changes state or encounters a +# problem which requires the system administrator to assist: +# +# 1) The store is full, and no more data can be uploaded. +# 2) Some files or directories were not readable. +# 3) A backup run starts or finishes. +# +# The default script emails the system administrator, except for backups +# starting and stopping, where it does nothing. + +NotifyScript = @@InstallDir@@/bin/NotifySysAdmin.vbs + +# The number of seconds between backup runs under normal conditions. To avoid +# cycles of load on the server, this time is randomly adjusted by a small +# percentage as the daemon runs. + +UpdateStoreInterval = 3600 + + +# The minimum age of a file, in seconds, that will be uploaded. Avoids +# repeated uploads of a file which is constantly being modified. + +MinimumFileAge = 21600 + +# If a file is modified repeated, it won't be uploaded immediately in case +# it's modified again, due to the MinimumFileAge specified above. However, it +# should be uploaded eventually even if it is being modified repeatedly. This +# is how long we should wait, in seconds, after first noticing a change. +# (86400 seconds = 1 day) + +MaxUploadWait = 86400 + +# If the connection is idle for some time (e.g. over 10 minutes or 600 +# seconds, not sure exactly how long) then the server will give up and +# disconnect the client, resulting in Connection Protocol_Timeout errors +# on the server and TLSReadFailed or TLSWriteFailed errors on the client. +# Also, some firewalls and NAT gateways will kill idle connections after +# similar lengths of time. +# +# This can happen for example when most files are backed up already and +# don't need to be sent to the store again, while scanning a large +# directory, or while calculating diffs of a large file. To avoid this, +# KeepAliveTime specifies that special keep-alive messages should be sent +# when the connection is otherwise idle for a certain length of time, +# specified here in seconds. +# +# The default is that these messages are never sent, equivalent to setting +# this option to zero, but we recommend that all users enable this. + +KeepAliveTime = 120 + +# Files above this size (in bytes) are tracked, and if they are renamed they will simply be +# renamed on the server, rather than being uploaded again. (64k - 1) + +FileTrackingSizeThreshold = 65535 + +# The daemon does "changes only" uploads for files above this size (in bytes). +# Files less than it are uploaded whole without this extra processing. + +DiffingUploadSizeThreshold = 8192 + +# The limit on how much time is spent diffing files, in seconds. Most files +# shouldn't take very long, but if you have really big files you can use this +# to limit the time spent diffing them. +# +# * Reduce if you are having problems with processor usage. +# +# * Increase if you have large files, and think the upload of changes is too +# large and you want bbackupd to spend more time searching for unchanged +# blocks. + +MaximumDiffingTime = 120 + +# Uncomment this line to see exactly what the daemon is going when it's connected to the server. + +# ExtendedLogging = yes + +# This specifies a program or script script which is run just before each +# sync, and ideally the full path to the interpreter. It will be run as the +# same user bbackupd is running as, usually root. +# +# The script must output (print) either "now" or a number to STDOUT (and a +# terminating newline, no quotes). +# +# If the result was "now", then the sync will happen. If it's a number, then +# no backup will happen for that number of seconds (bbackupd will pause) and +# then the script will be run again. +# +# Use this to temporarily stop bbackupd from syncronising or connecting to the +# store. For example, you could use this on a laptop to only backup when on a +# specific network, or when it has a working Internet connection. + +# SyncAllowScript = /path/to/intepreter/or/exe script-name parameters etc + +# Where the command socket is created in the filesystem. + +CommandSocket = @@CommandSocketNamedPipe@@ + +# Uncomment the StoreObjectInfoFile to enable the experimental archiving +# of the daemon's state (including client store marker and configuration) +# between backup runs. This saves time and increases efficiency when +# bbackupd is frequently stopped and started, since it removes the need +# to rescan all directories on the remote server. However, it is new and +# not yet heavily tested, so use with caution. + +StoreObjectInfoFile = @@InstallDir@@/state/bbackupd.state + +Server +{ + PidFile = @@InstallDir@@/state/bbackupd.pid +} + +# BackupLocations specifies which locations on disc should be backed up. Each +# directory is in the format +# +# name +# { +# Path = /path/of/directory +# (optional exclude directives) +# } +# +# 'name' is derived from the Path by the config script, but should merely be +# unique. +# +# The exclude directives are of the form +# +# [Exclude|AlwaysInclude][File|Dir][|sRegex] = regex or full pathname +# +# (The regex suffix is shown as 'sRegex' to make File or Dir plural) +# +# For example: +# +# ExcludeDir = /home/guest-user +# ExcludeFilesRegex = \.(mp3|MP3)\$ +# AlwaysIncludeFile = /home/username/veryimportant.mp3 +# +# This excludes the directory /home/guest-user from the backup along with all mp3 +# files, except one MP3 file in particular. +# +# In general, Exclude excludes a file or directory, unless the directory is +# explicitly mentioned in a AlwaysInclude directive. However, Box Backup +# does NOT scan inside excluded directories and will never back up an +# AlwaysIncluded file or directory inside an excluded directory or any +# subdirectory thereof. +# +# To back up a directory inside an excluded directory, use a configuration +# like this, to ensure that each directory in the path to the important +# files is included, but none of their contents will be backed up except +# the directories further down that path to the important one. +# +# ExcludeDirsRegex = ^/home/user/bigfiles/ +# ExcludeFilesRegex = ^/home/user/bigfiles/ +# AlwaysIncludeDir = /home/user/bigfiles/path +# AlwaysIncludeDir = /home/user/bigfiles/path/to +# AlwaysIncludeDir = /home/user/bigfiles/path/important +# AlwaysIncludeDir = /home/user/bigfiles/path/important/files +# AlwaysIncludeDirsRegex = ^/home/user/bigfiles/path/important/files/ +# AlwaysIncludeFilesRegex = ^/home/user/bigfiles/path/important/files/ +# +# If a directive ends in Regex, then it is a regular expression rather than a +# explicit full pathname. See +# +# man 7 re_format +# +# for the regex syntax on your platform. diff --git a/contrib/windows/installer/tools/InstallService.bat b/contrib/windows/installer/tools/InstallService.bat index 80a342ebe..946964400 100755 --- a/contrib/windows/installer/tools/InstallService.bat +++ b/contrib/windows/installer/tools/InstallService.bat @@ -1,3 +1,3 @@ -service.exe -i -S GigaLock -echo off -ping 192.168.254.254 -n 5 -w 1000 > nul +service.exe -i -S GigaLock +echo off +ping 192.168.254.254 -n 5 -w 1000 > nul diff --git a/contrib/windows/installer/tools/KillBackupProcess.bat b/contrib/windows/installer/tools/KillBackupProcess.bat index 416d4a79f..87343c575 100755 --- a/contrib/windows/installer/tools/KillBackupProcess.bat +++ b/contrib/windows/installer/tools/KillBackupProcess.bat @@ -1,3 +1,3 @@ -control.exe terminate -echo off -ping 192.168.254.254 -n 5 -w 1000 > nul +control.exe terminate +echo off +ping 192.168.254.254 -n 5 -w 1000 > nul diff --git a/contrib/windows/installer/tools/QueryOutputAll.bat b/contrib/windows/installer/tools/QueryOutputAll.bat index 2ab30a725..c58b4ab6c 100755 --- a/contrib/windows/installer/tools/QueryOutputAll.bat +++ b/contrib/windows/installer/tools/QueryOutputAll.bat @@ -1,5 +1,5 @@ -@ECHO OFF -: o=old, d=deleted, s=size info, t=timestamp, r=recursive -set Queryopts=-odstr -::set Queryopts=-str -query.exe "list %Queryopts%" quit > QueryOutputAllResults.txt +@ECHO OFF +: o=old, d=deleted, s=size info, t=timestamp, r=recursive +set Queryopts=-odstr +::set Queryopts=-str +query.exe "list %Queryopts%" quit > QueryOutputAllResults.txt diff --git a/contrib/windows/installer/tools/QueryOutputCurrent.bat b/contrib/windows/installer/tools/QueryOutputCurrent.bat index d59ddbf11..2142b83fc 100755 --- a/contrib/windows/installer/tools/QueryOutputCurrent.bat +++ b/contrib/windows/installer/tools/QueryOutputCurrent.bat @@ -1,5 +1,5 @@ -@ECHO OFF -: o=old, d=deleted, s=size info, t=timestamp, r=recursive -::set Queryopts=-odstr -set Queryopts=-str -query.exe "list %Queryopts%" quit > QueryOutputCurrentResults.txt +@ECHO OFF +: o=old, d=deleted, s=size info, t=timestamp, r=recursive +::set Queryopts=-odstr +set Queryopts=-str +query.exe "list %Queryopts%" quit > QueryOutputCurrentResults.txt diff --git a/contrib/windows/installer/tools/ReloadConfig.bat b/contrib/windows/installer/tools/ReloadConfig.bat index 5fd44e831..911afb0a8 100755 --- a/contrib/windows/installer/tools/ReloadConfig.bat +++ b/contrib/windows/installer/tools/ReloadConfig.bat @@ -1,3 +1,3 @@ -control.exe reload -echo off -ping 192.168.254.254 -n 8 -w 1000 > nul +control.exe reload +echo off +ping 192.168.254.254 -n 8 -w 1000 > nul diff --git a/contrib/windows/installer/tools/RemoveService.bat b/contrib/windows/installer/tools/RemoveService.bat index 881ec5b11..193f272f5 100755 --- a/contrib/windows/installer/tools/RemoveService.bat +++ b/contrib/windows/installer/tools/RemoveService.bat @@ -1,3 +1,3 @@ -@@SERVICEEXENAME@ -r -S GigaLock -echo off -ping 192.168.254.254 -n 5 -w 1000 > nul +@@SERVICEEXENAME@ -r -S GigaLock +echo off +ping 192.168.254.254 -n 5 -w 1000 > nul diff --git a/contrib/windows/installer/tools/RestartService.bat b/contrib/windows/installer/tools/RestartService.bat index 77092a69f..87a0a4eff 100755 --- a/contrib/windows/installer/tools/RestartService.bat +++ b/contrib/windows/installer/tools/RestartService.bat @@ -1,5 +1,5 @@ -net stop GigaLock -ping 192.168.254.254 -n 2 -w 1000 > nul -net start GigaLock -echo off -ping 192.168.254.254 -n 5 -w 1000 > nul +net stop GigaLock +ping 192.168.254.254 -n 2 -w 1000 > nul +net start GigaLock +echo off +ping 192.168.254.254 -n 5 -w 1000 > nul diff --git a/contrib/windows/installer/tools/ShowUsage.bat b/contrib/windows/installer/tools/ShowUsage.bat index e6f69e9fc..2ac0f37dc 100755 --- a/contrib/windows/installer/tools/ShowUsage.bat +++ b/contrib/windows/installer/tools/ShowUsage.bat @@ -1,3 +1,3 @@ -query.exe usage quit -ping 192.168.254.254 -n 10 -w 1000 > nul - +query.exe usage quit +ping 192.168.254.254 -n 10 -w 1000 > nul + diff --git a/contrib/windows/installer/tools/StartService.bat b/contrib/windows/installer/tools/StartService.bat index 1771238fd..dc7dce7e6 100755 --- a/contrib/windows/installer/tools/StartService.bat +++ b/contrib/windows/installer/tools/StartService.bat @@ -1,3 +1,3 @@ -net start GigaLock -echo off -ping 192.168.254.254 -n 5 -w 1000 > nul +net start GigaLock +echo off +ping 192.168.254.254 -n 5 -w 1000 > nul diff --git a/contrib/windows/installer/tools/StopService.bat b/contrib/windows/installer/tools/StopService.bat index 8e70d68d7..056cc69ea 100755 --- a/contrib/windows/installer/tools/StopService.bat +++ b/contrib/windows/installer/tools/StopService.bat @@ -1,3 +1,3 @@ -net stop GigaLock -echo off -ping 192.168.254.254 -n 5 -w 1000 > nul +net stop GigaLock +echo off +ping 192.168.254.254 -n 5 -w 1000 > nul diff --git a/contrib/windows/installer/tools/Sync.bat b/contrib/windows/installer/tools/Sync.bat index 30a04bec8..0357070ae 100755 --- a/contrib/windows/installer/tools/Sync.bat +++ b/contrib/windows/installer/tools/Sync.bat @@ -1,3 +1,3 @@ -control.exe sync -echo off -ping 192.168.254.254 -n 5 -w 1000 > nul +control.exe sync +echo off +ping 192.168.254.254 -n 5 -w 1000 > nul diff --git a/docs/xsl-generic/highlighting/common.xsl b/docs/xsl-generic/highlighting/common.xsl index 32f1bbcfa..23ac77eac 100644 --- a/docs/xsl-generic/highlighting/common.xsl +++ b/docs/xsl-generic/highlighting/common.xsl @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/xsl-generic/highlighting/xslthl-config.xml b/docs/xsl-generic/highlighting/xslthl-config.xml index 7c77f6fc6..dd83aa774 100644 --- a/docs/xsl-generic/highlighting/xslthl-config.xml +++ b/docs/xsl-generic/highlighting/xslthl-config.xml @@ -1,11 +1,11 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/docs/xsl-generic/html/highlight.xsl b/docs/xsl-generic/html/highlight.xsl index 30f2153e2..05896cd9c 100644 --- a/docs/xsl-generic/html/highlight.xsl +++ b/docs/xsl-generic/html/highlight.xsl @@ -1,54 +1,54 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/infrastructure/cmake/build/bin_bbackupd.vcxproj.user b/infrastructure/cmake/build/bin_bbackupd.vcxproj.user index 51928554f..fa1f3d341 100755 --- a/infrastructure/cmake/build/bin_bbackupd.vcxproj.user +++ b/infrastructure/cmake/build/bin_bbackupd.vcxproj.user @@ -1,8 +1,8 @@ - - - - testfiles\bbackupd.conf - $(ProjectDir)\..\..\..\debug\test\bbackupd - WindowsLocalDebugger - + + + + testfiles\bbackupd.conf + $(ProjectDir)\..\..\..\debug\test\bbackupd + WindowsLocalDebugger + \ No newline at end of file diff --git a/infrastructure/cmake/build/bin_bbstored.vcxproj.user b/infrastructure/cmake/build/bin_bbstored.vcxproj.user index e48b8383d..339cddee6 100755 --- a/infrastructure/cmake/build/bin_bbstored.vcxproj.user +++ b/infrastructure/cmake/build/bin_bbstored.vcxproj.user @@ -1,8 +1,8 @@ - - - - testfiles/bbstored.conf - $(ProjectDir)\..\..\..\debug\test\backupstorefix - WindowsLocalDebugger - + + + + testfiles/bbstored.conf + $(ProjectDir)\..\..\..\debug\test\backupstorefix + WindowsLocalDebugger + \ No newline at end of file diff --git a/infrastructure/cmake/build/test_backupstore.vcxproj.user b/infrastructure/cmake/build/test_backupstore.vcxproj.user index 79ef75713..7d7b31586 100755 --- a/infrastructure/cmake/build/test_backupstore.vcxproj.user +++ b/infrastructure/cmake/build/test_backupstore.vcxproj.user @@ -1,9 +1,9 @@ - - - - $(ProjectDir)\..\..\..\debug\test\backupstore - WindowsLocalDebugger - - - + + + + $(ProjectDir)\..\..\..\debug\test\backupstore + WindowsLocalDebugger + + + \ No newline at end of file diff --git a/infrastructure/cmake/build/test_backupstorefix.vcxproj.user b/infrastructure/cmake/build/test_backupstorefix.vcxproj.user index c08951916..170fb4967 100755 --- a/infrastructure/cmake/build/test_backupstorefix.vcxproj.user +++ b/infrastructure/cmake/build/test_backupstorefix.vcxproj.user @@ -1,7 +1,7 @@ - - - - $(ProjectDir)\..\..\..\debug\test\backupstorefix - WindowsLocalDebugger - + + + + $(ProjectDir)\..\..\..\debug\test\backupstorefix + WindowsLocalDebugger + \ No newline at end of file diff --git a/infrastructure/cmake/build/test_bbackupd.vcxproj.user b/infrastructure/cmake/build/test_bbackupd.vcxproj.user index 9ca2b5e9a..ebf8c6a3c 100755 --- a/infrastructure/cmake/build/test_bbackupd.vcxproj.user +++ b/infrastructure/cmake/build/test_bbackupd.vcxproj.user @@ -1,8 +1,8 @@ - - - - -e test_basics - $(ProjectDir)\..\..\..\debug\test\bbackupd - WindowsLocalDebugger - + + + + -e test_basics + $(ProjectDir)\..\..\..\debug\test\bbackupd + WindowsLocalDebugger + \ No newline at end of file diff --git a/infrastructure/cmake/build/test_common.vcxproj.user b/infrastructure/cmake/build/test_common.vcxproj.user index 7a375f104..e5854a80b 100755 --- a/infrastructure/cmake/build/test_common.vcxproj.user +++ b/infrastructure/cmake/build/test_common.vcxproj.user @@ -1,7 +1,7 @@ - - - - $(ProjectDir)\..\..\..\debug\test\common - WindowsLocalDebugger - + + + + $(ProjectDir)\..\..\..\debug\test\common + WindowsLocalDebugger + \ No newline at end of file diff --git a/infrastructure/cmake/build/test_httpserver.vcxproj.user b/infrastructure/cmake/build/test_httpserver.vcxproj.user index b2da015c1..ac1512a84 100755 --- a/infrastructure/cmake/build/test_httpserver.vcxproj.user +++ b/infrastructure/cmake/build/test_httpserver.vcxproj.user @@ -1,7 +1,7 @@ - - - - $(ProjectDir)\..\..\..\debug\test\httpserver - WindowsLocalDebugger - + + + + $(ProjectDir)\..\..\..\debug\test\httpserver + WindowsLocalDebugger + \ No newline at end of file diff --git a/infrastructure/cmake/build/test_raidfile.vcxproj.user b/infrastructure/cmake/build/test_raidfile.vcxproj.user index d2c2fc34e..620aa4bb6 100755 --- a/infrastructure/cmake/build/test_raidfile.vcxproj.user +++ b/infrastructure/cmake/build/test_raidfile.vcxproj.user @@ -1,7 +1,7 @@ - - - - $(ProjectDir)\..\..\..\debug\test\raidfile - WindowsLocalDebugger - + + + + $(ProjectDir)\..\..\..\debug\test\raidfile + WindowsLocalDebugger + \ No newline at end of file diff --git a/lib/win32/bsd_getopt.h b/lib/win32/bsd_getopt.h index 9cfdd32eb..3e2441ca8 100755 --- a/lib/win32/bsd_getopt.h +++ b/lib/win32/bsd_getopt.h @@ -1,105 +1,105 @@ -/* $OpenBSD: getopt.h,v 1.1 2002/12/03 20:24:29 millert Exp $ */ -/* $NetBSD: getopt.h,v 1.4 2000/07/07 10:43:54 ad Exp $ */ - -/*- - * Copyright (c) 2000 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Dieter Baron and Thomas Klausner. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef REPLACE_GETOPT -#error You must include box_getopt.h, not bsd_getopt.h -#endif - -#if REPLACE_GETOPT // defined in box_getopt.h; until end of file - -#ifndef _GETOPT_H_ -#define _GETOPT_H_ - -// copied from: http://www.la.utexas.edu/lab/software/devtool/gnu/libtool/C_header_files.html - -/* __BEGIN_DECLS should be used at the beginning of your declarations, - so that C++ compilers don't mangle their names. Use __END_DECLS at - the end of C declarations. */ -#undef __BEGIN_DECLS -#undef __END_DECLS -#ifdef __cplusplus -# define __BEGIN_DECLS extern "C" { -# define __END_DECLS } -#else -# define __BEGIN_DECLS /* empty */ -# define __END_DECLS /* empty */ -#endif - -/* - * GNU-like getopt_long() and 4.4BSD getsubopt()/optreset extensions - */ -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 - -struct option { - /* name of long option */ - const char *name; - /* - * one of no_argument, required_argument, and optional_argument: - * whether option takes an argument - */ - int has_arg; - /* if not NULL, set *flag to val when option found */ - int *flag; - /* if flag not NULL, value to set *flag to; else return value */ - int val; -}; - -__BEGIN_DECLS -int getopt_long(int, char * const *, const char *, - const struct option *, int *); -int getopt_long_only(int, char * const *, const char *, - const struct option *, int *); -#ifndef _GETOPT_DEFINED_ -#define _GETOPT_DEFINED_ -int getopt(int, char * const *, const char *); -int getsubopt(char **, char * const *, char **); - -extern char *optarg; /* getopt(3) external variables */ -extern int opterr; -extern int optind; -extern int optopt; -extern int optreset; -extern char *suboptarg; /* getsubopt(3) external variable */ -#endif -__END_DECLS - -#endif /* !_GETOPT_H_ */ -#endif // REPLACE_GETOPT +/* $OpenBSD: getopt.h,v 1.1 2002/12/03 20:24:29 millert Exp $ */ +/* $NetBSD: getopt.h,v 1.4 2000/07/07 10:43:54 ad Exp $ */ + +/*- + * Copyright (c) 2000 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Dieter Baron and Thomas Klausner. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef REPLACE_GETOPT +#error You must include box_getopt.h, not bsd_getopt.h +#endif + +#if REPLACE_GETOPT // defined in box_getopt.h; until end of file + +#ifndef _GETOPT_H_ +#define _GETOPT_H_ + +// copied from: http://www.la.utexas.edu/lab/software/devtool/gnu/libtool/C_header_files.html + +/* __BEGIN_DECLS should be used at the beginning of your declarations, + so that C++ compilers don't mangle their names. Use __END_DECLS at + the end of C declarations. */ +#undef __BEGIN_DECLS +#undef __END_DECLS +#ifdef __cplusplus +# define __BEGIN_DECLS extern "C" { +# define __END_DECLS } +#else +# define __BEGIN_DECLS /* empty */ +# define __END_DECLS /* empty */ +#endif + +/* + * GNU-like getopt_long() and 4.4BSD getsubopt()/optreset extensions + */ +#define no_argument 0 +#define required_argument 1 +#define optional_argument 2 + +struct option { + /* name of long option */ + const char *name; + /* + * one of no_argument, required_argument, and optional_argument: + * whether option takes an argument + */ + int has_arg; + /* if not NULL, set *flag to val when option found */ + int *flag; + /* if flag not NULL, value to set *flag to; else return value */ + int val; +}; + +__BEGIN_DECLS +int getopt_long(int, char * const *, const char *, + const struct option *, int *); +int getopt_long_only(int, char * const *, const char *, + const struct option *, int *); +#ifndef _GETOPT_DEFINED_ +#define _GETOPT_DEFINED_ +int getopt(int, char * const *, const char *); +int getsubopt(char **, char * const *, char **); + +extern char *optarg; /* getopt(3) external variables */ +extern int opterr; +extern int optind; +extern int optopt; +extern int optreset; +extern char *suboptarg; /* getsubopt(3) external variable */ +#endif +__END_DECLS + +#endif /* !_GETOPT_H_ */ +#endif // REPLACE_GETOPT diff --git a/lib/win32/getopt_long.cpp b/lib/win32/getopt_long.cpp index af2833a11..825de2a0f 100755 --- a/lib/win32/getopt_long.cpp +++ b/lib/win32/getopt_long.cpp @@ -1,546 +1,546 @@ -/* $OpenBSD: getopt_long.c,v 1.20 2005/10/25 15:49:37 jmc Exp $ */ -/* $NetBSD: getopt_long.c,v 1.15 2002/01/31 22:43:40 tv Exp $ */ -// Adapted for Box Backup by Chris Wilson - -/* - * Copyright (c) 2002 Todd C. Miller - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * Sponsored in part by the Defense Advanced Research Projects - * Agency (DARPA) and Air Force Research Laboratory, Air Force - * Materiel Command, USAF, under agreement number F39502-99-1-0512. - */ -/*- - * Copyright (c) 2000 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Dieter Baron and Thomas Klausner. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -// #include "Box.h" -#include "emu.h" - -#include -#include -#include -#include -#include - -#include "box_getopt.h" - -#ifdef REPLACE_GETOPT // until end of file - -int opterr = 1; /* if error message should be printed */ -int optind = 1; /* index into parent argv vector */ -int optopt = '?'; /* character checked for validity */ -int optreset; /* reset getopt */ -char *optarg; /* argument associated with option */ - -#define PRINT_ERROR ((opterr) && (*options != ':')) - -#define FLAG_PERMUTE 0x01 /* permute non-options to the end of argv */ -#define FLAG_ALLARGS 0x02 /* treat non-options as args to option "-1" */ -#define FLAG_LONGONLY 0x04 /* operate as getopt_long_only */ - -/* return values */ -#define BADCH (int)'?' -#define BADARG ((*options == ':') ? (int)':' : (int)'?') -#define INORDER (int)1 - -#define EMSG "" - -static void warnx(const char* fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); - fprintf(stderr, "\n"); -} - -static int getopt_internal(int, char * const *, const char *, - const struct option *, int *, int); -static int parse_long_options(char * const *, const char *, - const struct option *, int *, int); -static int gcd(int, int); -static void permute_args(int, int, int, char * const *); - -static char *place = EMSG; /* option letter processing */ - -/* XXX: set optreset to 1 rather than these two */ -static int nonopt_start = -1; /* first non option argument (for permute) */ -static int nonopt_end = -1; /* first option after non options (for permute) */ - -/* Error messages */ -static const char recargchar[] = "option requires an argument -- %c"; -static const char recargstring[] = "option requires an argument -- %s"; -static const char ambig[] = "ambiguous option -- %.*s"; -static const char noarg[] = "option doesn't take an argument -- %.*s"; -static const char illoptchar[] = "unknown option -- %c"; -static const char illoptstring[] = "unknown option -- %s"; - -/* - * Compute the greatest common divisor of a and b. - */ -static int -gcd(int a, int b) -{ - int c; - - c = a % b; - while (c != 0) { - a = b; - b = c; - c = a % b; - } - - return (b); -} - -/* - * Exchange the block from nonopt_start to nonopt_end with the block - * from nonopt_end to opt_end (keeping the same order of arguments - * in each block). - */ -static void -permute_args(int panonopt_start, int panonopt_end, int opt_end, - char * const *nargv) -{ - int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos; - char *swap; - - /* - * compute lengths of blocks and number and size of cycles - */ - nnonopts = panonopt_end - panonopt_start; - nopts = opt_end - panonopt_end; - ncycle = gcd(nnonopts, nopts); - cyclelen = (opt_end - panonopt_start) / ncycle; - - for (i = 0; i < ncycle; i++) { - cstart = panonopt_end+i; - pos = cstart; - for (j = 0; j < cyclelen; j++) { - if (pos >= panonopt_end) - pos -= nnonopts; - else - pos += nopts; - swap = nargv[pos]; - /* LINTED const cast */ - ((char **) nargv)[pos] = nargv[cstart]; - /* LINTED const cast */ - ((char **)nargv)[cstart] = swap; - } - } -} - -/* - * parse_long_options -- - * Parse long options in argc/argv argument vector. - * Returns -1 if short_too is set and the option does not match long_options. - */ -static int -parse_long_options(char * const *nargv, const char *options, - const struct option *long_options, int *idx, int short_too) -{ - char *current_argv, *has_equal; - size_t current_argv_len; - int i, match; - - current_argv = place; - match = -1; - - optind++; - - if ((has_equal = strchr(current_argv, '=')) != NULL) { - /* argument found (--option=arg) */ - current_argv_len = has_equal - current_argv; - has_equal++; - } else - current_argv_len = strlen(current_argv); - - for (i = 0; long_options[i].name; i++) { - /* find matching long option */ - if (strncmp(current_argv, long_options[i].name, - current_argv_len)) - continue; - - if (strlen(long_options[i].name) == current_argv_len) { - /* exact match */ - match = i; - break; - } - /* - * If this is a known short option, don't allow - * a partial match of a single character. - */ - if (short_too && current_argv_len == 1) - continue; - - if (match == -1) /* partial match */ - match = i; - else { - /* ambiguous abbreviation */ - if (PRINT_ERROR) - warnx(ambig, (int)current_argv_len, - current_argv); - optopt = 0; - return (BADCH); - } - } - if (match != -1) { /* option found */ - if (long_options[match].has_arg == no_argument - && has_equal) { - if (PRINT_ERROR) - warnx(noarg, (int)current_argv_len, - current_argv); - /* - * XXX: GNU sets optopt to val regardless of flag - */ - if (long_options[match].flag == NULL) - optopt = long_options[match].val; - else - optopt = 0; - return (BADARG); - } - if (long_options[match].has_arg == required_argument || - long_options[match].has_arg == optional_argument) { - if (has_equal) - optarg = has_equal; - else if (long_options[match].has_arg == - required_argument) { - /* - * optional argument doesn't use next nargv - */ - optarg = nargv[optind++]; - } - } - if ((long_options[match].has_arg == required_argument) - && (optarg == NULL)) { - /* - * Missing argument; leading ':' indicates no error - * should be generated. - */ - if (PRINT_ERROR) - warnx(recargstring, - current_argv); - /* - * XXX: GNU sets optopt to val regardless of flag - */ - if (long_options[match].flag == NULL) - optopt = long_options[match].val; - else - optopt = 0; - --optind; - return (BADARG); - } - } else { /* unknown option */ - if (short_too) { - --optind; - return (-1); - } - if (PRINT_ERROR) - warnx(illoptstring, current_argv); - optopt = 0; - return (BADCH); - } - if (idx) - *idx = match; - if (long_options[match].flag) { - *long_options[match].flag = long_options[match].val; - return (0); - } else - return (long_options[match].val); -} - -/* - * getopt_internal -- - * Parse argc/argv argument vector. Called by user level routines. - */ -static int -getopt_internal(int nargc, char * const *nargv, const char *options, - const struct option *long_options, int *idx, int flags) -{ - const char * oli; /* option letter list index */ - int optchar, short_too; - static int posixly_correct = -1; - - if (options == NULL) - return (-1); - - /* - * Disable GNU extensions if POSIXLY_CORRECT is set or options - * string begins with a '+'. - */ - if (posixly_correct == -1) - posixly_correct = (getenv("POSIXLY_CORRECT") != NULL); - if (posixly_correct || *options == '+') - flags &= ~FLAG_PERMUTE; - else if (*options == '-') - flags |= FLAG_ALLARGS; - if (*options == '+' || *options == '-') - options++; - - /* - * XXX Some GNU programs (like cvs) set optind to 0 instead of - * XXX using optreset. Work around this braindamage. - */ - if (optind == 0) - optind = optreset = 1; - - optarg = NULL; - if (optreset) - nonopt_start = nonopt_end = -1; -start: - if (optreset || !*place) { /* update scanning pointer */ - optreset = 0; - if (optind >= nargc) { /* end of argument vector */ - place = EMSG; - if (nonopt_end != -1) { - /* do permutation, if we have to */ - permute_args(nonopt_start, nonopt_end, - optind, nargv); - optind -= nonopt_end - nonopt_start; - } - else if (nonopt_start != -1) { - /* - * If we skipped non-options, set optind - * to the first of them. - */ - optind = nonopt_start; - } - nonopt_start = nonopt_end = -1; - return (-1); - } - if (*(place = nargv[optind]) != '-' || - (place[1] == '\0' && strchr(options, '-') == NULL)) { - place = EMSG; /* found non-option */ - if (flags & FLAG_ALLARGS) { - /* - * GNU extension: - * return non-option as argument to option 1 - */ - optarg = nargv[optind++]; - return (INORDER); - } - if (!(flags & FLAG_PERMUTE)) { - /* - * If no permutation wanted, stop parsing - * at first non-option. - */ - return (-1); - } - /* do permutation */ - if (nonopt_start == -1) - nonopt_start = optind; - else if (nonopt_end != -1) { - permute_args(nonopt_start, nonopt_end, - optind, nargv); - nonopt_start = optind - - (nonopt_end - nonopt_start); - nonopt_end = -1; - } - optind++; - /* process next argument */ - goto start; - } - if (nonopt_start != -1 && nonopt_end == -1) - nonopt_end = optind; - - /* - * If we have "-" do nothing, if "--" we are done. - */ - if (place[1] != '\0' && *++place == '-' && place[1] == '\0') { - optind++; - place = EMSG; - /* - * We found an option (--), so if we skipped - * non-options, we have to permute. - */ - if (nonopt_end != -1) { - permute_args(nonopt_start, nonopt_end, - optind, nargv); - optind -= nonopt_end - nonopt_start; - } - nonopt_start = nonopt_end = -1; - return (-1); - } - } - - /* - * Check long options if: - * 1) we were passed some - * 2) the arg is not just "-" - * 3) either the arg starts with -- we are getopt_long_only() - */ - if (long_options != NULL && place != nargv[optind] && - (*place == '-' || (flags & FLAG_LONGONLY))) { - short_too = 0; - if (*place == '-') - place++; /* --foo long option */ - else if (*place != ':' && strchr(options, *place) != NULL) - short_too = 1; /* could be short option too */ - - optchar = parse_long_options(nargv, options, long_options, - idx, short_too); - if (optchar != -1) { - place = EMSG; - return (optchar); - } - } - - if ((optchar = (int)*place++) == (int)':' || - optchar == (int)'-' && *place != '\0' || - (oli = strchr(options, optchar)) == NULL) { - /* - * If the user specified "-" and '-' isn't listed in - * options, return -1 (non-option) as per POSIX. - * Otherwise, it is an unknown option character (or ':'). - */ - if (optchar == (int)'-' && *place == '\0') - return (-1); - if (!*place) - ++optind; - if (PRINT_ERROR) - warnx(illoptchar, optchar); - optopt = optchar; - return (BADCH); - } - if (long_options != NULL && optchar == 'W' && oli[1] == ';') { - /* -W long-option */ - if (*place) /* no space */ - /* NOTHING */; - else if (++optind >= nargc) { /* no arg */ - place = EMSG; - if (PRINT_ERROR) - warnx(recargchar, optchar); - optopt = optchar; - return (BADARG); - } else /* white space */ - place = nargv[optind]; - optchar = parse_long_options(nargv, options, long_options, - idx, 0); - place = EMSG; - return (optchar); - } - if (*++oli != ':') { /* doesn't take argument */ - if (!*place) - ++optind; - } else { /* takes (optional) argument */ - optarg = NULL; - if (*place) /* no white space */ - optarg = place; - /* XXX: disable test for :: if PC? (GNU doesn't) */ - else if (oli[1] != ':') { /* arg not optional */ - if (++optind >= nargc) { /* no arg */ - place = EMSG; - if (PRINT_ERROR) - warnx(recargchar, optchar); - optopt = optchar; - return (BADARG); - } else - optarg = nargv[optind]; - } else if (!(flags & FLAG_PERMUTE)) { - /* - * If permutation is disabled, we can accept an - * optional arg separated by whitespace so long - * as it does not start with a dash (-). - */ - if (optind + 1 < nargc && *nargv[optind + 1] != '-') - optarg = nargv[++optind]; - } - place = EMSG; - ++optind; - } - /* dump back option letter */ - return (optchar); -} - -/* - * getopt -- - * Parse argc/argv argument vector. - * - * [eventually this will replace the BSD getopt] - */ -int -getopt(int nargc, char * const *nargv, const char *options) -{ - - /* - * We don't pass FLAG_PERMUTE to getopt_internal() since - * the BSD getopt(3) (unlike GNU) has never done this. - * - * Furthermore, since many privileged programs call getopt() - * before dropping privileges it makes sense to keep things - * as simple (and bug-free) as possible. - */ - return (getopt_internal(nargc, nargv, options, NULL, NULL, 0)); -} - -/* - * getopt_long -- - * Parse argc/argv argument vector. - */ -int -getopt_long(int nargc, char * const *nargv, const char *options, - const struct option *long_options, int *idx) -{ - - return (getopt_internal(nargc, nargv, options, long_options, idx, - FLAG_PERMUTE)); -} - -/* - * getopt_long_only -- - * Parse argc/argv argument vector. - */ -int -getopt_long_only(int nargc, char * const *nargv, const char *options, - const struct option *long_options, int *idx) -{ - - return (getopt_internal(nargc, nargv, options, long_options, idx, - FLAG_PERMUTE|FLAG_LONGONLY)); -} - -#endif // REPLACE_GETOPT +/* $OpenBSD: getopt_long.c,v 1.20 2005/10/25 15:49:37 jmc Exp $ */ +/* $NetBSD: getopt_long.c,v 1.15 2002/01/31 22:43:40 tv Exp $ */ +// Adapted for Box Backup by Chris Wilson + +/* + * Copyright (c) 2002 Todd C. Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Sponsored in part by the Defense Advanced Research Projects + * Agency (DARPA) and Air Force Research Laboratory, Air Force + * Materiel Command, USAF, under agreement number F39502-99-1-0512. + */ +/*- + * Copyright (c) 2000 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Dieter Baron and Thomas Klausner. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +// #include "Box.h" +#include "emu.h" + +#include +#include +#include +#include +#include + +#include "box_getopt.h" + +#ifdef REPLACE_GETOPT // until end of file + +int opterr = 1; /* if error message should be printed */ +int optind = 1; /* index into parent argv vector */ +int optopt = '?'; /* character checked for validity */ +int optreset; /* reset getopt */ +char *optarg; /* argument associated with option */ + +#define PRINT_ERROR ((opterr) && (*options != ':')) + +#define FLAG_PERMUTE 0x01 /* permute non-options to the end of argv */ +#define FLAG_ALLARGS 0x02 /* treat non-options as args to option "-1" */ +#define FLAG_LONGONLY 0x04 /* operate as getopt_long_only */ + +/* return values */ +#define BADCH (int)'?' +#define BADARG ((*options == ':') ? (int)':' : (int)'?') +#define INORDER (int)1 + +#define EMSG "" + +static void warnx(const char* fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + fprintf(stderr, "\n"); +} + +static int getopt_internal(int, char * const *, const char *, + const struct option *, int *, int); +static int parse_long_options(char * const *, const char *, + const struct option *, int *, int); +static int gcd(int, int); +static void permute_args(int, int, int, char * const *); + +static char *place = EMSG; /* option letter processing */ + +/* XXX: set optreset to 1 rather than these two */ +static int nonopt_start = -1; /* first non option argument (for permute) */ +static int nonopt_end = -1; /* first option after non options (for permute) */ + +/* Error messages */ +static const char recargchar[] = "option requires an argument -- %c"; +static const char recargstring[] = "option requires an argument -- %s"; +static const char ambig[] = "ambiguous option -- %.*s"; +static const char noarg[] = "option doesn't take an argument -- %.*s"; +static const char illoptchar[] = "unknown option -- %c"; +static const char illoptstring[] = "unknown option -- %s"; + +/* + * Compute the greatest common divisor of a and b. + */ +static int +gcd(int a, int b) +{ + int c; + + c = a % b; + while (c != 0) { + a = b; + b = c; + c = a % b; + } + + return (b); +} + +/* + * Exchange the block from nonopt_start to nonopt_end with the block + * from nonopt_end to opt_end (keeping the same order of arguments + * in each block). + */ +static void +permute_args(int panonopt_start, int panonopt_end, int opt_end, + char * const *nargv) +{ + int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos; + char *swap; + + /* + * compute lengths of blocks and number and size of cycles + */ + nnonopts = panonopt_end - panonopt_start; + nopts = opt_end - panonopt_end; + ncycle = gcd(nnonopts, nopts); + cyclelen = (opt_end - panonopt_start) / ncycle; + + for (i = 0; i < ncycle; i++) { + cstart = panonopt_end+i; + pos = cstart; + for (j = 0; j < cyclelen; j++) { + if (pos >= panonopt_end) + pos -= nnonopts; + else + pos += nopts; + swap = nargv[pos]; + /* LINTED const cast */ + ((char **) nargv)[pos] = nargv[cstart]; + /* LINTED const cast */ + ((char **)nargv)[cstart] = swap; + } + } +} + +/* + * parse_long_options -- + * Parse long options in argc/argv argument vector. + * Returns -1 if short_too is set and the option does not match long_options. + */ +static int +parse_long_options(char * const *nargv, const char *options, + const struct option *long_options, int *idx, int short_too) +{ + char *current_argv, *has_equal; + size_t current_argv_len; + int i, match; + + current_argv = place; + match = -1; + + optind++; + + if ((has_equal = strchr(current_argv, '=')) != NULL) { + /* argument found (--option=arg) */ + current_argv_len = has_equal - current_argv; + has_equal++; + } else + current_argv_len = strlen(current_argv); + + for (i = 0; long_options[i].name; i++) { + /* find matching long option */ + if (strncmp(current_argv, long_options[i].name, + current_argv_len)) + continue; + + if (strlen(long_options[i].name) == current_argv_len) { + /* exact match */ + match = i; + break; + } + /* + * If this is a known short option, don't allow + * a partial match of a single character. + */ + if (short_too && current_argv_len == 1) + continue; + + if (match == -1) /* partial match */ + match = i; + else { + /* ambiguous abbreviation */ + if (PRINT_ERROR) + warnx(ambig, (int)current_argv_len, + current_argv); + optopt = 0; + return (BADCH); + } + } + if (match != -1) { /* option found */ + if (long_options[match].has_arg == no_argument + && has_equal) { + if (PRINT_ERROR) + warnx(noarg, (int)current_argv_len, + current_argv); + /* + * XXX: GNU sets optopt to val regardless of flag + */ + if (long_options[match].flag == NULL) + optopt = long_options[match].val; + else + optopt = 0; + return (BADARG); + } + if (long_options[match].has_arg == required_argument || + long_options[match].has_arg == optional_argument) { + if (has_equal) + optarg = has_equal; + else if (long_options[match].has_arg == + required_argument) { + /* + * optional argument doesn't use next nargv + */ + optarg = nargv[optind++]; + } + } + if ((long_options[match].has_arg == required_argument) + && (optarg == NULL)) { + /* + * Missing argument; leading ':' indicates no error + * should be generated. + */ + if (PRINT_ERROR) + warnx(recargstring, + current_argv); + /* + * XXX: GNU sets optopt to val regardless of flag + */ + if (long_options[match].flag == NULL) + optopt = long_options[match].val; + else + optopt = 0; + --optind; + return (BADARG); + } + } else { /* unknown option */ + if (short_too) { + --optind; + return (-1); + } + if (PRINT_ERROR) + warnx(illoptstring, current_argv); + optopt = 0; + return (BADCH); + } + if (idx) + *idx = match; + if (long_options[match].flag) { + *long_options[match].flag = long_options[match].val; + return (0); + } else + return (long_options[match].val); +} + +/* + * getopt_internal -- + * Parse argc/argv argument vector. Called by user level routines. + */ +static int +getopt_internal(int nargc, char * const *nargv, const char *options, + const struct option *long_options, int *idx, int flags) +{ + const char * oli; /* option letter list index */ + int optchar, short_too; + static int posixly_correct = -1; + + if (options == NULL) + return (-1); + + /* + * Disable GNU extensions if POSIXLY_CORRECT is set or options + * string begins with a '+'. + */ + if (posixly_correct == -1) + posixly_correct = (getenv("POSIXLY_CORRECT") != NULL); + if (posixly_correct || *options == '+') + flags &= ~FLAG_PERMUTE; + else if (*options == '-') + flags |= FLAG_ALLARGS; + if (*options == '+' || *options == '-') + options++; + + /* + * XXX Some GNU programs (like cvs) set optind to 0 instead of + * XXX using optreset. Work around this braindamage. + */ + if (optind == 0) + optind = optreset = 1; + + optarg = NULL; + if (optreset) + nonopt_start = nonopt_end = -1; +start: + if (optreset || !*place) { /* update scanning pointer */ + optreset = 0; + if (optind >= nargc) { /* end of argument vector */ + place = EMSG; + if (nonopt_end != -1) { + /* do permutation, if we have to */ + permute_args(nonopt_start, nonopt_end, + optind, nargv); + optind -= nonopt_end - nonopt_start; + } + else if (nonopt_start != -1) { + /* + * If we skipped non-options, set optind + * to the first of them. + */ + optind = nonopt_start; + } + nonopt_start = nonopt_end = -1; + return (-1); + } + if (*(place = nargv[optind]) != '-' || + (place[1] == '\0' && strchr(options, '-') == NULL)) { + place = EMSG; /* found non-option */ + if (flags & FLAG_ALLARGS) { + /* + * GNU extension: + * return non-option as argument to option 1 + */ + optarg = nargv[optind++]; + return (INORDER); + } + if (!(flags & FLAG_PERMUTE)) { + /* + * If no permutation wanted, stop parsing + * at first non-option. + */ + return (-1); + } + /* do permutation */ + if (nonopt_start == -1) + nonopt_start = optind; + else if (nonopt_end != -1) { + permute_args(nonopt_start, nonopt_end, + optind, nargv); + nonopt_start = optind - + (nonopt_end - nonopt_start); + nonopt_end = -1; + } + optind++; + /* process next argument */ + goto start; + } + if (nonopt_start != -1 && nonopt_end == -1) + nonopt_end = optind; + + /* + * If we have "-" do nothing, if "--" we are done. + */ + if (place[1] != '\0' && *++place == '-' && place[1] == '\0') { + optind++; + place = EMSG; + /* + * We found an option (--), so if we skipped + * non-options, we have to permute. + */ + if (nonopt_end != -1) { + permute_args(nonopt_start, nonopt_end, + optind, nargv); + optind -= nonopt_end - nonopt_start; + } + nonopt_start = nonopt_end = -1; + return (-1); + } + } + + /* + * Check long options if: + * 1) we were passed some + * 2) the arg is not just "-" + * 3) either the arg starts with -- we are getopt_long_only() + */ + if (long_options != NULL && place != nargv[optind] && + (*place == '-' || (flags & FLAG_LONGONLY))) { + short_too = 0; + if (*place == '-') + place++; /* --foo long option */ + else if (*place != ':' && strchr(options, *place) != NULL) + short_too = 1; /* could be short option too */ + + optchar = parse_long_options(nargv, options, long_options, + idx, short_too); + if (optchar != -1) { + place = EMSG; + return (optchar); + } + } + + if ((optchar = (int)*place++) == (int)':' || + optchar == (int)'-' && *place != '\0' || + (oli = strchr(options, optchar)) == NULL) { + /* + * If the user specified "-" and '-' isn't listed in + * options, return -1 (non-option) as per POSIX. + * Otherwise, it is an unknown option character (or ':'). + */ + if (optchar == (int)'-' && *place == '\0') + return (-1); + if (!*place) + ++optind; + if (PRINT_ERROR) + warnx(illoptchar, optchar); + optopt = optchar; + return (BADCH); + } + if (long_options != NULL && optchar == 'W' && oli[1] == ';') { + /* -W long-option */ + if (*place) /* no space */ + /* NOTHING */; + else if (++optind >= nargc) { /* no arg */ + place = EMSG; + if (PRINT_ERROR) + warnx(recargchar, optchar); + optopt = optchar; + return (BADARG); + } else /* white space */ + place = nargv[optind]; + optchar = parse_long_options(nargv, options, long_options, + idx, 0); + place = EMSG; + return (optchar); + } + if (*++oli != ':') { /* doesn't take argument */ + if (!*place) + ++optind; + } else { /* takes (optional) argument */ + optarg = NULL; + if (*place) /* no white space */ + optarg = place; + /* XXX: disable test for :: if PC? (GNU doesn't) */ + else if (oli[1] != ':') { /* arg not optional */ + if (++optind >= nargc) { /* no arg */ + place = EMSG; + if (PRINT_ERROR) + warnx(recargchar, optchar); + optopt = optchar; + return (BADARG); + } else + optarg = nargv[optind]; + } else if (!(flags & FLAG_PERMUTE)) { + /* + * If permutation is disabled, we can accept an + * optional arg separated by whitespace so long + * as it does not start with a dash (-). + */ + if (optind + 1 < nargc && *nargv[optind + 1] != '-') + optarg = nargv[++optind]; + } + place = EMSG; + ++optind; + } + /* dump back option letter */ + return (optchar); +} + +/* + * getopt -- + * Parse argc/argv argument vector. + * + * [eventually this will replace the BSD getopt] + */ +int +getopt(int nargc, char * const *nargv, const char *options) +{ + + /* + * We don't pass FLAG_PERMUTE to getopt_internal() since + * the BSD getopt(3) (unlike GNU) has never done this. + * + * Furthermore, since many privileged programs call getopt() + * before dropping privileges it makes sense to keep things + * as simple (and bug-free) as possible. + */ + return (getopt_internal(nargc, nargv, options, NULL, NULL, 0)); +} + +/* + * getopt_long -- + * Parse argc/argv argument vector. + */ +int +getopt_long(int nargc, char * const *nargv, const char *options, + const struct option *long_options, int *idx) +{ + + return (getopt_internal(nargc, nargv, options, long_options, idx, + FLAG_PERMUTE)); +} + +/* + * getopt_long_only -- + * Parse argc/argv argument vector. + */ +int +getopt_long_only(int nargc, char * const *nargv, const char *options, + const struct option *long_options, int *idx) +{ + + return (getopt_internal(nargc, nargv, options, long_options, idx, + FLAG_PERMUTE|FLAG_LONGONLY)); +} + +#endif // REPLACE_GETOPT diff --git a/lib/win32/messages.h b/lib/win32/messages.h index 6959591bc..222902267 100755 --- a/lib/win32/messages.h +++ b/lib/win32/messages.h @@ -1,57 +1,57 @@ - // Message source file, to be compiled to a resource file with - // Microsoft Message Compiler (MC), to an object file with a Resource - // Compiler, and linked into the application. - - // The main reason for this file is to work around Windows' stupid - // messages in the Event Log, which say: - - // The description for Event ID ( 4 ) in Source ( Box Backup (bbackupd) ) - // cannot be found. The local computer may not have the necessary - // registry information or message DLL files to display messages from a - // remote computer. The following information is part of the event: - // Message definitions follow -// -// Values are 32 bit values layed out as follows: -// -// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 -// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -// +---+-+-+-----------------------+-------------------------------+ -// |Sev|C|R| Facility | Code | -// +---+-+-+-----------------------+-------------------------------+ -// -// where -// -// Sev - is the severity code -// -// 00 - Success -// 01 - Informational -// 10 - Warning -// 11 - Error -// -// C - is the Customer code flag -// -// R - is a reserved bit -// -// Facility - is the facility code -// -// Code - is the facility's status code -// -// -// Define the facility codes -// - - -// -// Define the severity codes -// - - -// -// MessageId: MSG_ERR -// -// MessageText: -// -// %1 -// -#define MSG_ERR ((DWORD)0x40000001L) - + // Message source file, to be compiled to a resource file with + // Microsoft Message Compiler (MC), to an object file with a Resource + // Compiler, and linked into the application. + + // The main reason for this file is to work around Windows' stupid + // messages in the Event Log, which say: + + // The description for Event ID ( 4 ) in Source ( Box Backup (bbackupd) ) + // cannot be found. The local computer may not have the necessary + // registry information or message DLL files to display messages from a + // remote computer. The following information is part of the event: + // Message definitions follow +// +// Values are 32 bit values layed out as follows: +// +// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 +// +---+-+-+-----------------------+-------------------------------+ +// |Sev|C|R| Facility | Code | +// +---+-+-+-----------------------+-------------------------------+ +// +// where +// +// Sev - is the severity code +// +// 00 - Success +// 01 - Informational +// 10 - Warning +// 11 - Error +// +// C - is the Customer code flag +// +// R - is a reserved bit +// +// Facility - is the facility code +// +// Code - is the facility's status code +// +// +// Define the facility codes +// + + +// +// Define the severity codes +// + + +// +// MessageId: MSG_ERR +// +// MessageText: +// +// %1 +// +#define MSG_ERR ((DWORD)0x40000001L) + diff --git a/lib/win32/messages.rc b/lib/win32/messages.rc index 116522b7d..0885a897e 100755 --- a/lib/win32/messages.rc +++ b/lib/win32/messages.rc @@ -1,2 +1,2 @@ -LANGUAGE 0x9,0x1 -1 11 MSG00001.bin +LANGUAGE 0x9,0x1 +1 11 MSG00001.bin diff --git a/qdbm/VCmakefile b/qdbm/VCmakefile index 210a98ff8..e37275c9c 100644 --- a/qdbm/VCmakefile +++ b/qdbm/VCmakefile @@ -1,248 +1,248 @@ -# Makefile to build QDBM using Microsoft Visual C++ - - - -#================================================================ -# Setting variables -#================================================================ - - -# VC++ directory -VCPATH = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7 - -# User options -YOUR_CLFLAGS = -YOUR_LIBFLAGS = -YOUR_LINKFLAGS= - -# Configurations -!IF "$(CFG)" == "ld" -!MESSAGE Build using static debug configuration -BASE_FLAGS = /MLd /W3 /ZI /Od /FD /GZ /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" -BASE_DEFS = /D_DEBUG /D__DEBUG__ -OUTDIR = .\tmp_ld -LIB_APPEND = _ld -EXE_APPEND = _ld -!ELSEIF "$(CFG)" == "l" -!MESSAGE Build using static release configuration -BASE_DEFS = /DNDEBUG -BASE_FLAGS = /ML /W3 /O2 /FD /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" -OUTDIR = .\tmp_l -LIB_APPEND = _l -EXE_APPEND = _l -!ELSEIF "$(CFG)" == "td" -!MESSAGE Build using static threaded debug configuration -BASE_FLAGS = /MTd /W3 /ZI /Od /FD /GZ /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" -BASE_DEFS = /D_DEBUG /D__DEBUG__ -OUTDIR = .\tmp_td -LIB_APPEND = _td -EXE_APPEND = _td -!ELSEIF "$(CFG)" == "t" -!MESSAGE Build using static threaded release configuration -BASE_DEFS = /DNDEBUG -BASE_FLAGS = /MT /W3 /O2 /FD /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" -OUTDIR = .\tmp_t -LIB_APPEND = _t -EXE_APPEND = _t -!ELSEIF "$(CFG)" == "dd" -!MESSAGE Build using dynamic threaded debug configuration -BASE_FLAGS = /MDd /W3 /ZI /Od /FD /GZ /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" -BASE_DEFS = /D_DEBUG /D__DEBUG__ -OUTDIR = .\tmp_dd -LIB_APPEND = _dd -EXE_APPEND = _dd -!ELSE -!MESSAGE Build using dynamic threaded release configuration -BASE_DEFS = /DNDEBUG -BASE_FLAGS = /MD /W3 /O2 /FD /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" -OUTDIR = .\tmp -LIB_APPEND = -EXE_APPEND = -!ENDIF - -# Building binaries -CLFLAGS = /I "$(VCPATH)\Include" /I "$(VCPATH)\PlatformSDK\Include" /I "." \ - /nologo $(YOUR_CLFLAGS) $(BASE_FLAGS) $(BASE_DEFS) /D_CRT_SECURE_NO_DEPRECATE=1 -LIBFLAGS = /libpath:"$(VCPATH)\lib" /libpath:"$(VCPATH)\PlatformSDK\Lib" /libpath:"." \ - /nologo $(YOUR_LIBFLAGS) -LINKFLAGS = /libpath:"$(VCPATH)\lib" /libpath:"$(VCPATH)\PlatformSDK\Lib" /libpath:"." \ - /nologo $(YOUR_LINKFLAGS) - -# Targets -MYLIBS = qdbm$(LIB_APPEND).dll qdbm$(LIB_APPEND).lib qdbm$(LIB_APPEND)_static.lib -LIBOBJS = $(OUTDIR)\depot.obj $(OUTDIR)\curia.obj $(OUTDIR)\relic.obj \ - $(OUTDIR)\hovel.obj $(OUTDIR)\cabin.obj $(OUTDIR)\villa.obj \ - $(OUTDIR)\vista.obj $(OUTDIR)\odeum.obj $(OUTDIR)\myconf.obj -MYBINS = dpmgr$(EXE_APPEND).exe dptest$(EXE_APPEND).exe dptsv$(EXE_APPEND).exe \ - crmgr$(EXE_APPEND).exe crtest$(EXE_APPEND).exe crtsv$(EXE_APPEND).exe \ - rlmgr$(EXE_APPEND).exe rltest$(EXE_APPEND).exe hvmgr$(EXE_APPEND).exe \ - hvtest$(EXE_APPEND).exe cbtest$(EXE_APPEND).exe cbcodec$(EXE_APPEND).exe \ - vlmgr$(EXE_APPEND).exe vltest$(EXE_APPEND).exe vltsv$(EXE_APPEND).exe \ - odmgr$(EXE_APPEND).exe odtest$(EXE_APPEND).exe odidx$(EXE_APPEND).exe - - - -#================================================================ -# Suffix rules -#================================================================ - - -.SUFFIXES : -.SUFFIXES : .c .obj - -.c{$(OUTDIR)}.obj : - cl /c $(CLFLAGS) $< - -.c.obj: - cl /c $(CLFLAGS) $< - - - -#================================================================ -# Actions -#================================================================ - - -all : $(OUTDIR) $(MYLIBS) $(MYBINS) - - -allcfg: - nmake /NOLOGO /f VCmakefile CFG=ld - nmake /NOLOGO /f VCmakefile CFG=l - nmake /NOLOGO /f VCmakefile CFG=td - nmake /NOLOGO /f VCmakefile CFG=t - nmake /NOLOGO /f VCmakefile CFG=dd - nmake /NOLOGO /f VCmakefile - - -clean : - -rd tmp_ld /S /Q > NUL: 2>&1 - -rd tmp_l /S /Q > NUL: 2>&1 - -rd tmp_td /S /Q > NUL: 2>&1 - -rd tmp_t /S /Q > NUL: 2>&1 - -rd tmp_dd /S /Q > NUL: 2>&1 - -rd tmp /S /Q > NUL: 2>&1 - -del *.obj *.lib *.dll *.exp *.exe casket /F /Q > NUL: 2>&1 - - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/" mkdir "$(OUTDIR)" - - - -#================================================================ -# Building binaries -#================================================================ - - -qdbm$(LIB_APPEND).dll : $(LIBOBJS) qdbm.def - link /DLL /DEF:qdbm.def $(LINKFLAGS) /OUT:$@ /IMPLIB:qdbm$(LIB_APPEND).lib $(LIBOBJS) - - -qdbm$(LIB_APPEND).lib : qdbm$(LIB_APPEND).dll - - -qdbm$(LIB_APPEND)_static.lib : $(LIBOBJS) - lib $(LIBFLAGS) /OUT:$@ $(LIBOBJS) - - -dpmgr$(EXE_APPEND).exe : $(OUTDIR)\dpmgr.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\dpmgr.obj qdbm$(LIB_APPEND).lib - - -dptest$(EXE_APPEND).exe : $(OUTDIR)\dptest.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\dptest.obj qdbm$(LIB_APPEND).lib - - -dptsv$(EXE_APPEND).exe : $(OUTDIR)\dptsv.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\dptsv.obj qdbm$(LIB_APPEND).lib - - -crmgr$(EXE_APPEND).exe : $(OUTDIR)\crmgr.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\crmgr.obj qdbm$(LIB_APPEND).lib - - -crtest$(EXE_APPEND).exe : $(OUTDIR)\crtest.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\crtest.obj qdbm$(LIB_APPEND).lib - - -crtsv$(EXE_APPEND).exe : $(OUTDIR)\crtsv.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\crtsv.obj qdbm$(LIB_APPEND).lib - - -rlmgr$(EXE_APPEND).exe : $(OUTDIR)\rlmgr.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\rlmgr.obj qdbm$(LIB_APPEND).lib - - -rltest$(EXE_APPEND).exe : $(OUTDIR)\rltest.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\rltest.obj qdbm$(LIB_APPEND).lib - - -hvmgr$(EXE_APPEND).exe : $(OUTDIR)\hvmgr.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\hvmgr.obj qdbm$(LIB_APPEND).lib - - -hvtest$(EXE_APPEND).exe : $(OUTDIR)\hvtest.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\hvtest.obj qdbm$(LIB_APPEND).lib - - -cbtest$(EXE_APPEND).exe : $(OUTDIR)\cbtest.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\cbtest.obj qdbm$(LIB_APPEND).lib - - -cbcodec$(EXE_APPEND).exe : $(OUTDIR)\cbcodec.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\cbcodec.obj qdbm$(LIB_APPEND).lib - - -vlmgr$(EXE_APPEND).exe : $(OUTDIR)\vlmgr.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\vlmgr.obj qdbm$(LIB_APPEND).lib - - -vltest$(EXE_APPEND).exe : $(OUTDIR)\vltest.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\vltest.obj qdbm$(LIB_APPEND).lib - - -vltsv$(EXE_APPEND).exe : $(OUTDIR)\vltsv.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\vltsv.obj qdbm$(LIB_APPEND).lib - - -odmgr$(EXE_APPEND).exe : $(OUTDIR)\odmgr.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\odmgr.obj qdbm$(LIB_APPEND).lib - - -odtest$(EXE_APPEND).exe : $(OUTDIR)\odtest.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\odtest.obj qdbm$(LIB_APPEND).lib - - -odidx$(EXE_APPEND).exe : $(OUTDIR)\odidx.obj qdbm$(LIB_APPEND).lib - link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\odidx.obj qdbm$(LIB_APPEND).lib - - -$(OUTDIR)\depot.obj $(OUTDIR)\dpmgr.obj $(OUTDIR)\dptest.obj $(OUTDIR)\dptsv.obj : \ - depot.h myconf.h - -$(OUTDIR)\curia.obj $(OUTDIR)\crmgr.obj $(OUTDIR)\crtest.obj $(OUTDIR)\crtsv.obj : \ - curia.h depot.h myconf.h - -$(OUTDIR)\relic.obj $(OUTDIR)\rlmgr.obj $(OUTDIR)\rltest.obj : \ - relic.h depot.h myconf.h - -$(OUTDIR)\hovel.obj $(OUTDIR)\hvmgr.obj $(OUTDIR)\hvtest.obj : \ - hovel.h depot.h curia.h myconf.h - -$(OUTDIR)\cabin.obj $(OUTDIR)\cbtest.obj $(OUTDIR)\cbcodec.obj : \ - cabin.h myconf.h - -$(OUTDIR)\villa.obj $(OUTDIR)\vlmgr.obj $(OUTDIR)\vltest.obj $(OUTDIR)\vltsv.obj : \ - villa.h depot.h cabin.h myconf.h - -$(OUTDIR)\vista.obj : vista.h villa.h depot.h curia.h cabin.h myconf.h - -$(OUTDIR)\odeum.obj $(OUTDIR)\odmgr.obj $(OUTDIR)\odtest.obj $(OUTDIR)\odidx.obj : \ - odeum.h depot.h curia.h cabin.h villa.h myconf.h - -$(OUTDIR)\myconf.obj : myconf.h - - - -# END OF FILE +# Makefile to build QDBM using Microsoft Visual C++ + + + +#================================================================ +# Setting variables +#================================================================ + + +# VC++ directory +VCPATH = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7 + +# User options +YOUR_CLFLAGS = +YOUR_LIBFLAGS = +YOUR_LINKFLAGS= + +# Configurations +!IF "$(CFG)" == "ld" +!MESSAGE Build using static debug configuration +BASE_FLAGS = /MLd /W3 /ZI /Od /FD /GZ /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" +BASE_DEFS = /D_DEBUG /D__DEBUG__ +OUTDIR = .\tmp_ld +LIB_APPEND = _ld +EXE_APPEND = _ld +!ELSEIF "$(CFG)" == "l" +!MESSAGE Build using static release configuration +BASE_DEFS = /DNDEBUG +BASE_FLAGS = /ML /W3 /O2 /FD /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" +OUTDIR = .\tmp_l +LIB_APPEND = _l +EXE_APPEND = _l +!ELSEIF "$(CFG)" == "td" +!MESSAGE Build using static threaded debug configuration +BASE_FLAGS = /MTd /W3 /ZI /Od /FD /GZ /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" +BASE_DEFS = /D_DEBUG /D__DEBUG__ +OUTDIR = .\tmp_td +LIB_APPEND = _td +EXE_APPEND = _td +!ELSEIF "$(CFG)" == "t" +!MESSAGE Build using static threaded release configuration +BASE_DEFS = /DNDEBUG +BASE_FLAGS = /MT /W3 /O2 /FD /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" +OUTDIR = .\tmp_t +LIB_APPEND = _t +EXE_APPEND = _t +!ELSEIF "$(CFG)" == "dd" +!MESSAGE Build using dynamic threaded debug configuration +BASE_FLAGS = /MDd /W3 /ZI /Od /FD /GZ /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" +BASE_DEFS = /D_DEBUG /D__DEBUG__ +OUTDIR = .\tmp_dd +LIB_APPEND = _dd +EXE_APPEND = _dd +!ELSE +!MESSAGE Build using dynamic threaded release configuration +BASE_DEFS = /DNDEBUG +BASE_FLAGS = /MD /W3 /O2 /FD /Fo"$(OUTDIR)\\" /Fd"$(OUTDIR)\\" +OUTDIR = .\tmp +LIB_APPEND = +EXE_APPEND = +!ENDIF + +# Building binaries +CLFLAGS = /I "$(VCPATH)\Include" /I "$(VCPATH)\PlatformSDK\Include" /I "." \ + /nologo $(YOUR_CLFLAGS) $(BASE_FLAGS) $(BASE_DEFS) /D_CRT_SECURE_NO_DEPRECATE=1 +LIBFLAGS = /libpath:"$(VCPATH)\lib" /libpath:"$(VCPATH)\PlatformSDK\Lib" /libpath:"." \ + /nologo $(YOUR_LIBFLAGS) +LINKFLAGS = /libpath:"$(VCPATH)\lib" /libpath:"$(VCPATH)\PlatformSDK\Lib" /libpath:"." \ + /nologo $(YOUR_LINKFLAGS) + +# Targets +MYLIBS = qdbm$(LIB_APPEND).dll qdbm$(LIB_APPEND).lib qdbm$(LIB_APPEND)_static.lib +LIBOBJS = $(OUTDIR)\depot.obj $(OUTDIR)\curia.obj $(OUTDIR)\relic.obj \ + $(OUTDIR)\hovel.obj $(OUTDIR)\cabin.obj $(OUTDIR)\villa.obj \ + $(OUTDIR)\vista.obj $(OUTDIR)\odeum.obj $(OUTDIR)\myconf.obj +MYBINS = dpmgr$(EXE_APPEND).exe dptest$(EXE_APPEND).exe dptsv$(EXE_APPEND).exe \ + crmgr$(EXE_APPEND).exe crtest$(EXE_APPEND).exe crtsv$(EXE_APPEND).exe \ + rlmgr$(EXE_APPEND).exe rltest$(EXE_APPEND).exe hvmgr$(EXE_APPEND).exe \ + hvtest$(EXE_APPEND).exe cbtest$(EXE_APPEND).exe cbcodec$(EXE_APPEND).exe \ + vlmgr$(EXE_APPEND).exe vltest$(EXE_APPEND).exe vltsv$(EXE_APPEND).exe \ + odmgr$(EXE_APPEND).exe odtest$(EXE_APPEND).exe odidx$(EXE_APPEND).exe + + + +#================================================================ +# Suffix rules +#================================================================ + + +.SUFFIXES : +.SUFFIXES : .c .obj + +.c{$(OUTDIR)}.obj : + cl /c $(CLFLAGS) $< + +.c.obj: + cl /c $(CLFLAGS) $< + + + +#================================================================ +# Actions +#================================================================ + + +all : $(OUTDIR) $(MYLIBS) $(MYBINS) + + +allcfg: + nmake /NOLOGO /f VCmakefile CFG=ld + nmake /NOLOGO /f VCmakefile CFG=l + nmake /NOLOGO /f VCmakefile CFG=td + nmake /NOLOGO /f VCmakefile CFG=t + nmake /NOLOGO /f VCmakefile CFG=dd + nmake /NOLOGO /f VCmakefile + + +clean : + -rd tmp_ld /S /Q > NUL: 2>&1 + -rd tmp_l /S /Q > NUL: 2>&1 + -rd tmp_td /S /Q > NUL: 2>&1 + -rd tmp_t /S /Q > NUL: 2>&1 + -rd tmp_dd /S /Q > NUL: 2>&1 + -rd tmp /S /Q > NUL: 2>&1 + -del *.obj *.lib *.dll *.exp *.exe casket /F /Q > NUL: 2>&1 + + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/" mkdir "$(OUTDIR)" + + + +#================================================================ +# Building binaries +#================================================================ + + +qdbm$(LIB_APPEND).dll : $(LIBOBJS) qdbm.def + link /DLL /DEF:qdbm.def $(LINKFLAGS) /OUT:$@ /IMPLIB:qdbm$(LIB_APPEND).lib $(LIBOBJS) + + +qdbm$(LIB_APPEND).lib : qdbm$(LIB_APPEND).dll + + +qdbm$(LIB_APPEND)_static.lib : $(LIBOBJS) + lib $(LIBFLAGS) /OUT:$@ $(LIBOBJS) + + +dpmgr$(EXE_APPEND).exe : $(OUTDIR)\dpmgr.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\dpmgr.obj qdbm$(LIB_APPEND).lib + + +dptest$(EXE_APPEND).exe : $(OUTDIR)\dptest.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\dptest.obj qdbm$(LIB_APPEND).lib + + +dptsv$(EXE_APPEND).exe : $(OUTDIR)\dptsv.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\dptsv.obj qdbm$(LIB_APPEND).lib + + +crmgr$(EXE_APPEND).exe : $(OUTDIR)\crmgr.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\crmgr.obj qdbm$(LIB_APPEND).lib + + +crtest$(EXE_APPEND).exe : $(OUTDIR)\crtest.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\crtest.obj qdbm$(LIB_APPEND).lib + + +crtsv$(EXE_APPEND).exe : $(OUTDIR)\crtsv.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\crtsv.obj qdbm$(LIB_APPEND).lib + + +rlmgr$(EXE_APPEND).exe : $(OUTDIR)\rlmgr.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\rlmgr.obj qdbm$(LIB_APPEND).lib + + +rltest$(EXE_APPEND).exe : $(OUTDIR)\rltest.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\rltest.obj qdbm$(LIB_APPEND).lib + + +hvmgr$(EXE_APPEND).exe : $(OUTDIR)\hvmgr.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\hvmgr.obj qdbm$(LIB_APPEND).lib + + +hvtest$(EXE_APPEND).exe : $(OUTDIR)\hvtest.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\hvtest.obj qdbm$(LIB_APPEND).lib + + +cbtest$(EXE_APPEND).exe : $(OUTDIR)\cbtest.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\cbtest.obj qdbm$(LIB_APPEND).lib + + +cbcodec$(EXE_APPEND).exe : $(OUTDIR)\cbcodec.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\cbcodec.obj qdbm$(LIB_APPEND).lib + + +vlmgr$(EXE_APPEND).exe : $(OUTDIR)\vlmgr.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\vlmgr.obj qdbm$(LIB_APPEND).lib + + +vltest$(EXE_APPEND).exe : $(OUTDIR)\vltest.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\vltest.obj qdbm$(LIB_APPEND).lib + + +vltsv$(EXE_APPEND).exe : $(OUTDIR)\vltsv.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\vltsv.obj qdbm$(LIB_APPEND).lib + + +odmgr$(EXE_APPEND).exe : $(OUTDIR)\odmgr.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\odmgr.obj qdbm$(LIB_APPEND).lib + + +odtest$(EXE_APPEND).exe : $(OUTDIR)\odtest.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\odtest.obj qdbm$(LIB_APPEND).lib + + +odidx$(EXE_APPEND).exe : $(OUTDIR)\odidx.obj qdbm$(LIB_APPEND).lib + link $(LINKFLAGS) /OUT:$@ $(OUTDIR)\odidx.obj qdbm$(LIB_APPEND).lib + + +$(OUTDIR)\depot.obj $(OUTDIR)\dpmgr.obj $(OUTDIR)\dptest.obj $(OUTDIR)\dptsv.obj : \ + depot.h myconf.h + +$(OUTDIR)\curia.obj $(OUTDIR)\crmgr.obj $(OUTDIR)\crtest.obj $(OUTDIR)\crtsv.obj : \ + curia.h depot.h myconf.h + +$(OUTDIR)\relic.obj $(OUTDIR)\rlmgr.obj $(OUTDIR)\rltest.obj : \ + relic.h depot.h myconf.h + +$(OUTDIR)\hovel.obj $(OUTDIR)\hvmgr.obj $(OUTDIR)\hvtest.obj : \ + hovel.h depot.h curia.h myconf.h + +$(OUTDIR)\cabin.obj $(OUTDIR)\cbtest.obj $(OUTDIR)\cbcodec.obj : \ + cabin.h myconf.h + +$(OUTDIR)\villa.obj $(OUTDIR)\vlmgr.obj $(OUTDIR)\vltest.obj $(OUTDIR)\vltsv.obj : \ + villa.h depot.h cabin.h myconf.h + +$(OUTDIR)\vista.obj : vista.h villa.h depot.h curia.h cabin.h myconf.h + +$(OUTDIR)\odeum.obj $(OUTDIR)\odmgr.obj $(OUTDIR)\odtest.obj $(OUTDIR)\odidx.obj : \ + odeum.h depot.h curia.h cabin.h villa.h myconf.h + +$(OUTDIR)\myconf.obj : myconf.h + + + +# END OF FILE diff --git a/qdbm/misc/VCmakefile-old b/qdbm/misc/VCmakefile-old index 8cd55467e..94ececb9a 100644 --- a/qdbm/misc/VCmakefile-old +++ b/qdbm/misc/VCmakefile-old @@ -1,169 +1,169 @@ -# Makefile to build QDBM using Microsoft Visual C++ - - - -#================================================================ -# Setting Variables -#================================================================ - - -# Targets -MYLIBS = qdbm.lib -LIBOBJS = depot.obj curia.obj relic.obj hovel.obj \ - cabin.obj villa.obj vista.obj odeum.obj myconf.obj -MYBINS = dpmgr.exe dptest.exe dptsv.exe crmgr.exe crtest.exe crtsv.exe \ - rlmgr.exe rltest.exe hvmgr.exe hvtest.exe cbtest.exe cbcodec.exe \ - vlmgr.exe vltest.exe vltsv.exe odmgr.exe odtest.exe odidx.exe - -# VC++ directory -VCPATH = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7 - -# Building binaries -CLFLAGS = /I "$(VCPATH)\Include" /I "$(VCPATH)\PlatformSDK\Include" /I "." /O2 /nologo -LIBFLAGS = /libpath:"$(VCPATH)\lib" /libpath:"$(VCPATH)\PlatformSDK\Lib" /libpath:"." /nologo -LINKFLAGS = /libpath:"$(VCPATH)\lib" /libpath:"$(VCPATH)\PlatformSDK\Lib" /libpath:"." /nologo - - - -#================================================================ -# Suffix rules -#================================================================ - - -.SUFFIXES : -.SUFFIXES : .c .obj - -.c.obj : - cl /c $(CLFLAGS) $< - - - -#================================================================ -# Actions -#================================================================ - - -all : $(MYLIBS) $(MYBINS) - - -clean : - del *.obj *.lib *.dll *.exp *.exe - - - -#================================================================ -# Building binaries -#================================================================ - - -qdbm.lib : $(LIBOBJS) - lib $(LIBFLAGS) /OUT:$@ $(LIBOBJS) - - -dpmgr.exe : dpmgr.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ dpmgr.obj qdbm.lib - - -dptest.exe : dptest.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ dptest.obj qdbm.lib - - -dptsv.exe : dptsv.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ dptsv.obj qdbm.lib - - -crmgr.exe : crmgr.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ crmgr.obj qdbm.lib - - -crtest.exe : crtest.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ crtest.obj qdbm.lib - - -crtsv.exe : crtsv.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ crtsv.obj qdbm.lib - - -rlmgr.exe : rlmgr.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ rlmgr.obj qdbm.lib - - -rltest.exe : rltest.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ rltest.obj qdbm.lib - - -hvmgr.exe : hvmgr.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ hvmgr.obj qdbm.lib - - -hvtest.exe : hvtest.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ hvtest.obj qdbm.lib - - -cbtest.exe : cbtest.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ cbtest.obj qdbm.lib - - -cbcodec.exe : cbcodec.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ cbcodec.obj qdbm.lib - - -vlmgr.exe : vlmgr.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ vlmgr.obj qdbm.lib - - -vltest.exe : vltest.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ vltest.obj qdbm.lib - - -vltsv.exe : vltsv.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ vltsv.obj qdbm.lib - - -odmgr.exe : odmgr.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ odmgr.obj qdbm.lib - - -odtest.exe : odtest.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ odtest.obj qdbm.lib - - -odidx.exe : odidx.obj qdbm.lib - link $(LINKFLAGS) /OUT:$@ odidx.obj qdbm.lib - - -depot.obj : depot.h myconf.h - -curia.obj : depot.h curia.h myconf.h - -relic.obj : depot.h relic.h myconf.h - -hovel.obj : depot.h curia.h hovel.h myconf.h - -cabin.obj : cabin.h myconf.h - -villa.obj : depot.h cabin.h villa.h myconf.h - -vista.obj : depot.h curia.h cabin.h villa.h vista.h myconf.h - -odeum.obj : depot.h curia.h cabin.h villa.h myconf.h - -myconf.obj : myconf.h - -dpmgr.obj dptest.obj dptsv.obj : depot.h cabin.h - -crmgr.obj crtest.obj crtsv.obj : depot.h curia.h cabin.h - -rlmgr.obj rltest.obj : depot.h relic.h cabin.h - -hvmgr.obj hvtest.obj : depot.h curia.h hovel.h cabin.h - -cbtest.obj cbcodec.obj : cabin.h - -vlmgr.obj vltest.obj vltsv.obj : depot.h cabin.h villa.h - -odmgr.obj odtest.obj odidx.obj : depot.h curia.h cabin.h villa.h odeum.h - - - -# END OF FILE +# Makefile to build QDBM using Microsoft Visual C++ + + + +#================================================================ +# Setting Variables +#================================================================ + + +# Targets +MYLIBS = qdbm.lib +LIBOBJS = depot.obj curia.obj relic.obj hovel.obj \ + cabin.obj villa.obj vista.obj odeum.obj myconf.obj +MYBINS = dpmgr.exe dptest.exe dptsv.exe crmgr.exe crtest.exe crtsv.exe \ + rlmgr.exe rltest.exe hvmgr.exe hvtest.exe cbtest.exe cbcodec.exe \ + vlmgr.exe vltest.exe vltsv.exe odmgr.exe odtest.exe odidx.exe + +# VC++ directory +VCPATH = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7 + +# Building binaries +CLFLAGS = /I "$(VCPATH)\Include" /I "$(VCPATH)\PlatformSDK\Include" /I "." /O2 /nologo +LIBFLAGS = /libpath:"$(VCPATH)\lib" /libpath:"$(VCPATH)\PlatformSDK\Lib" /libpath:"." /nologo +LINKFLAGS = /libpath:"$(VCPATH)\lib" /libpath:"$(VCPATH)\PlatformSDK\Lib" /libpath:"." /nologo + + + +#================================================================ +# Suffix rules +#================================================================ + + +.SUFFIXES : +.SUFFIXES : .c .obj + +.c.obj : + cl /c $(CLFLAGS) $< + + + +#================================================================ +# Actions +#================================================================ + + +all : $(MYLIBS) $(MYBINS) + + +clean : + del *.obj *.lib *.dll *.exp *.exe + + + +#================================================================ +# Building binaries +#================================================================ + + +qdbm.lib : $(LIBOBJS) + lib $(LIBFLAGS) /OUT:$@ $(LIBOBJS) + + +dpmgr.exe : dpmgr.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ dpmgr.obj qdbm.lib + + +dptest.exe : dptest.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ dptest.obj qdbm.lib + + +dptsv.exe : dptsv.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ dptsv.obj qdbm.lib + + +crmgr.exe : crmgr.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ crmgr.obj qdbm.lib + + +crtest.exe : crtest.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ crtest.obj qdbm.lib + + +crtsv.exe : crtsv.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ crtsv.obj qdbm.lib + + +rlmgr.exe : rlmgr.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ rlmgr.obj qdbm.lib + + +rltest.exe : rltest.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ rltest.obj qdbm.lib + + +hvmgr.exe : hvmgr.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ hvmgr.obj qdbm.lib + + +hvtest.exe : hvtest.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ hvtest.obj qdbm.lib + + +cbtest.exe : cbtest.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ cbtest.obj qdbm.lib + + +cbcodec.exe : cbcodec.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ cbcodec.obj qdbm.lib + + +vlmgr.exe : vlmgr.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ vlmgr.obj qdbm.lib + + +vltest.exe : vltest.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ vltest.obj qdbm.lib + + +vltsv.exe : vltsv.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ vltsv.obj qdbm.lib + + +odmgr.exe : odmgr.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ odmgr.obj qdbm.lib + + +odtest.exe : odtest.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ odtest.obj qdbm.lib + + +odidx.exe : odidx.obj qdbm.lib + link $(LINKFLAGS) /OUT:$@ odidx.obj qdbm.lib + + +depot.obj : depot.h myconf.h + +curia.obj : depot.h curia.h myconf.h + +relic.obj : depot.h relic.h myconf.h + +hovel.obj : depot.h curia.h hovel.h myconf.h + +cabin.obj : cabin.h myconf.h + +villa.obj : depot.h cabin.h villa.h myconf.h + +vista.obj : depot.h curia.h cabin.h villa.h vista.h myconf.h + +odeum.obj : depot.h curia.h cabin.h villa.h myconf.h + +myconf.obj : myconf.h + +dpmgr.obj dptest.obj dptsv.obj : depot.h cabin.h + +crmgr.obj crtest.obj crtsv.obj : depot.h curia.h cabin.h + +rlmgr.obj rltest.obj : depot.h relic.h cabin.h + +hvmgr.obj hvtest.obj : depot.h curia.h hovel.h cabin.h + +cbtest.obj cbcodec.obj : cabin.h + +vlmgr.obj vltest.obj vltsv.obj : depot.h cabin.h villa.h + +odmgr.obj odtest.obj odidx.obj : depot.h curia.h cabin.h villa.h odeum.h + + + +# END OF FILE diff --git a/qdbm/misc/win32check.bat b/qdbm/misc/win32check.bat index 63dae1809..4d6aebf43 100644 --- a/qdbm/misc/win32check.bat +++ b/qdbm/misc/win32check.bat @@ -1,111 +1,111 @@ -dptest write casket 50000 5000 -if errorlevel 1 goto error -dptest read casket -if errorlevel 1 goto error -dptest read -wb casket -if errorlevel 1 goto error -dptest rcat casket 50000 50 500 32 32 -if errorlevel 1 goto error -dptest combo casket -if errorlevel 1 goto error -dptest wicked casket 5000 -if errorlevel 1 goto error -del /Q casket - -crtest write casket 50000 500 10 -if errorlevel 1 goto error -crtest read casket -if errorlevel 1 goto error -crtest read -wb casket -if errorlevel 1 goto error -crtest rcat casket 50000 5 10 500 32 32 -if errorlevel 1 goto error -crtest combo casket -if errorlevel 1 goto error -crtest wicked casket 5000 -if errorlevel 1 goto error -rd /S /Q casket - -crtest write -lob casket 1000 50 10 -if errorlevel 1 goto error -crtest read -lob casket -if errorlevel 1 goto error -rd /S /Q casket - -rltest write casket 50000 -if errorlevel 1 goto error -rltest read casket 50000 -if errorlevel 1 goto error -del /Q casket* - -hvtest write casket 50000 -if errorlevel 1 goto error -hvtest read casket 50000 -if errorlevel 1 goto error -del /Q casket - -hvtest write -qdbm casket 50000 -if errorlevel 1 goto error -hvtest read -qdbm casket 50000 -if errorlevel 1 goto error -rd /S /Q casket - -cbtest sort 5000 -if errorlevel 1 goto error -cbtest strstr 500 -if errorlevel 1 goto error -cbtest list 50000 -if errorlevel 1 goto error -cbtest map 50000 -if errorlevel 1 goto error -cbtest wicked 5000 -if errorlevel 1 goto error -cbtest misc -if errorlevel 1 goto error - -vltest write -tune 25 64 32 32 casket 50000 -if errorlevel 1 goto error -vltest read casket -if errorlevel 1 goto error -vltest rdup -tune 25 64 256 256 casket 50000 50000 -if errorlevel 1 goto error -vltest combo casket -if errorlevel 1 goto error -vltest wicked casket 5000 -if errorlevel 1 goto error -del /Q casket - -vltest write -int -cz -tune 25 64 32 32 casket 50000 -if errorlevel 1 goto error -vltest read -int casket -if errorlevel 1 goto error -vltest rdup -int -cz -tune 25 64 256 256 casket 50000 50000 -if errorlevel 1 goto error -vltest combo -cz casket -if errorlevel 1 goto error -vltest wicked -cz casket 5000 -if errorlevel 1 goto error -del /Q casket - -odtest write casket 500 50 5000 -if errorlevel 1 goto error -odtest read casket -if errorlevel 1 goto error -odtest combo casket -if errorlevel 1 goto error -odtest wicked casket 500 -if errorlevel 1 goto error -rd /S /Q casket - -@echo off -echo #================================ -echo # SUCCESS -echo #================================ -goto :EOF - -:error -@echo off -echo #================================ -echo # ERROR -echo #================================ -goto :EOF +dptest write casket 50000 5000 +if errorlevel 1 goto error +dptest read casket +if errorlevel 1 goto error +dptest read -wb casket +if errorlevel 1 goto error +dptest rcat casket 50000 50 500 32 32 +if errorlevel 1 goto error +dptest combo casket +if errorlevel 1 goto error +dptest wicked casket 5000 +if errorlevel 1 goto error +del /Q casket + +crtest write casket 50000 500 10 +if errorlevel 1 goto error +crtest read casket +if errorlevel 1 goto error +crtest read -wb casket +if errorlevel 1 goto error +crtest rcat casket 50000 5 10 500 32 32 +if errorlevel 1 goto error +crtest combo casket +if errorlevel 1 goto error +crtest wicked casket 5000 +if errorlevel 1 goto error +rd /S /Q casket + +crtest write -lob casket 1000 50 10 +if errorlevel 1 goto error +crtest read -lob casket +if errorlevel 1 goto error +rd /S /Q casket + +rltest write casket 50000 +if errorlevel 1 goto error +rltest read casket 50000 +if errorlevel 1 goto error +del /Q casket* + +hvtest write casket 50000 +if errorlevel 1 goto error +hvtest read casket 50000 +if errorlevel 1 goto error +del /Q casket + +hvtest write -qdbm casket 50000 +if errorlevel 1 goto error +hvtest read -qdbm casket 50000 +if errorlevel 1 goto error +rd /S /Q casket + +cbtest sort 5000 +if errorlevel 1 goto error +cbtest strstr 500 +if errorlevel 1 goto error +cbtest list 50000 +if errorlevel 1 goto error +cbtest map 50000 +if errorlevel 1 goto error +cbtest wicked 5000 +if errorlevel 1 goto error +cbtest misc +if errorlevel 1 goto error + +vltest write -tune 25 64 32 32 casket 50000 +if errorlevel 1 goto error +vltest read casket +if errorlevel 1 goto error +vltest rdup -tune 25 64 256 256 casket 50000 50000 +if errorlevel 1 goto error +vltest combo casket +if errorlevel 1 goto error +vltest wicked casket 5000 +if errorlevel 1 goto error +del /Q casket + +vltest write -int -cz -tune 25 64 32 32 casket 50000 +if errorlevel 1 goto error +vltest read -int casket +if errorlevel 1 goto error +vltest rdup -int -cz -tune 25 64 256 256 casket 50000 50000 +if errorlevel 1 goto error +vltest combo -cz casket +if errorlevel 1 goto error +vltest wicked -cz casket 5000 +if errorlevel 1 goto error +del /Q casket + +odtest write casket 500 50 5000 +if errorlevel 1 goto error +odtest read casket +if errorlevel 1 goto error +odtest combo casket +if errorlevel 1 goto error +odtest wicked casket 500 +if errorlevel 1 goto error +rd /S /Q casket + +@echo off +echo #================================ +echo # SUCCESS +echo #================================ +goto :EOF + +:error +@echo off +echo #================================ +echo # ERROR +echo #================================ +goto :EOF diff --git a/qdbm/qdbm.def b/qdbm/qdbm.def index 4c10e49e5..6445b3844 100644 --- a/qdbm/qdbm.def +++ b/qdbm/qdbm.def @@ -1,424 +1,424 @@ -EXPORTS - VL_CMPDEC = VL_CMPDEC DATA - VL_CMPINT = VL_CMPINT DATA - VL_CMPLEX = VL_CMPLEX DATA - VL_CMPNUM = VL_CMPNUM DATA - VST_CMPDEC = VST_CMPDEC DATA - VST_CMPINT = VST_CMPINT DATA - VST_CMPLEX = VST_CMPLEX DATA - VST_CMPNUM = VST_CMPNUM DATA - cbfatalfunc = cbfatalfunc DATA - dpdbgfd = dpdbgfd DATA - dpisreentrant = dpisreentrant DATA - dpsysname = dpsysname DATA - dpversion = dpversion DATA - gdbm_version = gdbm_version DATA - odcachebnum = odcachebnum DATA - odcachesiz = odcachesiz DATA - odindexbnum = odindexbnum DATA - odindexdnum = odindexdnum DATA - odotcb = odotcb DATA - cbbasedecode = cbbasedecode - cbbaseencode = cbbaseencode - cbbzdecode = cbbzdecode - cbbzencode = cbbzencode - cbcalendar = cbcalendar - cbcsvcells = cbcsvcells - cbcsvescape = cbcsvescape - cbcsvrows = cbcsvrows - cbcsvunescape = cbcsvunescape - cbdatestrhttp = cbdatestrhttp - cbdatestrwww = cbdatestrwww - cbdatumcat = cbdatumcat - cbdatumclose = cbdatumclose - cbdatumdup = cbdatumdup - cbdatumopen = cbdatumopen - cbdatumopenbuf = cbdatumopenbuf - cbdatumprintf = cbdatumprintf - cbdatumptr = cbdatumptr - cbdatumsetbuf = cbdatumsetbuf - cbdatumsetsize = cbdatumsetsize - cbdatumsize = cbdatumsize - cbdatumtomalloc = cbdatumtomalloc - cbdayofweek = cbdayofweek - cbdeflate = cbdeflate - cbdirlist = cbdirlist - cbencname = cbencname - cbfilestat = cbfilestat - cbfree = cbfree - cbgetcrc = cbgetcrc - cbggcsweep = cbggcsweep - cbglobalgc = cbglobalgc - cbgzdecode = cbgzdecode - cbgzencode = cbgzencode - cbheapclose = cbheapclose - cbheapdup = cbheapdup - cbheapinsert = cbheapinsert - cbheapnum = cbheapnum - cbheapopen = cbheapopen - cbheaptomalloc = cbheaptomalloc - cbheapval = cbheapval - cbhsort = cbhsort - cbiconv = cbiconv - cbinflate = cbinflate - cbisort = cbisort - cbjetlag = cbjetlag - cblistbsearch = cblistbsearch - cblistclose = cblistclose - cblistdump = cblistdump - cblistdup = cblistdup - cblistinsert = cblistinsert - cblistload = cblistload - cblistlsearch = cblistlsearch - cblistnum = cblistnum - cblistopen = cblistopen - cblistover = cblistover - cblistpop = cblistpop - cblistpush = cblistpush - cblistpushbuf = cblistpushbuf - cblistremove = cblistremove - cblistshift = cblistshift - cblistsort = cblistsort - cblistunshift = cblistunshift - cblistval = cblistval - cblzodecode = cblzodecode - cblzoencode = cblzoencode - cbmalloc = cbmalloc - cbmapclose = cbmapclose - cbmapdump = cbmapdump - cbmapdup = cbmapdup - cbmapget = cbmapget - cbmapiterinit = cbmapiterinit - cbmapiternext = cbmapiternext - cbmapiterval = cbmapiterval - cbmapkeys = cbmapkeys - cbmapload = cbmapload - cbmaploadone = cbmaploadone - cbmapmove = cbmapmove - cbmapopen = cbmapopen - cbmapopenex = cbmapopenex - cbmapout = cbmapout - cbmapput = cbmapput - cbmapputcat = cbmapputcat - cbmaprnum = cbmaprnum - cbmapvals = cbmapvals - cbmemdup = cbmemdup - cbmimebreak = cbmimebreak - cbmimedecode = cbmimedecode - cbmimeencode = cbmimeencode - cbmimeparts = cbmimeparts - cbmyfatal = cbmyfatal - cbproctime = cbproctime - cbqsort = cbqsort - cbquotedecode = cbquotedecode - cbquoteencode = cbquoteencode - cbreadfile = cbreadfile - cbreadlines = cbreadlines - cbrealloc = cbrealloc - cbremove = cbremove - cbreplace = cbreplace - cbsplit = cbsplit - cbsprintf = cbsprintf - cbssort = cbssort - cbstdiobin = cbstdiobin - cbstrbwimatch = cbstrbwimatch - cbstrbwmatch = cbstrbwmatch - cbstrcountutf = cbstrcountutf - cbstrcututf = cbstrcututf - cbstrfwimatch = cbstrfwimatch - cbstrfwmatch = cbstrfwmatch - cbstricmp = cbstricmp - cbstrmktime = cbstrmktime - cbstrsqzspc = cbstrsqzspc - cbstrstrbm = cbstrstrbm - cbstrstrkmp = cbstrstrkmp - cbstrtolower = cbstrtolower - cbstrtoupper = cbstrtoupper - cbstrtrim = cbstrtrim - cburlbreak = cburlbreak - cburldecode = cburldecode - cburlencode = cburlencode - cburlresolve = cburlresolve - cbvmemavail = cbvmemavail - cbwritefile = cbwritefile - cbxmlattrs = cbxmlattrs - cbxmlbreak = cbxmlbreak - cbxmlescape = cbxmlescape - cbxmlunescape = cbxmlunescape - crbnum = crbnum - crbusenum = crbusenum - crclose = crclose - crexportdb = crexportdb - crfatalerror = crfatalerror - crfsiz = crfsiz - crfsizd = crfsizd - crget = crget - crgetflags = crgetflags - crgetlob = crgetlob - crgetlobfd = crgetlobfd - crgetwb = crgetwb - crimportdb = crimportdb - crinode = crinode - criterinit = criterinit - criternext = criternext - crmemflush = crmemflush - crmemsync = crmemsync - crmtime = crmtime - crname = crname - cropen = cropen - croptimize = croptimize - crout = crout - croutlob = croutlob - crput = crput - crputlob = crputlob - crremove = crremove - crrepair = crrepair - crrnum = crrnum - crrnumlob = crrnumlob - crsetalign = crsetalign - crsetfbpsiz = crsetfbpsiz - crsetflags = crsetflags - crsnaffle = crsnaffle - crsync = crsync - crvsiz = crvsiz - crvsizlob = crvsizlob - crwritable = crwritable - dbm_clearerr = dbm_clearerr - dbm_close = dbm_close - dbm_delete = dbm_delete - dbm_dirfno = dbm_dirfno - dbm_error = dbm_error - dbm_fetch = dbm_fetch - dbm_firstkey = dbm_firstkey - dbm_nextkey = dbm_nextkey - dbm_open = dbm_open - dbm_pagfno = dbm_pagfno - dbm_rdonly = dbm_rdonly - dbm_store = dbm_store - dpbnum = dpbnum - dpbusenum = dpbusenum - dpclose = dpclose - dpecodeptr = dpecodeptr - dpecodeset = dpecodeset - dperrmsg = dperrmsg - dpexportdb = dpexportdb - dpfatalerror = dpfatalerror - dpfdesc = dpfdesc - dpfsiz = dpfsiz - dpget = dpget - dpgetflags = dpgetflags - dpgetwb = dpgetwb - dpimportdb = dpimportdb - dpinnerhash = dpinnerhash - dpinode = dpinode - dpiterinit = dpiterinit - dpiternext = dpiternext - dpmemflush = dpmemflush - dpmemsync = dpmemsync - dpmtime = dpmtime - dpname = dpname - dpopen = dpopen - dpoptimize = dpoptimize - dpout = dpout - dpouterhash = dpouterhash - dpprimenum = dpprimenum - dpput = dpput - dpremove = dpremove - dprepair = dprepair - dprnum = dprnum - dpsetalign = dpsetalign - dpsetfbpsiz = dpsetfbpsiz - dpsetflags = dpsetflags - dpsnaffle = dpsnaffle - dpsync = dpsync - dpvsiz = dpvsiz - dpwritable = dpwritable - gdbm_close = gdbm_close - gdbm_delete = gdbm_delete - gdbm_errnoptr = gdbm_errnoptr - gdbm_exists = gdbm_exists - gdbm_fdesc = gdbm_fdesc - gdbm_fetch = gdbm_fetch - gdbm_firstkey = gdbm_firstkey - gdbm_nextkey = gdbm_nextkey - gdbm_open = gdbm_open - gdbm_open2 = gdbm_open2 - gdbm_reorganize = gdbm_reorganize - gdbm_setopt = gdbm_setopt - gdbm_store = gdbm_store - gdbm_strerror = gdbm_strerror - gdbm_sync = gdbm_sync - odanalyzetext = odanalyzetext - odbnum = odbnum - odbreaktext = odbreaktext - odbusenum = odbusenum - odcheck = odcheck - odclose = odclose - oddnum = oddnum - oddocaddattr = oddocaddattr - oddocaddword = oddocaddword - oddocawords = oddocawords - oddocclose = oddocclose - oddocgetattr = oddocgetattr - oddocid = oddocid - oddocnwords = oddocnwords - oddocopen = oddocopen - oddocscores = oddocscores - oddocuri = oddocuri - odfatalerror = odfatalerror - odfsiz = odfsiz - odget = odget - odgetbyid = odgetbyid - odgetidbyuri = odgetidbyuri - odidbdocs = odidbdocs - odidbindex = odidbindex - odidbrdocs = odidbrdocs - odinode = odinode - oditerinit = oditerinit - oditernext = oditernext - odlogarithm = odlogarithm - odmerge = odmerge - odmtime = odmtime - odname = odname - odnormalizeword = odnormalizeword - odopen = odopen - odoptimize = odoptimize - odout = odout - odoutbyid = odoutbyid - odpairsand = odpairsand - odpairsnotand = odpairsnotand - odpairsor = odpairsor - odpairssort = odpairssort - odput = odput - odquery = odquery - odremove = odremove - odsearch = odsearch - odsearchdnum = odsearchdnum - odsetcharclass = odsetcharclass - odsetotcb = odsetotcb - odsettuning = odsettuning - odsquareroot = odsquareroot - odsync = odsync - odvecabsolute = odvecabsolute - odvecinnerproduct = odvecinnerproduct - odvectorcosine = odvectorcosine - odwnum = odwnum - odwritable = odwritable - vlclose = vlclose - vlcrdnumptr = vlcrdnumptr - vlcurfirst = vlcurfirst - vlcurjump = vlcurjump - vlcurkey = vlcurkey - vlcurkeycache = vlcurkeycache - vlcurlast = vlcurlast - vlcurnext = vlcurnext - vlcurout = vlcurout - vlcurprev = vlcurprev - vlcurput = vlcurput - vlcurval = vlcurval - vlcurvalcache = vlcurvalcache - vlexportdb = vlexportdb - vlfatalerror = vlfatalerror - vlfsiz = vlfsiz - vlget = vlget - vlgetcache = vlgetcache - vlgetcat = vlgetcat - vlgetflags = vlgetflags - vlgetlist = vlgetlist - vlimportdb = vlimportdb - vlinode = vlinode - vllnum = vllnum - vlmemflush = vlmemflush - vlmemsync = vlmemsync - vlmtime = vlmtime - vlmulcurclose = vlmulcurclose - vlmulcurfirst = vlmulcurfirst - vlmulcurjump = vlmulcurjump - vlmulcurkey = vlmulcurkey - vlmulcurkeycache = vlmulcurkeycache - vlmulcurlast = vlmulcurlast - vlmulcurnext = vlmulcurnext - vlmulcuropen = vlmulcuropen - vlmulcurprev = vlmulcurprev - vlmulcurval = vlmulcurval - vlmulcurvalcache = vlmulcurvalcache - vlname = vlname - vlnnum = vlnnum - vlopen = vlopen - vloptimize = vloptimize - vlout = vlout - vloutlist = vloutlist - vlput = vlput - vlputlist = vlputlist - vlremove = vlremove - vlrepair = vlrepair - vlrnum = vlrnum - vlsetfbpsiz = vlsetfbpsiz - vlsetflags = vlsetflags - vlsettuning = vlsettuning - vlsync = vlsync - vltranabort = vltranabort - vltranbegin = vltranbegin - vltrancommit = vltrancommit - vlvnum = vlvnum - vlvsiz = vlvsiz - vlwritable = vlwritable - vstclose = vstclose - vstcrdnumptr = vstcrdnumptr - vstcurfirst = vstcurfirst - vstcurjump = vstcurjump - vstcurkey = vstcurkey - vstcurkeycache = vstcurkeycache - vstcurlast = vstcurlast - vstcurnext = vstcurnext - vstcurout = vstcurout - vstcurprev = vstcurprev - vstcurput = vstcurput - vstcurval = vstcurval - vstcurvalcache = vstcurvalcache - vstexportdb = vstexportdb - vstfatalerror = vstfatalerror - vstfsiz = vstfsiz - vstget = vstget - vstgetcache = vstgetcache - vstgetcat = vstgetcat - vstgetflags = vstgetflags - vstgetlist = vstgetlist - vstimportdb = vstimportdb - vstinode = vstinode - vstlnum = vstlnum - vstmemflush = vstmemflush - vstmemsync = vstmemsync - vstmtime = vstmtime - vstmulcurclose = vstmulcurclose - vstmulcurfirst = vstmulcurfirst - vstmulcurjump = vstmulcurjump - vstmulcurkey = vstmulcurkey - vstmulcurkeycache = vstmulcurkeycache - vstmulcurlast = vstmulcurlast - vstmulcurnext = vstmulcurnext - vstmulcuropen = vstmulcuropen - vstmulcurprev = vstmulcurprev - vstmulcurval = vstmulcurval - vstmulcurvalcache = vstmulcurvalcache - vstname = vstname - vstnnum = vstnnum - vstopen = vstopen - vstoptimize = vstoptimize - vstout = vstout - vstoutlist = vstoutlist - vstput = vstput - vstputlist = vstputlist - vstremove = vstremove - vstrepair = vstrepair - vstrnum = vstrnum - vstsetfbpsiz = vstsetfbpsiz - vstsetflags = vstsetflags - vstsettuning = vstsettuning - vstsync = vstsync - vsttranabort = vsttranabort - vsttranbegin = vsttranbegin - vsttrancommit = vsttrancommit - vstvnum = vstvnum - vstvsiz = vstvsiz - vstwritable = vstwritable +EXPORTS + VL_CMPDEC = VL_CMPDEC DATA + VL_CMPINT = VL_CMPINT DATA + VL_CMPLEX = VL_CMPLEX DATA + VL_CMPNUM = VL_CMPNUM DATA + VST_CMPDEC = VST_CMPDEC DATA + VST_CMPINT = VST_CMPINT DATA + VST_CMPLEX = VST_CMPLEX DATA + VST_CMPNUM = VST_CMPNUM DATA + cbfatalfunc = cbfatalfunc DATA + dpdbgfd = dpdbgfd DATA + dpisreentrant = dpisreentrant DATA + dpsysname = dpsysname DATA + dpversion = dpversion DATA + gdbm_version = gdbm_version DATA + odcachebnum = odcachebnum DATA + odcachesiz = odcachesiz DATA + odindexbnum = odindexbnum DATA + odindexdnum = odindexdnum DATA + odotcb = odotcb DATA + cbbasedecode = cbbasedecode + cbbaseencode = cbbaseencode + cbbzdecode = cbbzdecode + cbbzencode = cbbzencode + cbcalendar = cbcalendar + cbcsvcells = cbcsvcells + cbcsvescape = cbcsvescape + cbcsvrows = cbcsvrows + cbcsvunescape = cbcsvunescape + cbdatestrhttp = cbdatestrhttp + cbdatestrwww = cbdatestrwww + cbdatumcat = cbdatumcat + cbdatumclose = cbdatumclose + cbdatumdup = cbdatumdup + cbdatumopen = cbdatumopen + cbdatumopenbuf = cbdatumopenbuf + cbdatumprintf = cbdatumprintf + cbdatumptr = cbdatumptr + cbdatumsetbuf = cbdatumsetbuf + cbdatumsetsize = cbdatumsetsize + cbdatumsize = cbdatumsize + cbdatumtomalloc = cbdatumtomalloc + cbdayofweek = cbdayofweek + cbdeflate = cbdeflate + cbdirlist = cbdirlist + cbencname = cbencname + cbfilestat = cbfilestat + cbfree = cbfree + cbgetcrc = cbgetcrc + cbggcsweep = cbggcsweep + cbglobalgc = cbglobalgc + cbgzdecode = cbgzdecode + cbgzencode = cbgzencode + cbheapclose = cbheapclose + cbheapdup = cbheapdup + cbheapinsert = cbheapinsert + cbheapnum = cbheapnum + cbheapopen = cbheapopen + cbheaptomalloc = cbheaptomalloc + cbheapval = cbheapval + cbhsort = cbhsort + cbiconv = cbiconv + cbinflate = cbinflate + cbisort = cbisort + cbjetlag = cbjetlag + cblistbsearch = cblistbsearch + cblistclose = cblistclose + cblistdump = cblistdump + cblistdup = cblistdup + cblistinsert = cblistinsert + cblistload = cblistload + cblistlsearch = cblistlsearch + cblistnum = cblistnum + cblistopen = cblistopen + cblistover = cblistover + cblistpop = cblistpop + cblistpush = cblistpush + cblistpushbuf = cblistpushbuf + cblistremove = cblistremove + cblistshift = cblistshift + cblistsort = cblistsort + cblistunshift = cblistunshift + cblistval = cblistval + cblzodecode = cblzodecode + cblzoencode = cblzoencode + cbmalloc = cbmalloc + cbmapclose = cbmapclose + cbmapdump = cbmapdump + cbmapdup = cbmapdup + cbmapget = cbmapget + cbmapiterinit = cbmapiterinit + cbmapiternext = cbmapiternext + cbmapiterval = cbmapiterval + cbmapkeys = cbmapkeys + cbmapload = cbmapload + cbmaploadone = cbmaploadone + cbmapmove = cbmapmove + cbmapopen = cbmapopen + cbmapopenex = cbmapopenex + cbmapout = cbmapout + cbmapput = cbmapput + cbmapputcat = cbmapputcat + cbmaprnum = cbmaprnum + cbmapvals = cbmapvals + cbmemdup = cbmemdup + cbmimebreak = cbmimebreak + cbmimedecode = cbmimedecode + cbmimeencode = cbmimeencode + cbmimeparts = cbmimeparts + cbmyfatal = cbmyfatal + cbproctime = cbproctime + cbqsort = cbqsort + cbquotedecode = cbquotedecode + cbquoteencode = cbquoteencode + cbreadfile = cbreadfile + cbreadlines = cbreadlines + cbrealloc = cbrealloc + cbremove = cbremove + cbreplace = cbreplace + cbsplit = cbsplit + cbsprintf = cbsprintf + cbssort = cbssort + cbstdiobin = cbstdiobin + cbstrbwimatch = cbstrbwimatch + cbstrbwmatch = cbstrbwmatch + cbstrcountutf = cbstrcountutf + cbstrcututf = cbstrcututf + cbstrfwimatch = cbstrfwimatch + cbstrfwmatch = cbstrfwmatch + cbstricmp = cbstricmp + cbstrmktime = cbstrmktime + cbstrsqzspc = cbstrsqzspc + cbstrstrbm = cbstrstrbm + cbstrstrkmp = cbstrstrkmp + cbstrtolower = cbstrtolower + cbstrtoupper = cbstrtoupper + cbstrtrim = cbstrtrim + cburlbreak = cburlbreak + cburldecode = cburldecode + cburlencode = cburlencode + cburlresolve = cburlresolve + cbvmemavail = cbvmemavail + cbwritefile = cbwritefile + cbxmlattrs = cbxmlattrs + cbxmlbreak = cbxmlbreak + cbxmlescape = cbxmlescape + cbxmlunescape = cbxmlunescape + crbnum = crbnum + crbusenum = crbusenum + crclose = crclose + crexportdb = crexportdb + crfatalerror = crfatalerror + crfsiz = crfsiz + crfsizd = crfsizd + crget = crget + crgetflags = crgetflags + crgetlob = crgetlob + crgetlobfd = crgetlobfd + crgetwb = crgetwb + crimportdb = crimportdb + crinode = crinode + criterinit = criterinit + criternext = criternext + crmemflush = crmemflush + crmemsync = crmemsync + crmtime = crmtime + crname = crname + cropen = cropen + croptimize = croptimize + crout = crout + croutlob = croutlob + crput = crput + crputlob = crputlob + crremove = crremove + crrepair = crrepair + crrnum = crrnum + crrnumlob = crrnumlob + crsetalign = crsetalign + crsetfbpsiz = crsetfbpsiz + crsetflags = crsetflags + crsnaffle = crsnaffle + crsync = crsync + crvsiz = crvsiz + crvsizlob = crvsizlob + crwritable = crwritable + dbm_clearerr = dbm_clearerr + dbm_close = dbm_close + dbm_delete = dbm_delete + dbm_dirfno = dbm_dirfno + dbm_error = dbm_error + dbm_fetch = dbm_fetch + dbm_firstkey = dbm_firstkey + dbm_nextkey = dbm_nextkey + dbm_open = dbm_open + dbm_pagfno = dbm_pagfno + dbm_rdonly = dbm_rdonly + dbm_store = dbm_store + dpbnum = dpbnum + dpbusenum = dpbusenum + dpclose = dpclose + dpecodeptr = dpecodeptr + dpecodeset = dpecodeset + dperrmsg = dperrmsg + dpexportdb = dpexportdb + dpfatalerror = dpfatalerror + dpfdesc = dpfdesc + dpfsiz = dpfsiz + dpget = dpget + dpgetflags = dpgetflags + dpgetwb = dpgetwb + dpimportdb = dpimportdb + dpinnerhash = dpinnerhash + dpinode = dpinode + dpiterinit = dpiterinit + dpiternext = dpiternext + dpmemflush = dpmemflush + dpmemsync = dpmemsync + dpmtime = dpmtime + dpname = dpname + dpopen = dpopen + dpoptimize = dpoptimize + dpout = dpout + dpouterhash = dpouterhash + dpprimenum = dpprimenum + dpput = dpput + dpremove = dpremove + dprepair = dprepair + dprnum = dprnum + dpsetalign = dpsetalign + dpsetfbpsiz = dpsetfbpsiz + dpsetflags = dpsetflags + dpsnaffle = dpsnaffle + dpsync = dpsync + dpvsiz = dpvsiz + dpwritable = dpwritable + gdbm_close = gdbm_close + gdbm_delete = gdbm_delete + gdbm_errnoptr = gdbm_errnoptr + gdbm_exists = gdbm_exists + gdbm_fdesc = gdbm_fdesc + gdbm_fetch = gdbm_fetch + gdbm_firstkey = gdbm_firstkey + gdbm_nextkey = gdbm_nextkey + gdbm_open = gdbm_open + gdbm_open2 = gdbm_open2 + gdbm_reorganize = gdbm_reorganize + gdbm_setopt = gdbm_setopt + gdbm_store = gdbm_store + gdbm_strerror = gdbm_strerror + gdbm_sync = gdbm_sync + odanalyzetext = odanalyzetext + odbnum = odbnum + odbreaktext = odbreaktext + odbusenum = odbusenum + odcheck = odcheck + odclose = odclose + oddnum = oddnum + oddocaddattr = oddocaddattr + oddocaddword = oddocaddword + oddocawords = oddocawords + oddocclose = oddocclose + oddocgetattr = oddocgetattr + oddocid = oddocid + oddocnwords = oddocnwords + oddocopen = oddocopen + oddocscores = oddocscores + oddocuri = oddocuri + odfatalerror = odfatalerror + odfsiz = odfsiz + odget = odget + odgetbyid = odgetbyid + odgetidbyuri = odgetidbyuri + odidbdocs = odidbdocs + odidbindex = odidbindex + odidbrdocs = odidbrdocs + odinode = odinode + oditerinit = oditerinit + oditernext = oditernext + odlogarithm = odlogarithm + odmerge = odmerge + odmtime = odmtime + odname = odname + odnormalizeword = odnormalizeword + odopen = odopen + odoptimize = odoptimize + odout = odout + odoutbyid = odoutbyid + odpairsand = odpairsand + odpairsnotand = odpairsnotand + odpairsor = odpairsor + odpairssort = odpairssort + odput = odput + odquery = odquery + odremove = odremove + odsearch = odsearch + odsearchdnum = odsearchdnum + odsetcharclass = odsetcharclass + odsetotcb = odsetotcb + odsettuning = odsettuning + odsquareroot = odsquareroot + odsync = odsync + odvecabsolute = odvecabsolute + odvecinnerproduct = odvecinnerproduct + odvectorcosine = odvectorcosine + odwnum = odwnum + odwritable = odwritable + vlclose = vlclose + vlcrdnumptr = vlcrdnumptr + vlcurfirst = vlcurfirst + vlcurjump = vlcurjump + vlcurkey = vlcurkey + vlcurkeycache = vlcurkeycache + vlcurlast = vlcurlast + vlcurnext = vlcurnext + vlcurout = vlcurout + vlcurprev = vlcurprev + vlcurput = vlcurput + vlcurval = vlcurval + vlcurvalcache = vlcurvalcache + vlexportdb = vlexportdb + vlfatalerror = vlfatalerror + vlfsiz = vlfsiz + vlget = vlget + vlgetcache = vlgetcache + vlgetcat = vlgetcat + vlgetflags = vlgetflags + vlgetlist = vlgetlist + vlimportdb = vlimportdb + vlinode = vlinode + vllnum = vllnum + vlmemflush = vlmemflush + vlmemsync = vlmemsync + vlmtime = vlmtime + vlmulcurclose = vlmulcurclose + vlmulcurfirst = vlmulcurfirst + vlmulcurjump = vlmulcurjump + vlmulcurkey = vlmulcurkey + vlmulcurkeycache = vlmulcurkeycache + vlmulcurlast = vlmulcurlast + vlmulcurnext = vlmulcurnext + vlmulcuropen = vlmulcuropen + vlmulcurprev = vlmulcurprev + vlmulcurval = vlmulcurval + vlmulcurvalcache = vlmulcurvalcache + vlname = vlname + vlnnum = vlnnum + vlopen = vlopen + vloptimize = vloptimize + vlout = vlout + vloutlist = vloutlist + vlput = vlput + vlputlist = vlputlist + vlremove = vlremove + vlrepair = vlrepair + vlrnum = vlrnum + vlsetfbpsiz = vlsetfbpsiz + vlsetflags = vlsetflags + vlsettuning = vlsettuning + vlsync = vlsync + vltranabort = vltranabort + vltranbegin = vltranbegin + vltrancommit = vltrancommit + vlvnum = vlvnum + vlvsiz = vlvsiz + vlwritable = vlwritable + vstclose = vstclose + vstcrdnumptr = vstcrdnumptr + vstcurfirst = vstcurfirst + vstcurjump = vstcurjump + vstcurkey = vstcurkey + vstcurkeycache = vstcurkeycache + vstcurlast = vstcurlast + vstcurnext = vstcurnext + vstcurout = vstcurout + vstcurprev = vstcurprev + vstcurput = vstcurput + vstcurval = vstcurval + vstcurvalcache = vstcurvalcache + vstexportdb = vstexportdb + vstfatalerror = vstfatalerror + vstfsiz = vstfsiz + vstget = vstget + vstgetcache = vstgetcache + vstgetcat = vstgetcat + vstgetflags = vstgetflags + vstgetlist = vstgetlist + vstimportdb = vstimportdb + vstinode = vstinode + vstlnum = vstlnum + vstmemflush = vstmemflush + vstmemsync = vstmemsync + vstmtime = vstmtime + vstmulcurclose = vstmulcurclose + vstmulcurfirst = vstmulcurfirst + vstmulcurjump = vstmulcurjump + vstmulcurkey = vstmulcurkey + vstmulcurkeycache = vstmulcurkeycache + vstmulcurlast = vstmulcurlast + vstmulcurnext = vstmulcurnext + vstmulcuropen = vstmulcuropen + vstmulcurprev = vstmulcurprev + vstmulcurval = vstmulcurval + vstmulcurvalcache = vstmulcurvalcache + vstname = vstname + vstnnum = vstnnum + vstopen = vstopen + vstoptimize = vstoptimize + vstout = vstout + vstoutlist = vstoutlist + vstput = vstput + vstputlist = vstputlist + vstremove = vstremove + vstrepair = vstrepair + vstrnum = vstrnum + vstsetfbpsiz = vstsetfbpsiz + vstsetflags = vstsetflags + vstsettuning = vstsettuning + vstsync = vstsync + vsttranabort = vsttranabort + vsttranbegin = vsttranbegin + vsttrancommit = vsttrancommit + vstvnum = vstvnum + vstvsiz = vstvsiz + vstwritable = vstwritable