diff options
Diffstat (limited to 'mflib/safedb.mf4')
-rw-r--r-- | mflib/safedb.mf4 | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/mflib/safedb.mf4 b/mflib/safedb.mf4 index aaf10d51..d51e00ca 100644 --- a/mflib/safedb.mf4 +++ b/mflib/safedb.mf4 @@ -1,5 +1,5 @@ /* Safe DB I/O -*- mfl -*- - Copyright (C) 2007, 2008 Sergey Poznyakoff + Copyright (C) 2007, 2008, 2009 Sergey Poznyakoff This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,12 +16,17 @@ #include_once <status.mfh> +number safedb_verbose + func safedbget(string name, string key ; string defval, number null) returns string do catch e_dbfailure do - return "" + if %safedb_verbose + echo "safedbget: exception $1: $2" + fi + return %defval done if not defined(null) set null 0 @@ -36,6 +41,9 @@ func safedbput(string name, string key, string value ; number null) do catch e_dbfailure do + if %safedb_verbose + echo "safedbput: exception $1: $2" + fi return done if not defined(null) @@ -44,3 +52,39 @@ do dbput(%name, %key, %value, %null) done + +func safedbmap(string name, string key; number defval, number null) + returns number +do + catch e_dbfailure + do + if %safedb_verbose + echo "safedbmap: exception $1: $2" + fi + return %defval + done + if not defined(defval) + set defval 0 + fi + if not defined(null) + set null 0 + fi + return dbmap(%name, %key, %null) +done + +func safedbdel(string name, string key; number null) +do + catch e_dbfailure + do + if %safedb_verbose + echo "safedbdel: exception $1: $2" + fi + return + done + if not defined(null) + set null 0 + fi + return dbdel(%name, %key, %null) +done + + |