| 
      
      
      From: <fir...@us...> - 2013-03-13 01:57:30
       | 
| Revision: 57775
          http://sourceforge.net/p/firebird/code/57775
Author:   firebirds
Date:     2013-03-13 01:57:27 +0000 (Wed, 13 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-12 12:37:17 UTC (rev 57774)
+++ firebird/trunk/ChangeLog	2013-03-13 01:57:27 UTC (rev 57775)
@@ -1,3 +1,27 @@
+ 2013-03-12 12:37  alexpeshkoff 
+   M examples/interfaces/select.cpp
+fixed sample
+
+ 2013-03-12 11:43  alexpeshkoff 
+   M src/burp/burp.cpp
+New fix for CORE-3995: Slight problem with GBAK parameter checking
+
+ 2013-03-12 10:26  dimitr 
+   M src/dsql/DdlNodes.epp
+   M src/dsql/DdlNodes.h
+Correction.
+
+ 2013-03-12 09:52  dimitr 
+   M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+For the consistency sake, let's explicitly release the result set.
+
+ 2013-03-12 09:39  dimitr 
+   M src/common/classes/condition.h
+   M src/common/classes/locks.h
+   M src/common/classes/rwlock.h
+   M src/common/classes/semaphore.h
+Disallowed default copying and assignment in sync wrappers. Fixed a theoretically possible handle leak in the condition class. Thanks to Dmitry Kovalenko.
+
  2013-03-11 15:43  alexpeshkoff 
    M src/dsql/ExprNodes.cpp
    M src/dsql/StmtNodes.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-12 12:37:17 UTC (rev 57774)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-13 01:57:27 UTC (rev 57775)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30263
+  FORMAL BUILD NUMBER:30268
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30263"
-#define FILE_VER_STRING "WI-T3.0.0.30263"
-#define LICENSE_VER_STRING "WI-T3.0.0.30263"
-#define FILE_VER_NUMBER 3, 0, 0, 30263
+#define PRODUCT_VER_STRING "3.0.0.30268"
+#define FILE_VER_STRING "WI-T3.0.0.30268"
+#define LICENSE_VER_STRING "WI-T3.0.0.30268"
+#define FILE_VER_NUMBER 3, 0, 0, 30268
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30263"
+#define FB_BUILD_NO "30268"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-12 12:37:17 UTC (rev 57774)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-13 01:57:27 UTC (rev 57775)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30263
+BuildNum=30268
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-14 02:03:54
       | 
| Revision: 57778
          http://sourceforge.net/p/firebird/code/57778
Author:   firebirds
Date:     2013-03-14 02:03:51 +0000 (Thu, 14 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-13 03:15:37 UTC (rev 57777)
+++ firebird/trunk/ChangeLog	2013-03-14 02:03:51 UTC (rev 57778)
@@ -1,3 +1,9 @@
+ 2013-03-13 02:15  asfernandes 
+   M src/dsql/make.cpp
+   M src/dsql/make_proto.h
+   M src/dsql/parse.y
+Fixed CORE-4061 - isql does not insert boolean values correctly, always shown as False.
+
  2013-03-12 12:37  alexpeshkoff 
    M examples/interfaces/select.cpp
 fixed sample
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-13 03:15:37 UTC (rev 57777)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-14 02:03:51 UTC (rev 57778)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30268
+  FORMAL BUILD NUMBER:30269
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30268"
-#define FILE_VER_STRING "WI-T3.0.0.30268"
-#define LICENSE_VER_STRING "WI-T3.0.0.30268"
-#define FILE_VER_NUMBER 3, 0, 0, 30268
+#define PRODUCT_VER_STRING "3.0.0.30269"
+#define FILE_VER_STRING "WI-T3.0.0.30269"
+#define LICENSE_VER_STRING "WI-T3.0.0.30269"
+#define FILE_VER_NUMBER 3, 0, 0, 30269
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30268"
+#define FB_BUILD_NO "30269"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-13 03:15:37 UTC (rev 57777)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-14 02:03:51 UTC (rev 57778)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30268
+BuildNum=30269
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-16 01:15:45
       | 
| Revision: 57781
          http://sourceforge.net/p/firebird/code/57781
Author:   firebirds
Date:     2013-03-16 01:15:41 +0000 (Sat, 16 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-15 16:37:32 UTC (rev 57780)
+++ firebird/trunk/ChangeLog	2013-03-16 01:15:41 UTC (rev 57781)
@@ -1,3 +1,19 @@
+ 2013-03-15 16:37  alexpeshkoff 
+   M src/common/classes/ImplementHelper.cpp
+   M src/common/classes/ImplementHelper.h
+   M src/gpre/boot/gpre_meta_boot.cpp
+   M src/include/firebird/Interface.h
+   M src/jrd/ExtEngineManager.cpp
+   M src/jrd/jrd.cpp
+   M src/jrd/lck.cpp
+   M src/yvalve/MasterImplementation.cpp
+   M src/yvalve/MasterImplementation.h
+   M src/yvalve/YObjects.h
+   M src/yvalve/why.cpp
+1. Fixed broken by me a few time ago server shutdown.
+2. Implemented prototype of TLS-based debugging helper holding information about 'What does firebird do now?"
+   Currently it's more or less ready for use with JAttachment::release().
+
  2013-03-13 02:15  asfernandes 
    M src/dsql/make.cpp
    M src/dsql/make_proto.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-15 16:37:32 UTC (rev 57780)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-16 01:15:41 UTC (rev 57781)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30269
+  FORMAL BUILD NUMBER:30270
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30269"
-#define FILE_VER_STRING "WI-T3.0.0.30269"
-#define LICENSE_VER_STRING "WI-T3.0.0.30269"
-#define FILE_VER_NUMBER 3, 0, 0, 30269
+#define PRODUCT_VER_STRING "3.0.0.30270"
+#define FILE_VER_STRING "WI-T3.0.0.30270"
+#define LICENSE_VER_STRING "WI-T3.0.0.30270"
+#define FILE_VER_NUMBER 3, 0, 0, 30270
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30269"
+#define FB_BUILD_NO "30270"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-15 16:37:32 UTC (rev 57780)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-16 01:15:41 UTC (rev 57781)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30269
+BuildNum=30270
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-18 02:22:17
       | 
| Revision: 57800
          http://sourceforge.net/p/firebird/code/57800
Author:   firebirds
Date:     2013-03-18 02:22:15 +0000 (Mon, 18 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-17 20:36:56 UTC (rev 57799)
+++ firebird/trunk/ChangeLog	2013-03-18 02:22:15 UTC (rev 57800)
@@ -1,3 +1,52 @@
+ 2013-03-17 20:36  asfernandes 
+   M src/common/classes/ImplementHelper.cpp
+   M src/dsql/DdlNodes.epp
+   M src/jrd/shut.cpp
+Misc.
+
+ 2013-03-17 17:35  dimitr 
+   M src/dsql/StmtNodes.cpp
+   M src/jrd/DatabaseSnapshot.cpp
+   M src/jrd/DatabaseSnapshot.h
+   M src/jrd/ExtEngineManager.cpp
+   M src/jrd/UserManagement.cpp
+   M src/jrd/blb.cpp
+   M src/jrd/evl.cpp
+   M src/jrd/exe.cpp
+   M src/jrd/ext.cpp
+   M src/jrd/recsrc/AggregatedStream.cpp
+   M src/jrd/recsrc/BufferedStream.cpp
+   M src/jrd/recsrc/ProcedureScan.cpp
+   M src/jrd/recsrc/SortedStream.cpp
+   M src/jrd/req.h
+   M src/jrd/vio.cpp
+Small refactoring.
+
+ 2013-03-17 17:09  dimitr 
+   M builds/win32/msvc10/engine.vcxproj
+   M builds/win32/msvc10/engine.vcxproj.filters
+   M builds/win32/msvc10/gsec.vcxproj
+   M builds/win32/msvc10/gsec.vcxproj.filters
+   M builds/win32/msvc10/intl.vcxproj
+   M builds/win32/msvc10/intl.vcxproj.filters
+   M builds/win32/msvc10/udr_engine.vcxproj
+   M builds/win32/msvc10/udr_engine.vcxproj.filters
+Cleanup. MSVC10 does not like references to non-existing files. As for INTL, I see no sense in seeing all the charsets/collations in the IDE.
+
+ 2013-03-17 14:39  dimitr 
+   M src/jrd/dpm.epp
+Fixed CORE-4036: Bugcheck or database corruption when attempting to store long incompressible data into a table.
+
+ 2013-03-17 12:20  dimitr 
+   M src/jrd/shut.cpp
+A bit more precise timeout accounting.
+
+ 2013-03-17 12:14  dimitr 
+   M src/jrd/cch.cpp
+   M src/jrd/shut.cpp
+   M src/jrd/shut_proto.h
+Completed refactoring of the database shutdown. Fixed a few remaining bugs there. Fixed timeout accounting in SS as well as CORE-3817: Forced database shutdown does not work if non-zero delay was specified.
+
  2013-03-15 16:37  alexpeshkoff 
    M src/common/classes/ImplementHelper.cpp
    M src/common/classes/ImplementHelper.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-17 20:36:56 UTC (rev 57799)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-18 02:22:15 UTC (rev 57800)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30270
+  FORMAL BUILD NUMBER:30276
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30270"
-#define FILE_VER_STRING "WI-T3.0.0.30270"
-#define LICENSE_VER_STRING "WI-T3.0.0.30270"
-#define FILE_VER_NUMBER 3, 0, 0, 30270
+#define PRODUCT_VER_STRING "3.0.0.30276"
+#define FILE_VER_STRING "WI-T3.0.0.30276"
+#define LICENSE_VER_STRING "WI-T3.0.0.30276"
+#define FILE_VER_NUMBER 3, 0, 0, 30276
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30270"
+#define FB_BUILD_NO "30276"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-17 20:36:56 UTC (rev 57799)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-18 02:22:15 UTC (rev 57800)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30270
+BuildNum=30276
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-19 01:41:04
       | 
| Revision: 57805
          http://sourceforge.net/p/firebird/code/57805
Author:   firebirds
Date:     2013-03-19 01:41:01 +0000 (Tue, 19 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-18 13:10:36 UTC (rev 57804)
+++ firebird/trunk/ChangeLog	2013-03-19 01:41:01 UTC (rev 57805)
@@ -1,3 +1,13 @@
+ 2013-03-18 13:10  dimitr 
+   M src/common/sha.cpp
+   M src/common/sha.h
+Warnings.
+
+ 2013-03-18 10:50  alexpeshkoff 
+   M src/common/classes/auto.h
+   M src/jrd/exe.cpp
+Ugly fix for CORE-4066, but looks like here g++ is too strong in type correctness.
+
  2013-03-17 20:36  asfernandes 
    M src/common/classes/ImplementHelper.cpp
    M src/dsql/DdlNodes.epp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-18 13:10:36 UTC (rev 57804)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-19 01:41:01 UTC (rev 57805)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30276
+  FORMAL BUILD NUMBER:30278
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30276"
-#define FILE_VER_STRING "WI-T3.0.0.30276"
-#define LICENSE_VER_STRING "WI-T3.0.0.30276"
-#define FILE_VER_NUMBER 3, 0, 0, 30276
+#define PRODUCT_VER_STRING "3.0.0.30278"
+#define FILE_VER_STRING "WI-T3.0.0.30278"
+#define LICENSE_VER_STRING "WI-T3.0.0.30278"
+#define FILE_VER_NUMBER 3, 0, 0, 30278
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30276"
+#define FB_BUILD_NO "30278"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-18 13:10:36 UTC (rev 57804)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-19 01:41:01 UTC (rev 57805)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30276
+BuildNum=30278
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-20 01:58:13
       | 
| Revision: 57808
          http://sourceforge.net/p/firebird/code/57808
Author:   firebirds
Date:     2013-03-20 01:58:09 +0000 (Wed, 20 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-19 11:29:15 UTC (rev 57807)
+++ firebird/trunk/ChangeLog	2013-03-20 01:58:09 UTC (rev 57808)
@@ -1,3 +1,11 @@
+ 2013-03-19 11:29  hvlad 
+   M src/gpre/boot/gpre_meta_boot.cpp
+Fixed boot build
+
+ 2013-03-19 07:24  alexpeshkoff 
+   M src/common/config/config.cpp
+Improvement from Dmitry Kovalenko
+
  2013-03-18 13:10  dimitr 
    M src/common/sha.cpp
    M src/common/sha.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-19 11:29:15 UTC (rev 57807)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-20 01:58:09 UTC (rev 57808)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30278
+  FORMAL BUILD NUMBER:30280
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30278"
-#define FILE_VER_STRING "WI-T3.0.0.30278"
-#define LICENSE_VER_STRING "WI-T3.0.0.30278"
-#define FILE_VER_NUMBER 3, 0, 0, 30278
+#define PRODUCT_VER_STRING "3.0.0.30280"
+#define FILE_VER_STRING "WI-T3.0.0.30280"
+#define LICENSE_VER_STRING "WI-T3.0.0.30280"
+#define FILE_VER_NUMBER 3, 0, 0, 30280
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30278"
+#define FB_BUILD_NO "30280"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-19 11:29:15 UTC (rev 57807)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-20 01:58:09 UTC (rev 57808)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30278
+BuildNum=30280
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-21 01:00:40
       | 
| Revision: 57810
          http://sourceforge.net/p/firebird/code/57810
Author:   firebirds
Date:     2013-03-21 01:00:37 +0000 (Thu, 21 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-20 13:13:33 UTC (rev 57809)
+++ firebird/trunk/ChangeLog	2013-03-21 01:00:37 UTC (rev 57810)
@@ -1,3 +1,7 @@
+ 2013-03-20 13:13  hvlad 
+   M src/remote/server/os/win32/srvr_w32.cpp
+Fixed AV in remote server code reported by Dmitry Kovalenko in fb-devel
+
  2013-03-19 11:29  hvlad 
    M src/gpre/boot/gpre_meta_boot.cpp
 Fixed boot build
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-20 13:13:33 UTC (rev 57809)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-21 01:00:37 UTC (rev 57810)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30280
+  FORMAL BUILD NUMBER:30281
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30280"
-#define FILE_VER_STRING "WI-T3.0.0.30280"
-#define LICENSE_VER_STRING "WI-T3.0.0.30280"
-#define FILE_VER_NUMBER 3, 0, 0, 30280
+#define PRODUCT_VER_STRING "3.0.0.30281"
+#define FILE_VER_STRING "WI-T3.0.0.30281"
+#define LICENSE_VER_STRING "WI-T3.0.0.30281"
+#define FILE_VER_NUMBER 3, 0, 0, 30281
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30280"
+#define FB_BUILD_NO "30281"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-20 13:13:33 UTC (rev 57809)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-21 01:00:37 UTC (rev 57810)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30280
+BuildNum=30281
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-22 01:11:34
       | 
| Revision: 57813
          http://sourceforge.net/p/firebird/code/57813
Author:   firebirds
Date:     2013-03-22 01:11:30 +0000 (Fri, 22 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-21 14:36:35 UTC (rev 57812)
+++ firebird/trunk/ChangeLog	2013-03-22 01:11:30 UTC (rev 57813)
@@ -1,3 +1,7 @@
+ 2013-03-21 08:23  hvlad 
+   M src/jrd/dpm.epp
+Optimization: delay clearing of page_full flag until page have at least 25% of free space. It saves few costly mark_full() calls when space is actively allocated and reclaimed in highly concurrent environment and reduces PP contention.
+
  2013-03-20 13:13  hvlad 
    M src/remote/server/os/win32/srvr_w32.cpp
 Fixed AV in remote server code reported by Dmitry Kovalenko in fb-devel
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-21 14:36:35 UTC (rev 57812)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-22 01:11:30 UTC (rev 57813)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30281
+  FORMAL BUILD NUMBER:30282
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30281"
-#define FILE_VER_STRING "WI-T3.0.0.30281"
-#define LICENSE_VER_STRING "WI-T3.0.0.30281"
-#define FILE_VER_NUMBER 3, 0, 0, 30281
+#define PRODUCT_VER_STRING "3.0.0.30282"
+#define FILE_VER_STRING "WI-T3.0.0.30282"
+#define LICENSE_VER_STRING "WI-T3.0.0.30282"
+#define FILE_VER_NUMBER 3, 0, 0, 30282
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30281"
+#define FB_BUILD_NO "30282"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-21 14:36:35 UTC (rev 57812)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-22 01:11:30 UTC (rev 57813)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30281
+BuildNum=30282
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-23 01:06:50
       | 
| Revision: 57816
          http://sourceforge.net/p/firebird/code/57816
Author:   firebirds
Date:     2013-03-23 01:06:45 +0000 (Sat, 23 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-22 14:29:51 UTC (rev 57815)
+++ firebird/trunk/ChangeLog	2013-03-23 01:06:45 UTC (rev 57816)
@@ -1,3 +1,12 @@
+ 2013-03-22 14:29  alexpeshkoff 
+   M src/remote/client/interface.cpp
+   M src/yvalve/YObjects.h
+Fixed CORE-3269: When server gets unavailbale, client does not perform detach correctly
+
+ 2013-03-22 14:03  alexpeshkoff 
+   M src/common/config/config.cpp
+Rolled back my change - it breaks setting FIREBIRD in environment without "/" in the end
+
  2013-03-21 08:23  hvlad 
    M src/jrd/dpm.epp
 Optimization: delay clearing of page_full flag until page have at least 25% of free space. It saves few costly mark_full() calls when space is actively allocated and reclaimed in highly concurrent environment and reduces PP contention.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-22 14:29:51 UTC (rev 57815)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-23 01:06:45 UTC (rev 57816)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30282
+  FORMAL BUILD NUMBER:30284
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30282"
-#define FILE_VER_STRING "WI-T3.0.0.30282"
-#define LICENSE_VER_STRING "WI-T3.0.0.30282"
-#define FILE_VER_NUMBER 3, 0, 0, 30282
+#define PRODUCT_VER_STRING "3.0.0.30284"
+#define FILE_VER_STRING "WI-T3.0.0.30284"
+#define LICENSE_VER_STRING "WI-T3.0.0.30284"
+#define FILE_VER_NUMBER 3, 0, 0, 30284
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30282"
+#define FB_BUILD_NO "30284"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-22 14:29:51 UTC (rev 57815)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-23 01:06:45 UTC (rev 57816)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30282
+BuildNum=30284
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <asf...@us...> - 2013-03-23 21:12:42
       | 
| Revision: 57821
          http://sourceforge.net/p/firebird/code/57821
Author:   asfernandes
Date:     2013-03-23 21:12:27 +0000 (Sat, 23 Mar 2013)
Log Message:
-----------
Work in progress fixing external triggers.
Modified Paths:
--------------
    firebird/trunk/examples/udr/UdrCppExample.cpp
    firebird/trunk/src/include/firebird/ExternalEngine.h
    firebird/trunk/src/include/firebird/UdrCppEngine.h
    firebird/trunk/src/include/firebird/UdrEngine.h
    firebird/trunk/src/jrd/ExtEngineManager.cpp
    firebird/trunk/src/jrd/ExtEngineManager.h
    firebird/trunk/src/jrd/jrd.cpp
    firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp
Modified: firebird/trunk/examples/udr/UdrCppExample.cpp
===================================================================
--- firebird/trunk/examples/udr/UdrCppExample.cpp	2013-03-23 20:41:17 UTC (rev 57820)
+++ firebird/trunk/examples/udr/UdrCppExample.cpp	2013-03-23 21:12:27 UTC (rev 57821)
@@ -410,7 +410,6 @@
 FB_UDR_END_PROCEDURE
 
 
-#if 0	//// FIXME:
 /***
 Sample usage:
 
@@ -460,52 +459,20 @@
 		if (!initialized)
 			return;
 
-		for (int i = 0; i < inSqlDa->sqln; ++i)
-		{
-			XSQLVAR* var = &inSqlDa->sqlvar[i];
-			delete [] var->sqldata;
-			delete var->sqlind;
-		}
+		StatusImpl status(master);
 
-		delete [] reinterpret_cast<char*>(inSqlDa);
-
-		ISC_STATUS_ARRAY statusVector = {0};
-		isc_dsql_free_statement(statusVector, &stmtHandle, DSQL_drop);
+		triggerMetadata->release();
+		stmt->free(&status);
 	}
 
 	FB_UDR_EXECUTE_DYNAMIC_TRIGGER
 	{
-		///AutoDispose<IStatus> status(master->getStatus());
-
-		const IParametersMetadata* fields = metadata->getTriggerFields(status);
+		ITransaction* transaction = context->getTransaction(status);
 		StatusException::check(status->get());
 
-		unsigned fieldsCount = fields->getCount(status);
+		// This will not work if the table has computed fields.
+		stmt->execute(status, transaction, triggerMetadata, newFields, NULL, NULL);
 		StatusException::check(status->get());
-
-		MessageImpl message(fieldsCount, newFields);
-
-		ISC_STATUS_ARRAY statusVector = {0};
-		isc_db_handle dbHandle = getIscDbHandle(context);
-		isc_tr_handle trHandle = getIscTrHandle(context);
-
-		for (unsigned i = 1; i <= fieldsCount; ++i)
-		{
-			ParamDesc<void*> field(message, fields);
-
-			XSQLVAR* var = &inSqlDa->sqlvar[i - 1];
-
-			if (message.isNull(field))
-				*var->sqlind = -1;
-			else
-			{
-				*var->sqlind = 0;
-				memcpy(var->sqldata, message[field], var->sqllen);
-			}
-		}
-
-		StatusException::check(isc_dsql_execute(statusVector, &trHandle, &stmtHandle, SQL_DIALECT_CURRENT,
-			inSqlDa), statusVector);
 	}
 
 	FB_UDR_INITIALIZE
@@ -514,8 +481,9 @@
 		isc_db_handle dbHandle = getIscDbHandle(context);
 		isc_tr_handle trHandle = getIscTrHandle(context);
 
-		stmtHandle = 0;
-		StatusException::check(isc_dsql_allocate_statement(statusVector, &dbHandle, &stmtHandle), statusVector);
+		isc_stmt_handle stmtHandle = 0;
+		StatusException::check(isc_dsql_allocate_statement(statusVector, &dbHandle, &stmtHandle),
+			statusVector);
 		StatusException::check(isc_dsql_prepare(statusVector, &trHandle, &stmtHandle, 0,
 			"select data_source from replicate_config where name = ?",
 			SQL_DIALECT_CURRENT, NULL), statusVector);
@@ -538,11 +506,11 @@
 		else
 			info = "";
 
-		inSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(1))]);
+		XSQLDA* inSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(1))]);
 		inSqlDa->version = SQLDA_VERSION1;
 		inSqlDa->sqln = 1;
-		StatusException::check(isc_dsql_describe_bind(statusVector, &stmtHandle, SQL_DIALECT_CURRENT, inSqlDa),
-			statusVector);
+		StatusException::check(isc_dsql_describe_bind(statusVector, &stmtHandle,
+			SQL_DIALECT_CURRENT, inSqlDa), statusVector);
 		inSqlDa->sqlvar[0].sqldata = new char[sizeof(short) + inSqlDa->sqlvar[0].sqllen];
 		strncpy(inSqlDa->sqlvar[0].sqldata + sizeof(short), info, inSqlDa->sqlvar[0].sqllen);
 		*reinterpret_cast<short*>(inSqlDa->sqlvar[0].sqldata) = strlen(info);
@@ -550,23 +518,23 @@
 		XSQLDA* outSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(1))]);
 		outSqlDa->version = SQLDA_VERSION1;
 		outSqlDa->sqln = 1;
-		StatusException::check(isc_dsql_describe(statusVector, &stmtHandle, SQL_DIALECT_CURRENT, outSqlDa),
-			statusVector);
+		StatusException::check(isc_dsql_describe(statusVector, &stmtHandle,
+			SQL_DIALECT_CURRENT, outSqlDa), statusVector);
 		outSqlDa->sqlvar[0].sqldata = new char[sizeof(short) + outSqlDa->sqlvar[0].sqllen + 1];
 		outSqlDa->sqlvar[0].sqldata[sizeof(short) + outSqlDa->sqlvar[0].sqllen] = '\0';
 
-		StatusException::check(isc_dsql_execute2(statusVector, &trHandle, &stmtHandle, SQL_DIALECT_CURRENT,
-			inSqlDa, outSqlDa), statusVector);
-		StatusException::check(isc_dsql_free_statement(statusVector, &stmtHandle, DSQL_unprepare), statusVector);
+		StatusException::check(isc_dsql_execute2(statusVector, &trHandle, &stmtHandle,
+			SQL_DIALECT_CURRENT, inSqlDa, outSqlDa), statusVector);
+		StatusException::check(isc_dsql_free_statement(statusVector, &stmtHandle, DSQL_unprepare),
+			statusVector);
 
 		delete [] inSqlDa->sqlvar[0].sqldata;
 		delete [] reinterpret_cast<char*>(inSqlDa);
-		inSqlDa = NULL;
 
-		const IParametersMetadata* fields = metadata->getTriggerFields(status);
+		triggerMetadata = metadata->getTriggerMetadata(status);
 		StatusException::check(status->get());
 
-		unsigned count = fields->getCount(status);
+		unsigned count = triggerMetadata->getCount(status);
 		StatusException::check(status->get());
 
 		char buffer[65536];
@@ -577,7 +545,7 @@
 			if (i > 0)
 				strcat(buffer, ",\n");
 
-			const char* name = fields->getField(status, i);
+			const char* name = triggerMetadata->getField(status, i);
 			StatusException::check(status->get());
 
 			strcat(buffer, "    p");
@@ -598,7 +566,7 @@
 			if (i > 0)
 				strcat(buffer, ", ");
 
-			const char* name = fields->getField(status, i);
+			const char* name = triggerMetadata->getField(status, i);
 			StatusException::check(status->get());
 
 			strcat(buffer, "\"");
@@ -629,69 +597,14 @@
 		strcat(buffer, outSqlDa->sqlvar[0].sqldata + sizeof(short));
 		strcat(buffer, "';\nend");
 
-		StatusException::check(isc_dsql_prepare(statusVector, &trHandle, &stmtHandle, 0, buffer,
-			SQL_DIALECT_CURRENT, NULL), statusVector);
+		IAttachment* attachment = context->getAttachment(status);
+		StatusException::check(status->get());
 
-		inSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(count))]);
-		inSqlDa->version = SQLDA_VERSION1;
-		inSqlDa->sqln = count;
-		StatusException::check(isc_dsql_describe_bind(statusVector, &stmtHandle, SQL_DIALECT_CURRENT, inSqlDa),
-			statusVector);
+		ITransaction* transaction = context->getTransaction(status);
+		StatusException::check(status->get());
 
-		for (unsigned i = 0; i < count; ++i)
-		{
-			XSQLVAR* var = &inSqlDa->sqlvar[i];
+		stmt = attachment->prepare(status, transaction, 0, buffer, 3, 0);
 
-			switch (var->sqltype & ~1)
-			{
-				case SQL_TEXT:
-					var->sqldata = new char[var->sqllen];
-					break;
-
-				case SQL_VARYING:
-					var->sqldata = new char[var->sqllen];
-					var->sqllen += sizeof(short);
-					break;
-
-				case SQL_SHORT:
-					var->sqldata = new char[sizeof(short)];
-					break;
-
-				case SQL_LONG:
-					var->sqldata = new char[sizeof(int32)];
-					break;
-
-				case SQL_INT64:
-					var->sqldata = new char[sizeof(int64)];
-					break;
-
-				case SQL_FLOAT:
-					var->sqltype = SQL_DOUBLE;
-					var->sqllen = sizeof(double);
-					// fall into
-
-				case SQL_DOUBLE:
-					var->sqldata = new char[sizeof(double)];
-					break;
-
-				case SQL_TYPE_DATE:
-					var->sqldata = new char[sizeof(ISC_DATE)];
-					break;
-
-				//// TODO: SQL_TIMESTAMP, SQL_TYPE_TIME
-
-				case SQL_BLOB:
-					var->sqldata = new char[sizeof(ISC_QUAD)];
-					break;
-
-				default:
-					assert(false);
-			}
-
-			var->sqltype |= 1;
-			var->sqlind = new short(-1);
-		}
-
 		delete [] outSqlDa->sqlvar[0].sqldata;
 		delete [] reinterpret_cast<char*>(outSqlDa);
 
@@ -699,11 +612,12 @@
 	}
 
 	bool initialized;
-	XSQLDA* inSqlDa;
-	isc_stmt_handle stmtHandle;
+	IMessageMetadata* triggerMetadata;
+	IStatement* stmt;
 FB_UDR_END_TRIGGER
 
 
+#if 0	//// FIXME:
 FB_UDR_BEGIN_TRIGGER(replicate_persons)
 	FB_UDR_TRIGGER(replicate_persons)()
 		: initialized(false)
Modified: firebird/trunk/src/include/firebird/ExternalEngine.h
===================================================================
--- firebird/trunk/src/include/firebird/ExternalEngine.h	2013-03-23 20:41:17 UTC (rev 57820)
+++ firebird/trunk/src/include/firebird/ExternalEngine.h	2013-03-23 21:12:27 UTC (rev 57821)
@@ -38,15 +38,6 @@
 class ExternalEngine;
 
 
-class ITriggerMessage : public IVersioned
-{
-public:
-	virtual void FB_CARG set(const unsigned char* blr, unsigned blrLength, unsigned bufferLength,
-		const char** names, unsigned count) = 0;
-};
-#define FB_TRIGGER_MESSAGE_VERSION (FB_VERSIONED_VERSION + 1)
-
-
 // Connection to current database in external engine.
 // Context passed to ExternalEngine has SYSDBA privileges.
 // Context passed to ExternalFunction, ExternalProcedure and ExternalTrigger
@@ -169,7 +160,7 @@
 	virtual const char* FB_CARG getBody(IStatus* status) const = 0;
 	virtual IMessageMetadata* FB_CARG getInputMetadata(IStatus* status) const = 0;
 	virtual IMessageMetadata* FB_CARG getOutputMetadata(IStatus* status) const = 0;
-	virtual const IMessageMetadata* FB_CARG getTriggerFields(IStatus* status) const = 0;
+	virtual IMessageMetadata* FB_CARG getTriggerMetadata(IStatus* status) const = 0;
 	virtual const char* FB_CARG getTriggerTable(IStatus* status) const = 0;
 	virtual ExternalTrigger::Type FB_CARG getTriggerType(IStatus* status) const = 0;
 };
@@ -203,7 +194,7 @@
 		const IRoutineMetadata* metadata,
 		IMetadataBuilder* inBuilder, IMetadataBuilder* outBuilder) = 0;
 	virtual ExternalTrigger* FB_CALL makeTrigger(IStatus* status, ExternalContext* context,
-		const IRoutineMetadata* metadata, ITriggerMessage* triggerMsg) = 0;
+		const IRoutineMetadata* metadata, IMetadataBuilder* fieldsBuilder) = 0;
 };
 #define FB_EXTERNAL_ENGINE_VERSION (FB_PLUGIN_VERSION + 6)
 
Modified: firebird/trunk/src/include/firebird/UdrCppEngine.h
===================================================================
--- firebird/trunk/src/include/firebird/UdrCppEngine.h	2013-03-23 20:41:17 UTC (rev 57820)
+++ firebird/trunk/src/include/firebird/UdrCppEngine.h	2013-03-23 21:12:27 UTC (rev 57821)
@@ -202,7 +202,7 @@
 	};
 
 #define FB_UDR_EXECUTE_DYNAMIC_TRIGGER	\
-	typedef void* FieldsMessage;	\
+	FB_UDR__DYNAMIC_TYPE(FieldsMessage);	\
 	\
 	FB_UDR__EXECUTE_TRIGGER
 
@@ -219,13 +219,15 @@
 	{	\
 		try	\
 		{	\
-			internalExecute(status, context, action, (FieldsMessage*) oldFields, (FieldsMessage*) newFields);	\
+			internalExecute(status, context, action,	\
+				(FieldsMessage::Type*) oldFields, (FieldsMessage::Type*) newFields);	\
 		}	\
 		FB_UDR__CATCH	\
 	}	\
 	\
 	void internalExecute(::Firebird::IStatus* status, ::Firebird::ExternalContext* context,	\
-		::Firebird::ExternalTrigger::Action action, FieldsMessage* oldFields, FieldsMessage* newFields)
+		::Firebird::ExternalTrigger::Action action, \
+		FieldsMessage::Type* oldFields, FieldsMessage::Type* newFields)
 
 
 #define FB_UDR_INITIALIZE	\
@@ -631,7 +633,7 @@
 	}
 
 	virtual void setup(IStatus* status, ExternalContext* /*context*/,
-		const IRoutineMetadata* /*metadata*/, ITriggerMessage* fields)
+		const IRoutineMetadata* /*metadata*/, IMetadataBuilder* fields)
 	{
 		T::FieldsMessage::setup(status, fields);
 	}
Modified: firebird/trunk/src/include/firebird/UdrEngine.h
===================================================================
--- firebird/trunk/src/include/firebird/UdrEngine.h	2013-03-23 20:41:17 UTC (rev 57820)
+++ firebird/trunk/src/include/firebird/UdrEngine.h	2013-03-23 21:12:27 UTC (rev 57821)
@@ -58,7 +58,7 @@
 {
 public:
 	virtual void setup(IStatus* status, ExternalContext* context, const IRoutineMetadata* metadata,
-		ITriggerMessage* fields) = 0;
+		IMetadataBuilder* fieldsBuilder) = 0;
 	virtual ExternalTrigger* FB_CALL newItem(IStatus* status, ExternalContext* context,
 		const IRoutineMetadata* metadata) = 0;
 };
Modified: firebird/trunk/src/jrd/ExtEngineManager.cpp
===================================================================
--- firebird/trunk/src/jrd/ExtEngineManager.cpp	2013-03-23 20:41:17 UTC (rev 57820)
+++ firebird/trunk/src/jrd/ExtEngineManager.cpp	2013-03-23 21:12:27 UTC (rev 57821)
@@ -61,6 +61,7 @@
 static MakeUpgradeInfo<> upInfo;
 
 
+// Create a Format based on a IMessageMetadata.
 static Format* createFormat(MemoryPool& pool, IMessageMetadata* params)
 {
 	LocalStatus status;
@@ -227,11 +228,22 @@
 	//// TODO: admin rights
 
 	clientCharSet = INTL_charset_lookup(tdbb, internalAttachment->att_client_charset)->getName();
+
+	internalAttachment->att_interface->addRef();
+
+	externalAttachment = MasterInterfacePtr()->registerAttachment(JProvider::getInstance(),
+		internalAttachment->att_interface);
 }
 
 ExtEngineManager::ExternalContextImpl::~ExternalContextImpl()
 {
 	releaseTransaction();
+
+	if (externalAttachment)
+	{
+		externalAttachment->release();
+		externalAttachment = NULL;
+	}
 }
 
 void ExtEngineManager::ExternalContextImpl::releaseTransaction()
@@ -242,12 +254,6 @@
 		externalTransaction = NULL;
 	}
 
-	if (externalAttachment)
-	{
-		externalAttachment->release();
-		externalAttachment = NULL;
-	}
-
 	internalTransaction = NULL;
 }
 
@@ -259,23 +265,13 @@
 		return;
 
 	releaseTransaction();
-	fb_assert(!externalAttachment && !externalTransaction);
+	fb_assert(!externalTransaction);
 
-	MasterInterfacePtr master;
-
-	if (internalAttachment)
-	{
-		internalAttachment->att_interface->addRef();
-
-		externalAttachment = master->registerAttachment(JProvider::getInstance(),
-			internalAttachment->att_interface);
-	}
-
 	if ((internalTransaction = newTransaction))
 	{
 		internalTransaction->getInterface()->addRef();
 
-		externalTransaction = master->registerTransaction(externalAttachment,
+		externalTransaction = MasterInterfacePtr()->registerTransaction(externalAttachment,
 			internalTransaction->getInterface());
 	}
 }
@@ -470,7 +466,7 @@
 
 
 ExtEngineManager::Trigger::Trigger(thread_db* tdbb, MemoryPool& pool, ExtEngineManager* aExtManager,
-			ExternalEngine* aEngine, RoutineMetadata* aMetadata, TriggerMessage& fieldsMsg,
+			ExternalEngine* aEngine, RoutineMetadata* aMetadata,
 			ExternalTrigger* aTrigger, const Jrd::Trigger* aTrg)
 	: extManager(aExtManager),
 	  engine(aEngine),
@@ -487,121 +483,10 @@
 
 	if (relation)
 	{
-		bool blrPresent = fieldsMsg.blr.hasData();
-		Format* relFormat = relation->rel_current_format;
-		GenericMap<Left<MetaName, USHORT> > fieldsMap;
+		format = createFormat(pool, metadata->triggerFields);
 
-		for (size_t i = 0; i < relation->rel_fields->count(); ++i)
-		{
-			jrd_fld* field = (*relation->rel_fields)[i];
-			if (!field)
-				continue;
-
-			fieldsMap.put(field->fld_name, (USHORT) i);
-		}
-
-		BlrReader reader(fieldsMsg.blr.begin(), fieldsMsg.blr.getCount());
-		ULONG offset = 0;
-		USHORT maxAlignment = 0;
-		USHORT count;
-
-		if (blrPresent)
-		{
-			reader.checkByte(blr_version5);
-			reader.checkByte(blr_begin);
-			reader.checkByte(blr_message);
-			reader.getByte();	// message number: ignore it
-			count = reader.getWord();
-
-			if (count != 2 * fieldsMsg.names.getCount())
-			{
-				status_exception::raise(
-					Arg::Gds(isc_ee_blr_mismatch_names_count) <<
-					Arg::Num(fieldsMsg.names.getCount()) <<
-					Arg::Num(count));
-			}
-		}
-		else
-			count = fieldsMap.count() * 2;
-
-		format.reset(Format::newFormat(pool, count));
-
-		for (unsigned i = 0; i < count / 2; ++i)
-		{
-			dsc* desc = &format->fmt_desc[i * 2];
-
-			if (blrPresent)
-			{
-				USHORT pos;
-
-				if (!fieldsMap.get(fieldsMsg.names[i], pos))
-				{
-					status_exception::raise(
-						Arg::Gds(isc_ee_blr_mismatch_name_not_found) <<
-						Arg::Str(fieldsMsg.names[i]));
-				}
-
-				fieldsPos.add(pos);
-				PAR_datatype(reader, desc);
-			}
-			else
-			{
-				fieldsPos.add(i);
-				*desc = relFormat->fmt_desc[i];
-			}
-
-			USHORT align = type_alignments[desc->dsc_dtype];
-			maxAlignment = MAX(maxAlignment, align);
-
-			offset = FB_ALIGN(offset, align);
-			desc->dsc_address = (UCHAR*) (IPTR) offset;
-			offset += desc->dsc_length;
-
-			const dsc* fieldDesc = &relFormat->fmt_desc[i];
-
-			if (desc->isText() && desc->getCharSet() == CS_NONE)
-				desc->setTextType(fieldDesc->getTextType());
-			desc->setNullable(fieldDesc->isNullable());
-
-			++desc;
-
-			if (blrPresent)
-			{
-				PAR_datatype(reader, desc);
-
-				if (!DSC_EQUIV(desc, &shortDesc, false))
-				{
-					status_exception::raise(
-						Arg::Gds(isc_ee_blr_mismatch_null) <<
-						Arg::Num(i * 2 + 1));
-				}
-			}
-			else
-				*desc = shortDesc;
-
-			align = type_alignments[desc->dsc_dtype];
-			maxAlignment = MAX(maxAlignment, align);
-
-			offset = FB_ALIGN(offset, align);
-			desc->dsc_address = (UCHAR*) (IPTR) offset;
-			offset += desc->dsc_length;
-		}
-
-		if (blrPresent)
-		{
-			reader.checkByte(blr_end);
-			reader.checkByte(blr_eoc);
-
-			if (offset != fieldsMsg.bufferLength)
-			{
-				status_exception::raise(
-					Arg::Gds(isc_ee_blr_mismatch_length) <<
-					Arg::Num(fieldsMsg.bufferLength) <<
-					Arg::Num(offset));
-			}
-		}
-
-		format->fmt_length = FB_ALIGN(offset, maxAlignment);
+		for (unsigned i = 0; i < format->fmt_count / 2; ++i)
+			fieldsPos.add(i);
 	}
 }
 
@@ -836,12 +721,12 @@
 	LocalStatus status;
 
 	RefPtr<IMetadataBuilder> inBuilder(metadata->inputParameters->getBuilder(&status));
+	status.check();
 	inBuilder->release();
-	status.check();
 
 	RefPtr<IMetadataBuilder> outBuilder(metadata->outputParameters->getBuilder(&status));
+	status.check();
 	outBuilder->release();
-	status.check();
 
 	ExternalFunction* externalFunction;
 
@@ -937,12 +822,12 @@
 	LocalStatus status;
 
 	RefPtr<IMetadataBuilder> inBuilder(metadata->inputParameters->getBuilder(&status));
+	status.check();
 	inBuilder->release();
-	status.check();
 
 	RefPtr<IMetadataBuilder> outBuilder(metadata->outputParameters->getBuilder(&status));
+	status.check();
 	outBuilder->release();
-	status.check();
 
 	ExternalProcedure* externalProcedure;
 
@@ -984,7 +869,7 @@
 }
 
 
-ExtEngineManager::Trigger* ExtEngineManager::makeTrigger(thread_db* tdbb, const Jrd::Trigger* trg,
+void ExtEngineManager::makeTrigger(thread_db* tdbb, Jrd::Trigger* trg,
 	const MetaName& engine, const string& entryPoint, const string& body,
 	ExternalTrigger::Type type)
 {
@@ -1031,10 +916,20 @@
 			item.length = sqlLen;
 			item.scale = sqlScale;
 			item.nullable = !field->fld_not_null;
+			item.finished = true;
 		}
 	}
 
-	TriggerMessage fieldsMsg(pool);
+	LocalStatus status;
+
+	RefPtr<IMetadataBuilder> fieldsBuilder(relation ?
+		metadata->triggerFields->getBuilder(&status) : NULL);
+	if (relation)
+	{
+		status.check();
+		fieldsBuilder->release();
+	}
+
 	ExternalTrigger* externalTrigger;
 
 	{	// scope
@@ -1042,7 +937,7 @@
 
 		LocalStatus status;
 		externalTrigger = attInfo->engine->makeTrigger(&status, attInfo->context, metadata,
-			&fieldsMsg);
+			fieldsBuilder);
 		status.check();
 
 		if (!externalTrigger)
@@ -1050,12 +945,18 @@
 			status_exception::raise(
 				Arg::Gds(isc_eem_trig_not_returned) << trg->name << engine);
 		}
+
+		if (relation)
+		{
+			metadata->triggerFields = fieldsBuilder->getMetadata(&status);
+			status.check();
+		}
 	}
 
 	try
 	{
-		return FB_NEW(getPool()) Trigger(tdbb, pool, this, attInfo->engine, metadata.release(),
-			fieldsMsg, externalTrigger, trg);
+		trg->extTrigger = FB_NEW(getPool()) Trigger(tdbb, pool, this, attInfo->engine,
+			metadata.release(), externalTrigger, trg);
 	}
 	catch (...)
 	{
Modified: firebird/trunk/src/jrd/ExtEngineManager.h
===================================================================
--- firebird/trunk/src/jrd/ExtEngineManager.h	2013-03-23 20:41:17 UTC (rev 57820)
+++ firebird/trunk/src/jrd/ExtEngineManager.h	2013-03-23 21:12:27 UTC (rev 57821)
@@ -52,35 +52,6 @@
 struct record_param;
 
 
-class TriggerMessage :
-	public Firebird::VersionedIface<Firebird::ITriggerMessage, FB_TRIGGER_MESSAGE_VERSION>,
-	public Firebird::PermanentStorage
-{
-public:
-	explicit TriggerMessage(MemoryPool& pool)
-		: PermanentStorage(pool),
-		  names(pool),
-		  blr(pool),
-		  bufferLength(0)
-	{
-	}
-
-	virtual void FB_CARG set(const unsigned char* aBlr, unsigned aBlrLength, unsigned aBufferLength,
-		const char** aNames, unsigned aCount)
-	{
-		blr.assign(aBlr, aBlrLength);
-		bufferLength = aBufferLength;
-
-		for (unsigned i = 0; i < aCount; ++i)
-			names.add(aNames[i]);
-	}
-
-public:
-	Firebird::ObjectsArray<Firebird::string> names;
-	Firebird::Array<UCHAR> blr;
-	unsigned bufferLength;
-};
-
 class ExtEngineManager : public Firebird::PermanentStorage
 {
 private:
@@ -136,7 +107,7 @@
 			return getMetadata(outputParameters);
 		}
 
-		virtual Firebird::IMessageMetadata* FB_CARG getTriggerFields(
+		virtual Firebird::IMessageMetadata* FB_CARG getTriggerMetadata(
 			Firebird::IStatus* /*status*/) const
 		{
 			return getMetadata(triggerFields);
@@ -304,7 +275,7 @@
 	{
 	public:
 		Trigger(thread_db* tdbb, MemoryPool& pool, ExtEngineManager* aExtManager,
-			Firebird::ExternalEngine* aEngine, RoutineMetadata* aMetadata, TriggerMessage& fieldsMsg,
+			Firebird::ExternalEngine* aEngine, RoutineMetadata* aMetadata,
 			Firebird::ExternalTrigger* aTrigger, const Jrd::Trigger* aTrg);
 		~Trigger();
 
@@ -346,7 +317,7 @@
 	void makeProcedure(thread_db* tdbb, jrd_prc* prc,
 		const Firebird::MetaName& engine, const Firebird::string& entryPoint,
 		const Firebird::string& body);
-	Trigger* makeTrigger(thread_db* tdbb, const Jrd::Trigger* trg,
+	void makeTrigger(thread_db* tdbb, Jrd::Trigger* trg,
 		const Firebird::MetaName& engine, const Firebird::string& entryPoint,
 		const Firebird::string& body, Firebird::ExternalTrigger::Type type);
 
Modified: firebird/trunk/src/jrd/jrd.cpp
===================================================================
--- firebird/trunk/src/jrd/jrd.cpp	2013-03-23 20:41:17 UTC (rev 57820)
+++ firebird/trunk/src/jrd/jrd.cpp	2013-03-23 21:12:27 UTC (rev 57821)
@@ -654,7 +654,7 @@
 	if (extTrigger)
 		return;
 
-	extTrigger = dbb->dbb_extManager.makeTrigger(tdbb, this, engine, entryPoint, extBody.c_str(),
+	dbb->dbb_extManager.makeTrigger(tdbb, this, engine, entryPoint, extBody.c_str(),
 		(relation ?
 			(type & 1 ? ExternalTrigger::TYPE_BEFORE : ExternalTrigger::TYPE_AFTER) :
 			Firebird::ExternalTrigger::TYPE_DATABASE));
Modified: firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp
===================================================================
--- firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp	2013-03-23 20:41:17 UTC (rev 57820)
+++ firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp	2013-03-23 21:12:27 UTC (rev 57821)
@@ -157,7 +157,7 @@
 	virtual ExternalProcedure* FB_CALL makeProcedure(IStatus* status, ExternalContext* context,
 		const IRoutineMetadata* metadata, IMetadataBuilder* inBuilder, IMetadataBuilder* outBuilder);
 	virtual ExternalTrigger* FB_CALL makeTrigger(IStatus* status, ExternalContext* context,
-		const IRoutineMetadata* metadata, ITriggerMessage* fieldsMsg);
+		const IRoutineMetadata* metadata, IMetadataBuilder* fieldsBuilder);
 
 public:
 	virtual void FB_CALL dispose();
@@ -355,7 +355,7 @@
 {
 public:
 	SharedTrigger(IStatus* status, Engine* aEngine, ExternalContext* context,
-				const IRoutineMetadata* aMetadata, ITriggerMessage* fieldsMsg)
+				const IRoutineMetadata* aMetadata, IMetadataBuilder* fieldsBuilder)
 		: engine(aEngine),
 		  metadata(aMetadata),
 		  moduleName(*getDefaultMemoryPool()),
@@ -365,7 +365,7 @@
 	{
 		engine->loadModule(metadata, &moduleName, &entryPoint);
 		TriggerNode* node = engine->findNode<TriggerNode>(registeredTriggers, moduleName, entryPoint);
-		node->factory->setup(status, context, metadata, fieldsMsg);
+		node->factory->setup(status, context, metadata, fieldsBuilder);
 	}
 
 	virtual ~SharedTrigger()
@@ -715,11 +715,11 @@
 
 
 ExternalTrigger* FB_CALL Engine::makeTrigger(IStatus* status, ExternalContext* context,
-	const IRoutineMetadata* metadata, ITriggerMessage* fieldsMsg)
+	const IRoutineMetadata* metadata, IMetadataBuilder* fieldsBuilder)
 {
 	try
 	{
-		return new SharedTrigger(status, this, context, metadata, fieldsMsg);
+		return new SharedTrigger(status, this, context, metadata, fieldsBuilder);
 	}
 	catch (const StatusException& e)
 	{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-24 01:26:08
       | 
| Revision: 57822
          http://sourceforge.net/p/firebird/code/57822
Author:   firebirds
Date:     2013-03-24 01:26:05 +0000 (Sun, 24 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-23 21:12:27 UTC (rev 57821)
+++ firebird/trunk/ChangeLog	2013-03-24 01:26:05 UTC (rev 57822)
@@ -1,3 +1,26 @@
+ 2013-03-23 21:12  asfernandes 
+   M examples/udr/UdrCppExample.cpp
+   M src/include/firebird/ExternalEngine.h
+   M src/include/firebird/UdrCppEngine.h
+   M src/include/firebird/UdrEngine.h
+   M src/jrd/ExtEngineManager.cpp
+   M src/jrd/ExtEngineManager.h
+   M src/jrd/jrd.cpp
+   M src/plugins/udr_engine/UdrEngine.cpp
+Work in progress fixing external triggers.
+
+ 2013-03-23 20:41  asfernandes 
+   M src/dsql/DdlNodes.epp
+Fixed CORE-4067 - Problem with "CREATE DATABASE ... COLLATION ..." and 1 dialect.
+
+ 2013-03-23 13:58  hvlad 
+   M src/jrd/cch.cpp
+   M src/jrd/cch.h
+Cleanup:
+- removed never used bcb_checkpoint and BDB_checkpoint
+- removed conditional compilation for CACHE_WRITER as it is already ruled by flag BCB_cache_writer at almost all places
+- added necessary checks for BCB_cache_writer when it was missed
+
  2013-03-22 14:29  alexpeshkoff 
    M src/remote/client/interface.cpp
    M src/yvalve/YObjects.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-23 21:12:27 UTC (rev 57821)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-24 01:26:05 UTC (rev 57822)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30284
+  FORMAL BUILD NUMBER:30287
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30284"
-#define FILE_VER_STRING "WI-T3.0.0.30284"
-#define LICENSE_VER_STRING "WI-T3.0.0.30284"
-#define FILE_VER_NUMBER 3, 0, 0, 30284
+#define PRODUCT_VER_STRING "3.0.0.30287"
+#define FILE_VER_STRING "WI-T3.0.0.30287"
+#define LICENSE_VER_STRING "WI-T3.0.0.30287"
+#define FILE_VER_NUMBER 3, 0, 0, 30287
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30284"
+#define FB_BUILD_NO "30287"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-23 21:12:27 UTC (rev 57821)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-24 01:26:05 UTC (rev 57822)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30284
+BuildNum=30287
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-25 02:18:28
       | 
| Revision: 57831
          http://sourceforge.net/p/firebird/code/57831
Author:   firebirds
Date:     2013-03-25 02:18:25 +0000 (Mon, 25 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-25 01:25:01 UTC (rev 57830)
+++ firebird/trunk/ChangeLog	2013-03-25 02:18:25 UTC (rev 57831)
@@ -1,3 +1,24 @@
+ 2013-03-24 16:16  dimitr 
+   M src/jrd/jrd.cpp
+The minimal patch for CORE-1604 (Error at database creation by user with non-ascii name) and CORE-3243 (CURRENT_USER and MON$USER don't work properly) that seems to work for the trusted authentication, but [at least] the legacy auth module has to be reviewed as it seems to deal with the user name "as is", without checking whether it arrived in UTF8 or not.
+
+ 2013-03-24 15:55  asfernandes 
+   M src/dsql/ExprNodes.cpp
+Fixed problem reported in fb-devel: FB3 vs FB2.5: Different result for SUBSTRING('test' FROM 1 FOR NULL).
+
+ 2013-03-24 07:14  dimitr 
+   M extern/icu/source/allinone/firebird2intl.props
+Enabled multi-threaded compilation for ICU.
+
+ 2013-03-24 06:38  dimitr 
+   M src/dsql/DsqlCompilerScratch.cpp
+   M src/remote/client/interface.cpp
+Misc.
+
+ 2013-03-24 06:19  dimitr 
+   M src/common/gdsassert.h
+A more clever implementation of the assertion macros. It suppresses С4390 warnings and pleases the /W4 warning level at the same time, without any need for the new macros.
+
  2013-03-23 21:12  asfernandes 
    M examples/udr/UdrCppExample.cpp
    M src/include/firebird/ExternalEngine.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-25 01:25:01 UTC (rev 57830)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-25 02:18:25 UTC (rev 57831)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30287
+  FORMAL BUILD NUMBER:30292
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30287"
-#define FILE_VER_STRING "WI-T3.0.0.30287"
-#define LICENSE_VER_STRING "WI-T3.0.0.30287"
-#define FILE_VER_NUMBER 3, 0, 0, 30287
+#define PRODUCT_VER_STRING "3.0.0.30292"
+#define FILE_VER_STRING "WI-T3.0.0.30292"
+#define LICENSE_VER_STRING "WI-T3.0.0.30292"
+#define FILE_VER_NUMBER 3, 0, 0, 30292
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30287"
+#define FB_BUILD_NO "30292"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-25 01:25:01 UTC (rev 57830)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-25 02:18:25 UTC (rev 57831)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30287
+BuildNum=30292
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ma...@us...> - 2013-03-25 11:07:14
       | 
| Revision: 57835
          http://sourceforge.net/p/firebird/code/57835
Author:   mapopa
Date:     2013-03-25 11:07:11 +0000 (Mon, 25 Mar 2013)
Log Message:
-----------
recent version of autoconf/automake/libtool  complain about the firebird
scripts aclocal: warning: autoconf input should be named 'configure.ac', not
'configure.in'
Added Paths:
-----------
    firebird/trunk/configure.ac
Removed Paths:
-------------
    firebird/trunk/configure.in
Added: firebird/trunk/configure.ac
===================================================================
--- firebird/trunk/configure.ac	                        (rev 0)
+++ firebird/trunk/configure.ac	2013-03-25 11:07:11 UTC (rev 57835)
@@ -0,0 +1,1328 @@
+dnl ############################# INITIALISATION ###############################
+
+AC_PREREQ(2.56)
+AC_INIT(src)
+
+AC_CONFIG_AUX_DIR(builds/make.new/config)
+AC_CACHE_VAL(ac_cv_prog_make_set, [AC_PROG_MAKE_SET])
+AC_PREFIX_DEFAULT(/usr/local/firebird)
+
+m4_ifdef([AC_CONFIG_MACRO_DIR],
+         [],
+         [m4_define([AC_CONFIG_MACRO_DIR], [])])
+AC_CONFIG_MACRO_DIR(m4)
+
+AC_CONFIG_HEADER(src/include/gen/autoconfig.auto:builds/make.new/config/config.h.in)
+
+dnl XE_APPEND(value, varname)
+define([XE_APPEND],[[$2]="$[$2] [$1]"])
+
+dnl XE_PREPEND(value, varname)
+define([XE_PREPEND],[[$2]="[$1] $[$2]"])
+
+dnl XE_CONF_DIR(param, help, variable, default)
+define([XE_CONF_DIR],[
+AC_ARG_WITH([$1], 
+	[AC_HELP_STRING([--with-$1], [$2])], 
+	[[$3]="$withval"
+	 AC_DEFINE_UNQUOTED([$3], "$[$3]", [$2])], 
+	[[$3]="[`if test ""x$prefix"" = ""xNONE"" ; then echo ""$ac_default_prefix""; else echo ""$prefix""; fi`][$4]"
+	 AC_DEFINE_UNQUOTED([$3], [""], [$2])]
+)
+AC_SUBST([$3])
+])
+
+define([XE_CONF_FILE],[
+AC_ARG_WITH([$1],
+	[AC_HELP_STRING([--with-$1], [$2])],
+	[[$3]="$withval"
+	 AC_DEFINE_UNQUOTED([$3], "$[$3]", [$2])],
+	[[$3]="$4"
+	 AC_DEFINE_UNQUOTED([$3], ["$4"], [$2])]
+)
+AC_SUBST([$3])
+])
+
+define([XE_SAVE_ENV], [
+pre_save_restore_cflags=$CFLAGS
+pre_save_restore_cxxflags=$CXXFLAGS
+pre_save_restore_libs=$LIBS
+])
+
+define([XE_RESTORE_ENV], [
+CFLAGS=$pre_save_restore_cflags
+CXXFLAGS=$pre_save_restore_cxxflags
+LIBS=$pre_save_restore_libs
+])
+
+sinclude(acx_pthread.m4)
+sinclude(binreloc.m4)
+
+dnl ############################# ADD TESTS BELOW ##############################
+
+AC_CANONICAL_SYSTEM
+CPU_TYPE=$target_cpu
+AC_SUBST(CPU_TYPE)
+
+
+dnl EKU: set appropiate defaults for each platform
+dnl      EDITLINE_FLG     : support fancy command line editing in isql
+dnl      SHRLIB_EXT       : suffix of shared library files
+
+RAW_DEVICES_FLG=Y
+EXPORT_SYMBOLS_STYLE=linux
+INSTALL_PREFIX=""
+
+dnl Use /usr/lib for library links on most platforms except some 64-bit ones
+libdir=/usr/lib
+
+dnl Should system editline be used
+STD_EDITLINE=false
+
+dnl Test for special ar options?
+AR_OPT_CHECK=false
+
+case "$target" in
+  x*64-*-darwin*)
+    MAKEFILE_PREFIX=darwin_x86_64
+    MAKEFILE_POSTFIX=darwin
+    PLATFORM=DARWIN
+    INSTALL_PREFIX=darwin
+    AC_DEFINE(DARWIN, 1, [Define this if OS is DARWIN])
+	XE_APPEND(-framework CoreFoundation,LIBS)
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=dylib
+    CPU_TYPE=x86_64
+    EXPORT_SYMBOLS_STYLE=darwin
+    ;;
+
+  i*86-*-darwin*)
+    MAKEFILE_PREFIX=darwin_i386
+    MAKEFILE_POSTFIX=darwin
+    PLATFORM=DARWIN
+    INSTALL_PREFIX=darwin
+    AC_DEFINE(DARWIN, 1, [Define this if OS is DARWIN])
+	XE_APPEND(-framework CoreFoundation,LIBS)
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=dylib
+    CPU_TYPE=i386
+    EXPORT_SYMBOLS_STYLE=darwin
+    ;;
+
+  powerpc-*-darwin*)
+    MAKEFILE_PREFIX=darwin_powerpc
+dnl MAKEFILE_PREFIX=darwin_ppc64
+    MAKEFILE_POSTFIX=darwin
+    PLATFORM=DARWIN
+    INSTALL_PREFIX=darwin
+    AC_DEFINE(DARWIN, 1, [Define this if OS is DARWIN])
+	XE_APPEND(-framework CoreFoundation,LIBS)
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=dylib
+dnl CPU_TYPE=ppc64
+	EXPORT_SYMBOLS_STYLE=darwin
+    ;;
+
+  powerpc-*-aix*)
+    dnl ibm xlC has many invocations, like xlC, xlc++, or xlc_r7
+    comp=`echo "$CXX" | cut -c1-3 | dd conv=lcase 2>/dev/null`
+    if test "$comp" = "xlc"; then
+        AR_OPT_CHECK=true
+        TLS_OPTIONS="-qtls=default"
+        MAKEFILE_PREFIX=aix_powerpc_xlc
+    else
+        MAKEFILE_PREFIX=aix_powerpc
+    fi
+    MAKEFILE_POSTFIX=aix
+    PLATFORM=AIX
+    INSTALL_PREFIX=aix
+    AC_DEFINE(AIX, 1, [Define this if OS is AIX])
+    EDITLINE_FLG=N
+    SHRLIB_EXT=so
+	EXPORT_SYMBOLS_STYLE=aix
+    ;;
+
+  amd64-*-freebsd* | x86_64*-*-freebsd* | x86_64*-*-k*bsd*-gnu)
+    MAKEFILE_PREFIX=freebsd_amd64
+    case "$target" in
+        x86_64*-*-k*bsd-gnu)      # Debian/kFreeBSD
+            PLATFORM=GENTOOFREEBSD
+            INSTALL_PREFIX=linux
+            ;;
+		*)
+            PLATFORM=FREEBSD
+            INSTALL_PREFIX=freebsd
+            ;;
+    esac
+    AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
+    AC_DEFINE(AMD64, 1, [Define this if CPU is amd64])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  *-gentoo-freebsd*)
+    MAKEFILE_PREFIX=freebsd
+    PLATFORM=GENTOOFREEBSD
+    AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  *-*-freebsd* | *-*-k*bsd*-gnu)
+    MAKEFILE_PREFIX=freebsd
+    case "$target" in
+        *-*-k*bsd-gnu)      # Debian/kFreeBSD
+            PLATFORM=GENTOOFREEBSD
+            INSTALL_PREFIX=linux
+            ;;
+        *)
+            PLATFORM=FREEBSD
+            ;;
+    esac
+    AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  mips-*-linux*)
+    MAKEFILE_PREFIX=linux_mips
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX)
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    PTHREAD_CFLAGS=-pthread
+    PTHREAD_LIBS=-lpthread
+    ;;
+
+  mipsel-*-linux*)
+    MAKEFILE_PREFIX=linux_mipsel
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX)
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    PTHREAD_CFLAGS=-pthread
+    PTHREAD_LIBS=-lpthread
+    ;;
+
+  x86_64*-*-linux* | x86_64*-*-gnu*)
+    MAKEFILE_PREFIX=linux_amd64
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+	libdir=/usr/lib64
+    CPU_TYPE=amd64
+    ;;
+
+  ia64*-*-linux*)
+    MAKEFILE_PREFIX=linux_ia64
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    libdir=/usr/lib
+    CPU_TYPE=ia64
+    ;;
+
+  arm*-*-linux*)
+    MAKEFILE_PREFIX=linux_arm
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    STD_EDITLINE=true
+    ;;
+
+  sparc*-*-linux* | sparc*-*-gnu* | sparc*-*-k*bsd*-gnu)
+    MAKEFILE_PREFIX=linux_sparc32
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  powerpc*-*-linux*)
+    MAKEFILE_PREFIX=linux_powerpc
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  i*86*-*-linux*)
+    MAKEFILE_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX)
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  s390*-*-linux*)
+    MAKEFILE_PREFIX=linux_s390x
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  sh*eb-*-linux*)
+    MAKEFILE_PREFIX=linux_generic
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+    AC_DEFINE(SHEB, 1, [Architecture is big-edian sh4])
+    LOCK_MANAGER_FLG=Y
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+
+  sh*-*-linux*)
+    MAKEFILE_PREFIX=linux_generic
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+    AC_DEFINE(SH, 1, [Architecture is little-endian sh4])
+    LOCK_MANAGER_FLG=Y
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  hppa*-*-linux*)
+    MAKEFILE_PREFIX=linux_generic
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+    AC_DEFINE(HPPA, 1, [Define this if CPU is HPPA])
+    LOCK_MANAGER_FLG=Y
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  alpha*-*-linux*)
+   MAKEFILE_PREFIX=linux_generic
+   INSTALL_PREFIX=linux
+   PLATFORM=LINUX
+   AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+   AC_DEFINE(ALPHA, 1, [Define this if CPU is Alpha])
+   LOCK_MANAGER_FLG=Y
+   EDITLINE_FLG=Y
+   SHRLIB_EXT=so
+   ;;
+
+  *-*-linux* | *-*-gnu*)
+    MAKEFILE_PREFIX=linux_generic
+    INSTALL_PREFIX=linux
+    PLATFORM=LINUX
+    AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  *-*-netbsd*)
+    MAKEFILE_PREFIX=netbsd
+    PLATFORM=NETBSD
+    AC_DEFINE(NETBSD, 1, [Define this if OS is NetBSD])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  ia64-*-hpux*)
+    comp=`echo "$CXX" | cut -c1-3`
+    case $comp in
+       aCC) MAKEFILE_PREFIX=hpux_aCC ;
+           PTHREAD_CFLAGS=-mt
+           ;;
+       *)  MAKEFILE_PREFIX=hpux_ia64 ;
+           ;;
+    esac
+    INSTALL_PREFIX=hpux
+    PLATFORM=HPUX
+    AC_DEFINE(HPUX, 1, [Define this if OS is HP-UX])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    libdir=/usr/lib/pa20_64
+	EXPORT_SYMBOLS_STYLE=hpux
+    ;;
+
+  hppa*-*-hpux*)
+    comp=`echo "$CXX" | cut -c1-3`
+    case $comp in
+       aCC) MAKEFILE_PREFIX=hpux_aCC ;
+           PTHREAD_CFLAGS=-mt
+           ;;
+       *)  MAKEFILE_PREFIX=hpux ;
+           ;;
+    esac
+    INSTALL_PREFIX=hpux
+    PLATFORM=HPUX
+    AC_DEFINE(HPUX, 1, [Define this if OS is HP-UX])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=sl
+    libdir=/usr/lib/pa20_64
+	EXPORT_SYMBOLS_STYLE=hpux
+    ;;
+
+  i386-pc-solaris*)
+    dnl detect native compiler, Sun Studio Pro
+    comp=`echo "$CXX" | cut -c1-2`
+    case $comp in
+       CC) MAKEFILE_PREFIX=solaris
+           PTHREAD_CFLAGS=-mt
+           PTHREAD_LIBS=-lpthread
+           ;;
+       *)  MAKEFILE_PREFIX=solx86gcc ;
+           PTHREAD_CFLAGS=-pthreads ;;
+    esac
+    dnl if this is amd64 system, we should install our libraries in /usr/lib/amd64
+    isa=`isainfo -k`
+    if test "$isa" = "amd64"; then
+        libdir=/usr/lib/amd64
+    fi
+    CAS_OPTIONS=`pwd`"/src/common/classes/fb_cas_sax.il";
+    INSTALL_PREFIX=solaris
+    PLATFORM=solx86
+    AC_DEFINE(solx86, 1, [Define this if OS is Solarix x86])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  sparc-sun-solaris*)
+    dnl detect native compiler, Sun Studio Pro
+    comp=`echo "$CXX" | cut -c1-3`
+    case $comp in
+       CC) MAKEFILE_PREFIX=solaris ;
+           dnl inline assembly for atomic operations on Solaris 9 w SSPRO
+           PTHREAD_CFLAGS=-mt
+           PTHREAD_LIBS=-lpthread
+           if test "${target#*solaris}" = "2.9"; then
+             ATOMIC_OPTIONS=`pwd`"/src/common/classes/fb_atomic.il";
+           fi
+           ;;
+       *)  MAKEFILE_PREFIX=solaris-64gcc ;
+    esac
+    CAS_OPTIONS=`pwd`"/src/common/classes/fb_cas.il";
+    INSTALL_PREFIX=solaris
+    PLATFORM=SOLARIS
+    AC_DEFINE(SOLARIS, 1, [Define this if OS is Solaris Sparc])
+    EDITLINE_FLG=Y
+    SHRLIB_EXT=so
+    ;;
+
+  *-*-mingw*)
+    MAKEFILE_PREFIX=mingw
+    PLATFORM=win32
+    AC_DEFINE(WIN_NT, 1, [Define this if OS is Windows NT])
+    AC_DEFINE(HAVE_MULTI_THREAD, 1, [Define this if multi-threading should be supported])
+    EDITLINE_FLG=N
+    RAW_DEVICES_FLG=N
+    SHRLIB_EXT=dll
+    ;;
+
+  *)
+    AC_MSG_ERROR(unsupported platform ${target})
+    ;;
+esac
+
+if test "$INSTALL_PREFIX" = ""; then
+  INSTALL_PREFIX=$MAKEFILE_PREFIX
+fi
+
+AM_BINRELOC
+
+AC_SUBST(MAKEFILE_PREFIX)
+AC_SUBST(AR_OPTIONS)
+AC_SUBST(PLATFORM)
+AC_SUBST(SHRLIB_EXT)
+AC_DEFINE(CASE_SENSITIVITY, true, [Define this if paths are case sensitive])
+
+
+dnl Some controllable options
+
+AC_ARG_ENABLE(developer,
+  [  --enable-developer      use developer mode rules (default=no)],
+  [case "$enableval" in
+     yes) DEVEL_FLG=Y;;
+     no)  DEVEL_FLG=N;;
+     *)   AC_MSG_ERROR(bad value '${enableval}' for --enable-developer);;
+   esac])
+AC_SUBST(DEVEL_FLG)
+
+CROSS=
+IS_CROSS=N
+AC_ARG_WITH(cross-build,
+  [  --with-cross-build      build for platform different from current one],
+  [CROSS=${withval}
+   IS_CROSS=Y])
+AC_SUBST(IS_CROSS)
+
+dnl Avoid dumb '-g -O2' autoconf's default
+dnl Debugging information and optimization flags should be set in prefix.$platform file
+dnl Should be replaced with AC_PROG_GCC_DEFAULT_FLAGS() when available
+if test "$CFLAGS" = "-g -O2" -o "$CFLAGS" = "-g" -o "$CFLAGS" = "-O2"; then
+	CFLAGS=
+fi
+
+dnl Find out how to use threads on this platform
+XE_SAVE_ENV()
+ACX_PTHREAD([
+  AC_DEFINE(HAVE_MULTI_THREAD, 1,
+    [Define this if multi-threading should be supported])])
+XE_RESTORE_ENV()
+
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
+
+AC_ARG_ENABLE(raw-devices,
+  [  --enable-raw-devices    enable databases on raw devices (default on POSIX)],
+  [case "$enableval" in
+     yes) RAW_DEVICES_FLG=Y;;
+     no)  RAW_DEVICES_FLG=N;;
+     *)   AC_MSG_ERROR(bad value '${enableval}' for --enable-raw-devices);;
+   esac])
+if test "$RAW_DEVICES_FLG" = "Y"; then
+  AC_DEFINE(SUPPORT_RAW_DEVICES, 1,
+    [Define this if databases on raw devices should be supported])
+fi
+
+AC_ARG_ENABLE(rpath,
+  [  --enable-rpath          enable linking with RPATH (default)],
+  [],
+  [enable_rpath=yes])
+if test "x$enable_rpath" != "xno" || test "x$enable_rpath" = "x" ; then
+  AC_SUBST(USE_RPATH, 1)
+fi
+
+AC_ARG_WITH(editline,
+  [  --with-editline         support fancy command line editing],
+  [case "$withval" in
+     yes) EDITLINE_FLG=Y;;
+     no)  EDITLINE_FLG=N;;
+     *)   AC_MSG_ERROR(bad value '${withval}' for --with-editline);;
+   esac])
+AC_ARG_WITH(system-editline,
+  [  --with-system-editline  use OS supplied libeditline],
+  [case "$withval" in
+     yes) STD_EDITLINE=true;;
+     no)  STD_EDITLINE=false;;
+     *)   AC_MSG_ERROR(bad value '${withval}' for --with-system-editline);;
+   esac])
+
+# not need editline in default libs, but need to test for its presence
+READLINE=edit	# builtin default
+XE_SAVE_ENV()
+if test "$STD_EDITLINE" = "true"; then
+  AC_CHECK_LIB(edit, readline, [READLINE=edit EDITLINE_FLG=Y],
+    AC_CHECK_LIB(editline, readline, [READLINE=editline EDITLINE_FLG=Y],
+      AC_CHECK_LIB(readline, readline, [READLINE=readline EDITLINE_FLG=Y],
+        [STD_EDITLINE=false
+         if test "$EDITLINE_FLG" = "Y"; then
+           AC_MSG_WARN([[[--with-system-editline specified, not found. Using bundled editline]]])])))
+		 fi
+fi
+XE_RESTORE_ENV()
+
+AC_SUBST(READLINE)
+AC_SUBST(STD_EDITLINE)
+AC_SUBST(EDITLINE_FLG)
+
+FB_SERVICE_NAME=gds_db
+FB_SERVICE_PORT=3050
+FB_IPC_NAME=FirebirdIPI
+AC_ARG_WITH(service-name,
+  [  --with-service-name     specify inet service name (default=gds_db)],
+  [FB_SERVICE_NAME=${withval}])
+AC_ARG_WITH(service-port,
+  [  --with-service-port     specify inet service port (default=3050)],
+  [FB_SERVICE_PORT=${withval}])
+AC_ARG_WITH(ipc-name,
+  [  --with-ipc-name         specify local IPC name (default=FirebirdIPI)],
+  [FB_IPC_NAME=${withval}])
+AC_DEFINE_UNQUOTED(FB_SERVICE_NAME,"$FB_SERVICE_NAME", [Inet service name])
+AC_DEFINE_UNQUOTED(FB_SERVICE_PORT,$FB_SERVICE_PORT, [Inet service port])
+AC_DEFINE_UNQUOTED(FB_IPC_NAME,"$FB_IPC_NAME", [Local IPC name])
+AC_SUBST(FB_SERVICE_NAME)
+AC_SUBST(FB_SERVICE_PORT)
+AC_SUBST(FB_IPC_NAME)
+
+dnl Use non-standard directory placement control
+dnl Sorry - GNU standard is not Ok for us
+XE_CONF_DIR(fbbin, [executables DIR (PREFIX/bin)], FB_BINDIR, /bin)
+XE_CONF_DIR(fbsbin, [system admin executables DIR (PREFIX/bin)], FB_SBINDIR, /bin)
+XE_CONF_DIR(fbconf, [config files DIR (PREFIX)], FB_CONFDIR)
+XE_CONF_DIR(fblib, [object code libraries DIR (PREFIX/lib)], FB_LIBDIR, /lib)
+XE_CONF_DIR(fbinclude, [C/C++ header files DIR (PREFIX/include)], FB_INCDIR, /include)
+XE_CONF_DIR(fbdoc, [documentation root DIR (PREFIX/doc)], FB_DOCDIR, /doc)
+XE_CONF_DIR(fbudf, [UDF DIR (PREFIX/UDF)], FB_UDFDIR, /UDF)
+XE_CONF_DIR(fbsample, [examples DIR (PREFIX/examples)], FB_SAMPLEDIR, /examples)
+XE_CONF_DIR(fbsample-db, [examples database DIR (PREFIX/examples/empbuild)], FB_SAMPLEDBDIR, /examples/empbuild)
+XE_CONF_DIR(fbhelp, [QLI help DIR (PREFIX/help)], FB_HELPDIR, /help)
+XE_CONF_DIR(fbintl, [international DIR (PREFIX/intl)], FB_INTLDIR, /intl)
+XE_CONF_DIR(fbmisc, [misc DIR (PREFIX/misc)], FB_MISCDIR, /misc)
+XE_CONF_DIR(fbsecure-db, [security database DIR (PREFIX)], FB_SECDBDIR)
+XE_CONF_DIR(fbmsg, [message files DIR (PREFIX)], FB_MSGDIR)
+XE_CONF_DIR(fblog, [log files DIR (PREFIX)], FB_LOGDIR)
+XE_CONF_FILE(fblogfilename, [log file name within log dir (firebird.log)], FB_LOGFILENAME, firebird.log)
+XE_CONF_DIR(fbglock, [guardian lock DIR (PREFIX)], FB_GUARDDIR)
+XE_CONF_DIR(fbplugins, [plugins DIR (PREFIX)], FB_PLUGDIR, /plugins)
+
+dnl gpre built-in language support (C/C++ are mandatory)
+GPRE_LANGUAGE_MODULES=""
+AC_ARG_WITH(gpre-ada,
+  [  --with-gpre-ada         support ADA in gpre (default=no)],
+  [case "$withval" in
+     yes) XE_APPEND(ada.cpp,GPRE_LANGUAGE_MODULES)
+          AC_DEFINE(GPRE_ADA, 1, [Define this if GPRE should support ADA]);;
+     no)  ;;
+     *)   AC_MSG_ERROR(bad value '${withval}' for --with-gpre-ada);;
+   esac])
+AC_ARG_WITH(gpre-cobol,
+  [  --with-gpre-cobol       support COBOL in gpre (default=no)],
+  [case "$withval" in
+     yes) XE_APPEND(cob.cpp rmc.cpp,GPRE_LANGUAGE_MODULES)
+          AC_DEFINE(GPRE_COBOL, 1, [Define this if GPRE should support COBOL]);;
+     no)  ;;
+     *)   AC_MSG_ERROR(bad value '${withval}' for --with-gpre-cobol);;
+   esac])
+AC_ARG_WITH(gpre-fortran,
+  [  --with-gpre-fortran     support FORTRAN in gpre (default=no)],
+  [case "$withval" in
+     yes) XE_APPEND(ftn.cpp,GPRE_LANGUAGE_MODULES)
+          AC_DEFINE(GPRE_FORTRAN, 1, [Define this if GPRE should support FORTRAN]);;
+     no)  ;;
+     *)   AC_MSG_ERROR(bad value '${withval}' for --with-gpre-fortran);;
+   esac])
+AC_ARG_WITH(gpre-pascal,
+  [  --with-gpre-pascal      support PASCAL in gpre (default=no)],
+  [case "$withval" in
+     yes) XE_APPEND(pas.cpp,GPRE_LANGUAGE_MODULES)
+          AC_DEFINE(GPRE_PASCAL, 1, [Define this if GPRE should support PASCAL]);;
+     no)  ;;
+     *)   AC_MSG_ERROR(bad value '${withval}' for --with-gpre-pascal);;
+   esac])
+AC_SUBST(GPRE_LANGUAGE_MODULES)
+
+
+
+dnl Checks for programs.
+AC_PROG_AWK
+AC_PROG_CC_STDC
+AC_PROG_GCC_TRADITIONAL
+AC_PROG_CXX
+AC_PROG_CPP
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_LIBTOOL_DLOPEN
+AC_LIBTOOL_WIN32_DLL
+AC_PROG_MAKE_SET
+AC_PROG_LIBTOOL
+
+dnl Check for system header files
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+AC_HEADER_SYS_WAIT
+AC_CHECK_HEADERS(assert.h)
+AC_CHECK_HEADERS(ctype.h)
+AC_CHECK_HEADERS(errno.h)
+AC_CHECK_HEADERS(fcntl.h)
+AC_CHECK_HEADERS(grp.h)
+AC_CHECK_HEADERS(pwd.h)
+AC_CHECK_HEADERS(libio.h)
+AC_CHECK_HEADERS(locale.h)
+AC_CHECK_HEADERS(math.h)
+AC_CHECK_HEADERS(pthread.h)
+AC_CHECK_HEADERS(sys/types.h)
+AC_CHECK_HEADERS(sys/stat.h)
+AC_CHECK_HEADERS(sys/uio.h)
+AC_HEADER_SYS_WAIT
+AC_HEADER_TIME
+AC_CHECK_HEADERS(sys/time.h)
+AC_CHECK_HEADERS(sys/timeb.h)
+AC_CHECK_HEADERS(sys/param.h)
+AC_CHECK_HEADERS(sys/mount.h)
+AC_CHECK_HEADERS(sys/ioctl.h)
+AC_CHECK_HEADERS(sys/select.h)
+AC_CHECK_HEADERS(limits.h)
+AC_CHECK_HEADERS(setjmp.h)
+AC_CHECK_HEADERS(stdarg.h)
+AC_CHECK_HEADERS(stdlib.h)
+AC_CHECK_HEADERS(string.h)
+AC_CHECK_HEADERS(signal.h sys/signal.h sys/siginfo.h)
+AC_CHECK_HEADERS(termio.h termios.h)
+if test "$EDITLINE_FLG" = "Y"; then
+  AC_HEADER_DIRENT
+  AC_DEFINE(HAVE_EDITLINE_H, 1, [Define this if editline is in use])
+fi
+AC_CHECK_HEADERS(unistd.h)
+AC_CHECK_HEADERS(varargs.h)
+AC_CHECK_HEADERS(crypt.h)
+AC_CHECK_HEADERS(netinet/in.h rpc/rpc.h netconfig.h)
+AC_CHECK_HEADERS(rpc/xdr.h,,,[#include <rpc/rpc.h>])
+AC_CHECK_HEADERS(aio.h)
+AC_CHECK_HEADERS(mntent.h mnttab.h sys/mntent.h sys/mnttab.h)
+AC_CHECK_HEADERS(sys/ipc.h sys/file.h)
+AC_CHECK_HEADERS(socket.h sys/socket.h sys/sockio.h winsock2.h)
+AC_CHECK_HEADERS(sys/resource.h)
+AC_CHECK_HEADERS(sys/sem.h)
+AC_CHECK_HEADERS(semaphore.h)
+AC_CHECK_HEADERS(float.h)
+AC_CHECK_HEADERS(atomic.h)
+AC_CHECK_HEADERS(atomic_ops.h)
+AC_CHECK_HEADERS(poll.h)
+AC_CHECK_HEADERS(langinfo.h)
+AC_CHECK_HEADERS(iconv.h)
+AC_CHECK_HEADERS(libio.h)
+
+dnl check for ICU presence
+AC_CHECK_HEADER(unicode/ucnv.h,,AC_MSG_ERROR(ICU support not found - please install development ICU package))
+dnl setting ICU_OK here is done to only avoid default action
+AC_CHECK_LIB(icuuc, main, ICU_OK=yes, AC_MSG_ERROR(ICU support not found - please install development ICU package))
+
+dnl check for tommath presence
+XE_SAVE_ENV()
+LIBS=
+AC_CHECK_HEADER(tommath.h,,AC_MSG_ERROR(Include file for tommath not found - please install development tommath package))
+AC_CHECK_LIB(tommath, mp_init, MATHLIB=-ltommath, AC_MSG_ERROR(Library tommath not found - please install development tommath package))
+XE_RESTORE_ENV()
+AC_SUBST(MATHLIB)
+
+dnl Check for libraries
+AC_SEARCH_LIBS(dlopen, dl)
+AC_CHECK_LIB(m, main)
+if test "$EDITLINE_FLG" = "Y"; then
+	AC_CHECK_LIB(curses, tgetent, TERMLIB=curses, \
+		AC_CHECK_LIB(ncurses, tgetent, TERMLIB=ncurses, \
+			AC_CHECK_LIB(termcap, tgetent, TERMLIB=termcap, \
+				AC_CHECK_LIB(tinfo, tgetent, TERMLIB=tinfo, \
+					AC_MSG_ERROR(termcap support not found)))))
+	AC_SUBST(TERMLIB)
+	XE_APPEND(-l$TERMLIB, LIBS)
+fi
+
+AC_SEARCH_LIBS(inet_aton, resolv)
+
+dnl HP-UX atomic routines are in atomic library, not standard C library.
+dnl If we can't find atomic routines in vendor library, look for atomic_ops.
+AC_SEARCH_LIBS(atomic_inc, atomic,,
+	AC_CHECK_LIB(atomic_ops, main))
+
+
+dnl Check for libraries for static C++ runtime linking
+AC_CHECK_LIB(supc++, main, XE_APPEND(-lsupc++, STATIC_CXXSUPPORT_LIB))
+AC_CHECK_LIB(gcc_eh, main, XE_APPEND(-lgcc_eh, STATIC_CXXSUPPORT_LIB))
+AC_SUBST(STATIC_CXXSUPPORT_LIB)
+
+AC_LANG_PUSH(C++)
+dnl check for INFINITY in math.h
+AC_COMPILE_IFELSE(
+	[AC_LANG_PROGRAM([[#include <math.h>]], [[double x = INFINITY;]])],
+	AC_DEFINE(HAVE_INFINITY, 1, [Define this if INFINITY is defined in math.h]))
+
+dnl check for va_copy() in stdarg.h
+AC_COMPILE_IFELSE(
+	[AC_LANG_PROGRAM([[#include <stdarg.h>
+		void vafun(const char* fmt, ...) {va_list par, par2; va_start(par, fmt); va_copy(par2, par); va_end(par2); va_end(par);}]], 
+		[[return 0;]])],
+	AC_DEFINE(HAVE_VA_COPY, 1, [Define this if va_copy() is defined in stdarg.h]))
+
+if test "$AR_OPT_CHECK" = "true"; then
+dnl if 64-bit mode, then archive tool, ar, needs -X64 option
+    AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM(,[[int lp64 = __64BIT__; ]])],
+        [AR_OPTIONS=-X64],)
+fi
+AC_LANG_POP(C++)
+
+dnl Check for functions
+AC_CHECK_FUNCS(gettimeofday)
+if test "$ac_cv_func_gettimeofday" = "yes"; then
+    AC_MSG_CHECKING(if gettimeofday accepts second (timezone) argument)
+    AC_TRY_COMPILE([#include <sys/time.h>],
+    [struct timeval tp; gettimeofday(&tp, (struct timezone *)0);],
+    [AC_DEFINE(GETTIMEOFDAY_RETURNS_TIMEZONE, 1,
+       [Define this if gettimeofday accepts second (timezone) argument])
+     AC_MSG_RESULT(yes)],
+    [AC_MSG_RESULT(no)])
+  AH_BOTTOM([#ifdef GETTIMEOFDAY_RETURNS_TIMEZONE
+#define GETTIMEOFDAY(x) gettimeofday((x), (struct timezone *)0)
+#else
+#define GETTIMEOFDAY(x) gettimeofday((x))
+#endif])
+fi
+AC_CHECK_FUNCS(time times)
+AC_CHECK_FUNCS(nanosleep)
+AC_SEARCH_LIBS(gethostname,nsl)
+AC_SEARCH_LIBS(gethostbyname,nsl)
+AC_SEARCH_LIBS(connect,socket)
+AC_CHECK_FUNCS(strcasecmp stricmp)
+AC_CHECK_FUNCS(strncasecmp strnicmp)
+if test "$ac_cv_func_strcasecmp" = "no" -a "$ac_cv_func_stricmp" = "no"; then
+  dnl EKU: On SINIX-Z strcasecmp is in libresolv.
+  dnl CVC: Maybe other platforms need this, too? Otherwise, delete the block.
+  AC_CHECK_LIB(resolv, strcasecmp,
+    [XE_APPEND(-lresolv,LIBS)
+     unset ac_cv_func_strcasecmp
+     AC_CHECK_FUNCS(strcasecmp)],, $LIBS)
+fi
+AC_SEARCH_LIBS(dirname, gen)
+AC_CHECK_FUNCS(dirname)
+AC_CHECK_FUNCS(sigaction setitimer)
+AC_CHECK_FUNCS(snprintf vsnprintf)
+AC_CHECK_FUNCS(swab _swab)
+AC_FUNC_MMAP
+AC_FUNC_FORK
+AC_FUNC_SETPGRP
+AC_CHECK_FUNCS(setpgid)
+AC_FUNC_GETPGRP
+AC_CHECK_FUNCS(flock)
+AC_CHECK_FUNCS(dladdr)
+AC_CHECK_FUNCS(initgroups)
+AC_CHECK_FUNCS(getpagesize)
+AC_CHECK_FUNCS(pread pwrite)
+AC_CHECK_FUNCS(getcwd getwd)
+AC_CHECK_FUNCS(setmntent getmntent)
+if test "$ac_cv_func_getmntent" = "yes"; then
+  AC_MSG_CHECKING(if getmntent needs second argument)
+  AC_TRY_COMPILE([#include <stdio.h>
+#include <sys/mnttab.h>],
+  [FILE *f; struct mntent *m; getmntent(f, m);],
+  [AC_DEFINE(GETMNTENT_TAKES_TWO_ARGUMENTS, 1,
+    [Define this if getmntent needs second argument])
+   AC_MSG_RESULT(yes)],
+  [AC_MSG_RESULT(no)])
+fi
+AC_CHECK_FUNCS(setrlimit getrlimit)
+AC_CHECK_FUNCS(tcgetattr strdup)
+AC_CHECK_FUNCS(mkstemp)
+AC_CHECK_FUNCS(pthread_keycreate pthread_key_create)
+AC_CHECK_FUNCS(llrint)
+AC_CHECK_FUNCS(localtime_r)
+AC_CHECK_FUNCS(gmtime_r)
+AC_CHECK_FUNCS(fchmod)
+AC_CHECK_FUNCS(semtimedop)
+AC_CHECK_FUNCS(fegetenv)
+AC_CHECK_FUNCS(strerror_r)
+case $host in
+	*-darwin*)
+		ac_cv_func_fdatasync=no
+		;;
+	*)
+		AC_CHECK_FUNCS(fdatasync fsync)
+		;;
+esac
+AC_CHECK_FUNCS(poll)
+dnl AC_CHECK_FUNCS(AO_compare_and_swap_full)
+AC_COMPILE_IFELSE(
+	[AC_LANG_PROGRAM([[#include <atomic_ops.h>]], [[AO_T x; AO_compare_and_swap_full(&x, 0, 0); return 0;]])],
+	AC_DEFINE(HAVE_AO_COMPARE_AND_SWAP_FULL, 1, [Define this if AO_compare_and_swap_full() is defined in atomic_ops.h]))
+
+dnl Check for time function
+AC_SEARCH_LIBS(clock_gettime, rt)
+AC_CHECK_FUNCS(clock_gettime)
+
+dnl Checks for pthread functions
+AC_CHECK_FUNCS(pthread_mutexattr_setprotocol)
+AC_CHECK_FUNCS(pthread_mutexattr_setrobust_np)
+AC_CHECK_FUNCS(pthread_mutex_consistent_np)
+AC_CHECK_FUNCS(pthread_rwlockattr_setkind_np)
+AC_CHECK_FUNCS(pthread_cancel)
+AC_CHECK_FUNCS(sigset)
+
+dnl Semaphores
+if test "$ac_cv_header_semaphore_h" = "yes"; then
+AC_SEARCH_LIBS(sem_init, rt pthread)
+AC_CHECK_FUNCS(sem_timedwait)
+AC_CHECK_FUNCS(sem_init)
+if test "$ac_cv_func_sem_init" = "yes"; then
+AC_MSG_CHECKING(for working sem_init())
+AC_TRY_RUN([#include <semaphore.h>
+	main () {
+		sem_t s;
+		exit(sem_init(&s,0,0));
+		}
+	],
+[AC_DEFINE(WORKING_SEM_INIT,1,[Define this if sem_init() works on the platform])
+AC_MSG_RESULT(yes)],
+[AC_MSG_RESULT(no)
+AC_SEARCH_LIBS(sem_open, rt)])
+fi
+fi
+
+dnl Some OS place iconv() support in separate library
+if test "$ac_cv_header_iconv_h" = "yes"; then
+AC_SEARCH_LIBS(iconv_open, iconv)
+fi
+
+dnl HPUX has a bug in .h files. To detect it we need C++ here.
+AC_LANG_PUSH(C++)
+AC_LINK_IFELSE(
+	[AC_LANG_PROGRAM([[#include <fcntl.h>]], [[posix_fadvise(0, 0, 0, 0);]])],
+	AC_DEFINE(HAVE_POSIX_FADVISE, 1, [Define this if posix_fadvise() is present on the platform]))
+AC_LANG_POP(C++)
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_C_BIGENDIAN
+AC_C_VOLATILE
+AC_TYPE_SIGNAL
+AC_TYPE_OFF_T
+AC_TYPE_SIZE_T
+AC_TYPE_UID_T
+AC_SYS_LARGEFILE
+if test "$ac_cv_sys_file_offset_bits" = "no"; then
+  AC_MSG_CHECKING(for native large file support)
+  AC_TRY_RUN([#include <unistd.h>
+    main () {
+    exit(!(sizeof(off_t) == 8));
+  }],
+  [ac_cv_sys_file_offset_bits=64; AC_DEFINE(_FILE_OFFSET_BITS,64)
+   AC_MSG_RESULT(yes)],
+  [AC_MSG_RESULT(no)])
+fi
+
+AC_CHECK_SIZEOF(void *)
+VOID_PTR_SIZE=$ac_cv_sizeof_void_p
+AC_SUBST(VOID_PTR_SIZE)
+
+AC_CHECK_SIZEOF(long)
+AC_CHECK_SIZEOF(size_t)
+AC_CHECK_TYPES([socklen_t],,,[#include <sys/socket.h>])
+AH_BOTTOM([#ifndef HAVE_SOCKLEN_T
+typedef int socklen_t;
+#endif])
+AC_CHECK_TYPES([semun])
+if test "$ac_cv_type_semun" = "no"; then
+  AC_MSG_CHECKING(if sem.h defines semun)
+  AC_TRY_COMPILE([#include <sys/types.h>
+      #include <sys/ipc.h>
+      #include <sys/sem.h>],
+  [union semun s;],
+  [ac_cv_type_semun=yes; AC_DEFINE(HAVE_SEMUN) AC_MSG_RESULT(yes)],
+  [AC_MSG_RESULT(no)])
+fi
+
+AC_CHECK_TYPES([struct XDR::xdr_ops],,,[#include <rpc/rpc.h>
+#include <rpc/xdr.h>])
+AC_CHECK_TYPES([struct xdr_ops],,,[#include <rpc/rpc.h>
+#include <rpc/xdr.h>])
+
+dnl AC_STRUCT_DIRENT_D_TYPE
+AC_CHECK_MEMBER([struct dirent.d_type],
+				AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE,1,[Define this if struct dirent has d_type]),,
+				[#include <dirent.h>])
+
+dnl EKU: try to determine the alignment of long and double
+dnl      replaces FB_ALIGNMENT and FB_DOUBLE_ALIGN in src/jrd/common.h
+AC_MSG_CHECKING(alignment of long)
+AC_TRY_RUN([main () {
+  struct s {
+    char a;
+    long long b;
+  };
+  exit((int)&((struct s*)0)->b);
+}], ac_cv_c_alignment=$ac_status, ac_cv_c_alignment=$ac_status)
+AC_MSG_RESULT($ac_cv_c_alignment)
+AC_DEFINE_UNQUOTED(FB_ALIGNMENT, $ac_cv_c_alignment, [Alignment of long])
+
+AC_MSG_CHECKING(alignment of double)
+AC_TRY_RUN([main () {
+  struct s {
+    char a;
+    double b;
+  };
+  exit((int)&((struct s*)0)->b);
+}], ac_cv_c_double_align=$ac_status, ac_cv_c_double_align=$ac_status)
+AC_MSG_RESULT($ac_cv_c_double_align)
+AC_DEFINE_UNQUOTED(FB_DOUBLE_ALIGN, $ac_cv_c_double_align, [Alignment of double])
+
+dnl EKU: don't know how to convert this into an autoconf test:
+dnl      #define FB_ALIGN(n,b) ...
+dnl
+dnl      VMS           (n)                       -> no
+dnl      sun_68k       ((n+1) & ~1)              -> even
+dnl      XENIX         ((n+1) & ~1)              -> even
+dnl      netware_386   ((n+1) & ~1)              -> even
+dnl      all others    ((n + b - 1) & ~(b - 1))  -> multiple of b
+dnl
+dnl      volunters are welcome!
+
+
+
+dnl EKU: Add any platform specific tests below
+case "$PLATFORM" in
+  LINUX)
+    dnl MOD: Check for /proc/self/exe mainly used on linux systems
+    dnl      this is used to determine path to executable file.
+    AC_CHECK_FILES(/proc/self/exe)
+    ;;
+
+  FREEBSD|GENTOOFREEBSD)
+    dnl the AC_CHECK_TYPES for socklen_t doesn't include sys/socket.h
+    dnl so test for socklen_t with sys/socket.h included
+    AC_MSG_CHECKING(if sys/socket.h defines socklen_t)
+    AC_TRY_COMPILE([#include <sys/types.h>
+       #include <sys/socket.h>],
+    [socklen_t s;],
+    [AC_DEFINE(HAVE_SOCKLEN_T) AC_MSG_RESULT(yes)],
+  ...
 
[truncated message content] | 
| 
      
      
      From: <fir...@us...> - 2013-03-26 01:12:39
       | 
| Revision: 57838
          http://sourceforge.net/p/firebird/code/57838
Author:   firebirds
Date:     2013-03-26 01:12:35 +0000 (Tue, 26 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-25 15:59:38 UTC (rev 57837)
+++ firebird/trunk/ChangeLog	2013-03-26 01:12:35 UTC (rev 57838)
@@ -1,3 +1,28 @@
+ 2013-03-25 15:59  asfernandes 
+   M src/include/firebird/UdrCppEngine.h
+Work in progress standardizing the external engines API.
+
+ 2013-03-25 15:34  asfernandes 
+   M src/include/FirebirdApi.h
+   M src/include/firebird/ExternalEngine.h
+   M src/include/firebird/UdrCppEngine.h
+   M src/include/firebird/UdrEngine.h
+   M src/jrd/ExtEngineManager.cpp
+   M src/jrd/ExtEngineManager.h
+   M src/plugins/udr_engine/UdrEngine.cpp
+Work in progress standardizing the external engines API.
+
+ 2013-03-25 11:07  mapopa 
+   A configure.ac
+   D configure.in
+recent version of autoconf/automake/libtool  complain about the firebird
+scripts aclocal: warning: autoconf input should be named 'configure.ac', not
+'configure.in'
+
+ 2013-03-25 01:25  asfernandes 
+   M src/dsql/dsql.cpp
+Fixed problem reported in fb-devel: FB3 and SQL_NULL.
+
  2013-03-24 16:16  dimitr 
    M src/jrd/jrd.cpp
 The minimal patch for CORE-1604 (Error at database creation by user with non-ascii name) and CORE-3243 (CURRENT_USER and MON$USER don't work properly) that seems to work for the trusted authentication, but [at least] the legacy auth module has to be reviewed as it seems to deal with the user name "as is", without checking whether it arrived in UTF8 or not.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-25 15:59:38 UTC (rev 57837)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-26 01:12:35 UTC (rev 57838)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30292
+  FORMAL BUILD NUMBER:30296
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30292"
-#define FILE_VER_STRING "WI-T3.0.0.30292"
-#define LICENSE_VER_STRING "WI-T3.0.0.30292"
-#define FILE_VER_NUMBER 3, 0, 0, 30292
+#define PRODUCT_VER_STRING "3.0.0.30296"
+#define FILE_VER_STRING "WI-T3.0.0.30296"
+#define LICENSE_VER_STRING "WI-T3.0.0.30296"
+#define FILE_VER_NUMBER 3, 0, 0, 30296
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30292"
+#define FB_BUILD_NO "30296"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-25 15:59:38 UTC (rev 57837)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-26 01:12:35 UTC (rev 57838)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30292
+BuildNum=30296
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <asf...@us...> - 2013-03-27 01:34:48
       | 
| Revision: 57840
          http://sourceforge.net/p/firebird/code/57840
Author:   asfernandes
Date:     2013-03-27 01:34:44 +0000 (Wed, 27 Mar 2013)
Log Message:
-----------
Fixed CORE-4068 - create package fails on creating header as soon as there is at least 1 procedure name.
Modified Paths:
--------------
    firebird/trunk/builds/posix/Makefile.in.plugins_examples
    firebird/trunk/src/jrd/ExtEngineManager.cpp
    firebird/trunk/src/jrd/Function.epp
    firebird/trunk/src/jrd/Routine.cpp
    firebird/trunk/src/jrd/Routine.h
    firebird/trunk/src/jrd/met.epp
Modified: firebird/trunk/builds/posix/Makefile.in.plugins_examples
===================================================================
--- firebird/trunk/builds/posix/Makefile.in.plugins_examples	2013-03-27 01:34:10 UTC (rev 57839)
+++ firebird/trunk/builds/posix/Makefile.in.plugins_examples	2013-03-27 01:34:44 UTC (rev 57840)
@@ -52,8 +52,7 @@
 
 .PHONY: all udrcpp_example dc_example kh_example
 
-#all: udrcpp_example dc_example kh_example
-all: dc_example kh_example
+all: udrcpp_example dc_example kh_example
 
 
 UDR_Objects = $(call makeObjects,../examples/udr,UdrCppExample.cpp)
Modified: firebird/trunk/src/jrd/ExtEngineManager.cpp
===================================================================
--- firebird/trunk/src/jrd/ExtEngineManager.cpp	2013-03-27 01:34:10 UTC (rev 57839)
+++ firebird/trunk/src/jrd/ExtEngineManager.cpp	2013-03-27 01:34:44 UTC (rev 57840)
@@ -439,7 +439,7 @@
 
 	if (relation)
 	{
-		format = Routine::createFormat(pool, metadata->triggerFields);
+		format = Routine::createFormat(pool, metadata->triggerFields, false);
 
 		for (unsigned i = 0; i < format->fmt_count / 2; ++i)
 			fieldsPos.add(i);
@@ -671,8 +671,8 @@
 
 	try
 	{
-		udf->setInputFormat(Routine::createFormat(pool, metadata->inputParameters));
-		udf->setOutputFormat(Routine::createFormat(pool, metadata->outputParameters));
+		udf->setInputFormat(Routine::createFormat(pool, metadata->inputParameters, false));
+		udf->setOutputFormat(Routine::createFormat(pool, metadata->outputParameters, false));
 
 		udf->fun_external = FB_NEW(getPool()) Function(tdbb, this, attInfo->engine,
 			metadata.release(), externalFunction, udf);
@@ -744,8 +744,8 @@
 
 	try
 	{
-		prc->setInputFormat(Routine::createFormat(pool, metadata->inputParameters));
-		prc->setOutputFormat(Routine::createFormat(pool, metadata->outputParameters));
+		prc->setInputFormat(Routine::createFormat(pool, metadata->inputParameters, false));
+		prc->setOutputFormat(Routine::createFormat(pool, metadata->outputParameters, false));
 
 		prc->setExternal(FB_NEW(getPool()) Procedure(tdbb, this, attInfo->engine,
 			metadata.release(), externalProcedure, prc));
Modified: firebird/trunk/src/jrd/Function.epp
===================================================================
--- firebird/trunk/src/jrd/Function.epp	2013-03-27 01:34:10 UTC (rev 57839)
+++ firebird/trunk/src/jrd/Function.epp	2013-03-27 01:34:44 UTC (rev 57840)
@@ -374,58 +374,55 @@
 			function->fun_external = NULL;
 			function->setStatement(NULL);
 
-			if (!X.RDB$ENGINE_NAME.NULL || !X.RDB$FUNCTION_BLR.NULL)
+			if (!X.RDB$ENGINE_NAME.NULL)
 			{
-				if (!X.RDB$ENGINE_NAME.NULL)
+				HalfStaticArray<UCHAR, 512> body;
+
+				if (!X.RDB$FUNCTION_SOURCE.NULL)
 				{
-					HalfStaticArray<UCHAR, 512> body;
+					blb* const blob = blb::open(tdbb, sysTransaction, &X.RDB$FUNCTION_SOURCE);
+					const ULONG len = blob->BLB_get_data(tdbb,
+						body.getBuffer(blob->blb_length + 1), blob->blb_length + 1);
+					body[MIN(blob->blb_length, len)] = 0;
+				}
+				else
+					body.getBuffer(1)[0] = 0;
 
-					if (!X.RDB$FUNCTION_SOURCE.NULL)
-					{
-						blb* const blob = blb::open(tdbb, sysTransaction, &X.RDB$FUNCTION_SOURCE);
-						const ULONG len = blob->BLB_get_data(tdbb,
-							body.getBuffer(blob->blb_length + 1), blob->blb_length + 1);
-						body[MIN(blob->blb_length, len)] = 0;
-					}
-					else
-						body.getBuffer(1)[0] = 0;
+				dbb->dbb_extManager.makeFunction(tdbb, function, X.RDB$ENGINE_NAME,
+					(X.RDB$ENTRYPOINT.NULL ? "" : X.RDB$ENTRYPOINT), (char*) body.begin());
 
-					dbb->dbb_extManager.makeFunction(tdbb, function, X.RDB$ENGINE_NAME,
-						(X.RDB$ENTRYPOINT.NULL ? "" : X.RDB$ENTRYPOINT), (char*) body.begin());
+				if (!function->fun_external)
+					function->setDefined(false);
+			}
+			else if (!X.RDB$FUNCTION_BLR.NULL)
+			{
+				MemoryPool* const csb_pool = attachment->createPool();
+				Jrd::ContextPoolHolder context(tdbb, csb_pool);
 
-					if (!function->fun_external)
-						function->setDefined(false);
-				}
-				else
+				try
 				{
-					MemoryPool* const csb_pool = attachment->createPool();
-					Jrd::ContextPoolHolder context(tdbb, csb_pool);
+					AutoPtr<CompilerScratch> csb(CompilerScratch::newCsb(*csb_pool, 5));
 
+					if (!X.RDB$DEBUG_INFO.NULL)
+						DBG_parse_debug_info(tdbb, &X.RDB$DEBUG_INFO, *csb->csb_dbg_info);
+
 					try
 					{
-						AutoPtr<CompilerScratch> csb(CompilerScratch::newCsb(*csb_pool, 5));
-
-						if (!X.RDB$DEBUG_INFO.NULL)
-							DBG_parse_debug_info(tdbb, &X.RDB$DEBUG_INFO, *csb->csb_dbg_info);
-
-						try
-						{
-							MET_parse_routine_blr(tdbb, function, &X.RDB$FUNCTION_BLR, csb);
-						}
-						catch (const Exception&)
-						{
-							const string name = function->getName().toString();
-							status_exception::raise(Arg::Gds(isc_bad_fun_BLR) << Arg::Str(name));
-						}
+						MET_parse_routine_blr(tdbb, function, &X.RDB$FUNCTION_BLR, csb);
 					}
 					catch (const Exception&)
 					{
-						attachment->deletePool(csb_pool);
-						throw;
+						const string name = function->getName().toString();
+						status_exception::raise(Arg::Gds(isc_bad_fun_BLR) << Arg::Str(name));
 					}
+				}
+				catch (const Exception&)
+				{
+					attachment->deletePool(csb_pool);
+					throw;
+				}
 
-					function->getStatement()->function = function;
-				}
+				function->getStatement()->function = function;
 			}
 			else if (!X.RDB$MODULE_NAME.NULL && !X.RDB$ENTRYPOINT.NULL)
 			{
@@ -444,7 +441,17 @@
 					function->setDefined(false);
 			}
 			else
+			{
+				RefPtr<MsgMetadata> inputMetadata(createMetadata(function->getInputFields()));
+				inputMetadata->release();
+				function->setInputFormat(createFormat(function->getPool(), inputMetadata, false));
+
+				RefPtr<MsgMetadata> outputMetadata(createMetadata(function->getOutputFields()));
+				outputMetadata->release();
+				function->setOutputFormat(createFormat(function->getPool(), outputMetadata, true));
+
 				function->setImplemented(false);
+			}
 
 			if (X.RDB$VALID_BLR.NULL || X.RDB$VALID_BLR == FALSE)
 				valid_blr = false;
Modified: firebird/trunk/src/jrd/Routine.cpp
===================================================================
--- firebird/trunk/src/jrd/Routine.cpp	2013-03-27 01:34:10 UTC (rev 57839)
+++ firebird/trunk/src/jrd/Routine.cpp	2013-03-27 01:34:44 UTC (rev 57840)
@@ -48,14 +48,14 @@
 }
 
 // Create a Format based on an IMessageMetadata.
-Format* Routine::createFormat(MemoryPool& pool, IMessageMetadata* params)
+Format* Routine::createFormat(MemoryPool& pool, IMessageMetadata* params, bool addEof)
 {
 	LocalStatus status;
 
 	unsigned count = params->getCount(&status);
 	status.check();
 
-	Format* format = Format::newFormat(pool, count * 2);
+	Format* format = Format::newFormat(pool, count * 2 + (addEof ? 1 : 0));
 	unsigned runOffset = 0;
 
 	dsc* desc = format->fmt_desc.begin();
@@ -85,6 +85,13 @@
 		++desc;
 	}
 
+	if (addEof)
+	{
+		// Next item is aligned on USHORT, so as the previous one.
+		desc->makeShort(0, (SSHORT*)(IPTR) runOffset);
+		runOffset += sizeof(USHORT);
+	}
+
 	format->fmt_length = runOffset;
 
 	return format;
Modified: firebird/trunk/src/jrd/Routine.h
===================================================================
--- firebird/trunk/src/jrd/Routine.h	2013-03-27 01:34:10 UTC (rev 57839)
+++ firebird/trunk/src/jrd/Routine.h	2013-03-27 01:34:44 UTC (rev 57840)
@@ -62,7 +62,7 @@
 	public:
 		static Firebird::MsgMetadata* createMetadata(
 			const Firebird::Array<NestConst<Parameter> >& parameters);
-		static Format* createFormat(MemoryPool& pool, Firebird::IMessageMetadata* params);
+		static Format* createFormat(MemoryPool& pool, Firebird::IMessageMetadata* params, bool addEof);
 
 	public:
 		USHORT getId() const
Modified: firebird/trunk/src/jrd/met.epp
===================================================================
--- firebird/trunk/src/jrd/met.epp	2013-03-27 01:34:10 UTC (rev 57839)
+++ firebird/trunk/src/jrd/met.epp	2013-03-27 01:34:44 UTC (rev 57840)
@@ -3062,45 +3062,64 @@
 
 			if (!external)
 			{
-				MemoryPool* csb_pool = attachment->createPool();
+				if (!P.RDB$PROCEDURE_BLR.NULL)
+				{
+					MemoryPool* csb_pool = attachment->createPool();
 
-				Jrd::ContextPoolHolder context(tdbb, csb_pool);
-				CompilerScratch* csb = CompilerScratch::newCsb(*tdbb->getDefaultPool(), 5);
+					Jrd::ContextPoolHolder context(tdbb, csb_pool);
+					CompilerScratch* csb = CompilerScratch::newCsb(*tdbb->getDefaultPool(), 5);
 
-				if (!P.RDB$DEBUG_INFO.NULL)
-					DBG_parse_debug_info(tdbb, &P.RDB$DEBUG_INFO, *csb->csb_dbg_info);
+					if (!P.RDB$DEBUG_INFO.NULL)
+						DBG_parse_debug_info(tdbb, &P.RDB$DEBUG_INFO, *csb->csb_dbg_info);
 
-				try
-				{
-					MET_parse_routine_blr(tdbb, procedure,
-						(P.RDB$PROCEDURE_BLR.NULL ? NULL : &P.RDB$PROCEDURE_BLR), csb);
-				}
-				catch (const Exception&)
-				{
-					delete csb;
+					try
+					{
+						MET_parse_routine_blr(tdbb, procedure,
+							(P.RDB$PROCEDURE_BLR.NULL ? NULL : &P.RDB$PROCEDURE_BLR), csb);
+					}
+					catch (const Exception&)
+					{
+						delete csb;
 
-					if (procedure->getStatement())
-						procedure->releaseStatement(tdbb);
-					else
-						attachment->deletePool(csb_pool);
+						if (procedure->getStatement())
+							procedure->releaseStatement(tdbb);
+						else
+							attachment->deletePool(csb_pool);
 
-					ERR_post(Arg::Gds(isc_bad_proc_BLR) << Arg::Str(procedure->getName().toString()));
-				}
+						ERR_post(Arg::Gds(isc_bad_proc_BLR) << Arg::Str(procedure->getName().toString()));
+					}
 
-				procedure->getStatement()->procedure = procedure;
-				for (size_t i = 0; i < csb->csb_rpt.getCount(); i++)
-				{
-					MessageNode* node = csb->csb_rpt[i].csb_message;
+					procedure->getStatement()->procedure = procedure;
+					for (size_t i = 0; i < csb->csb_rpt.getCount(); i++)
+					{
+						MessageNode* node = csb->csb_rpt[i].csb_message;
 
-					/***
-					if (node)
-					{
-						if (node->messageNumber == 1)
-							procedure->prc_output_msg = node;
+						/***
+						if (node)
+						{
+							if (node->messageNumber == 1)
+								procedure->prc_output_msg = node;
+						}
+						***/
 					}
-					***/
+					delete csb;
 				}
-				delete csb;
+				else
+				{
+					RefPtr<MsgMetadata> inputMetadata(
+						Routine::createMetadata(procedure->getInputFields()));
+					inputMetadata->release();
+					procedure->setInputFormat(
+						Routine::createFormat(procedure->getPool(), inputMetadata, false));
+
+					RefPtr<MsgMetadata> outputMetadata(
+						Routine::createMetadata(procedure->getOutputFields()));
+					outputMetadata->release();
+					procedure->setOutputFormat(
+						Routine::createFormat(procedure->getPool(), outputMetadata, true));
+
+					procedure->setImplemented(false);
+				}
 			}
 
 			if (P.RDB$VALID_BLR.NULL || P.RDB$VALID_BLR == FALSE)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ale...@us...> - 2013-03-27 11:45:05
       | 
| Revision: 57841
          http://sourceforge.net/p/firebird/code/57841
Author:   alexpeshkoff
Date:     2013-03-27 11:45:02 +0000 (Wed, 27 Mar 2013)
Log Message:
-----------
Added operator include to config files
Modified Paths:
--------------
    firebird/trunk/lang_helpers/gds_codes.ftn
    firebird/trunk/lang_helpers/gds_codes.pas
    firebird/trunk/src/common/config/ConfigCache.cpp
    firebird/trunk/src/common/config/ConfigCache.h
    firebird/trunk/src/common/config/config.cpp
    firebird/trunk/src/common/config/config.h
    firebird/trunk/src/common/config/config_file.cpp
    firebird/trunk/src/common/config/config_file.h
    firebird/trunk/src/common/db_alias.cpp
    firebird/trunk/src/common/os/path_utils.h
    firebird/trunk/src/common/os/posix/path_utils.cpp
    firebird/trunk/src/include/gen/codetext.h
    firebird/trunk/src/include/gen/iberror.h
    firebird/trunk/src/include/gen/msgs.h
    firebird/trunk/src/include/gen/sql_code.h
    firebird/trunk/src/include/gen/sql_state.h
    firebird/trunk/src/msgs/facilities2.sql
    firebird/trunk/src/msgs/messages2.sql
    firebird/trunk/src/msgs/system_errors2.sql
    firebird/trunk/src/remote/server/os/posix/inet_server.cpp
    firebird/trunk/src/remote/server/os/win32/srvr_w32.cpp
    firebird/trunk/src/utilities/ntrace/TraceConfiguration.cpp
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/lang_helpers/gds_codes.ftn	2013-03-27 11:45:02 UTC (rev 57841)
@@ -1516,6 +1516,16 @@
       PARAMETER (GDS__no_output_format                 = 335545051)
       INTEGER*4 GDS__item_finish                     
       PARAMETER (GDS__item_finish                      = 335545052)
+      INTEGER*4 GDS__miss_config                     
+      PARAMETER (GDS__miss_config                      = 335545053)
+      INTEGER*4 GDS__conf_line                       
+      PARAMETER (GDS__conf_line                        = 335545054)
+      INTEGER*4 GDS__conf_include                    
+      PARAMETER (GDS__conf_include                     = 335545055)
+      INTEGER*4 GDS__include_depth                   
+      PARAMETER (GDS__include_depth                    = 335545056)
+      INTEGER*4 GDS__include_miss                    
+      PARAMETER (GDS__include_miss                     = 335545057)
       INTEGER*4 GDS__gfix_db_name                    
       PARAMETER (GDS__gfix_db_name                     = 335740929)
       INTEGER*4 GDS__gfix_invalid_sw                 
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/lang_helpers/gds_codes.pas	2013-03-27 11:45:02 UTC (rev 57841)
@@ -765,6 +765,11 @@
 	gds_wrong_message_length             = 335545050;
 	gds_no_output_format                 = 335545051;
 	gds_item_finish                      = 335545052;
+	gds_miss_config                      = 335545053;
+	gds_conf_line                        = 335545054;
+	gds_conf_include                     = 335545055;
+	gds_include_depth                    = 335545056;
+	gds_include_miss                     = 335545057;
 	gds_gfix_db_name                     = 335740929;
 	gds_gfix_invalid_sw                  = 335740930;
 	gds_gfix_incmp_sw                    = 335740932;
Modified: firebird/trunk/src/common/config/ConfigCache.cpp
===================================================================
--- firebird/trunk/src/common/config/ConfigCache.cpp	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/src/common/config/ConfigCache.cpp	2013-03-27 11:45:02 UTC (rev 57841)
@@ -28,6 +28,8 @@
 #include "../common/config/ConfigCache.h"
 #include "../common/config/config_file.h"
 
+#include "gen/iberror.h"
+
 #include <sys/types.h>
 #include <sys/stat.h>
 
@@ -37,39 +39,50 @@
 #include <errno.h>
 #endif
 
-ConfigCache::ConfigCache(Firebird::MemoryPool& p, const Firebird::PathName& fName)
-	: PermanentStorage(p), fileName(getPool(), fName), fileTime(0)
-{
-}
+using namespace Firebird;
 
+ConfigCache::ConfigCache(MemoryPool& p, const PathName& fName)
+	: PermanentStorage(p), files(FB_NEW(getPool()) ConfigCache::File(getPool(), fName))
+{ }
+
 ConfigCache::~ConfigCache()
 {
+	delete files;
 }
 
 void ConfigCache::checkLoadConfig()
 {
-	time_t newTime = getTime();
-	if (fileTime == newTime)
-	{
-		return;
+	{	// scope
+		ReadLockGuard guard(rwLock, "ConfigCache::checkLoadConfig");
+		if (files->checkLoadConfig(false))
+		{
+			return;
+		}
 	}
 
-	Firebird::WriteLockGuard guard(rwLock, "ConfigCache::checkLoadConfig");
-
+	WriteLockGuard guard(rwLock, "ConfigCache::checkLoadConfig");
 	// may be someone already reloaded?
-	newTime = getTime();
-	if (fileTime == newTime)
+	if (files->checkLoadConfig(true))
 	{
 		return;
 	}
 
-	fileTime = newTime;
-
+	files->trim();
 	loadConfig();
 }
 
-time_t ConfigCache::getTime()
+void ConfigCache::addFile(const Firebird::PathName& fName)
 {
+	files->add(fName);
+}
+
+Firebird::PathName ConfigCache::getFileName()
+{
+	return files->fileName;
+}
+
+time_t ConfigCache::File::getTime()
+{
 	struct stat st;
 	if (stat(fileName.c_str(), &st) != 0)
 	{
@@ -78,7 +91,58 @@
 			// config file is missing, but this is not our problem
 			return 0;
 		}
-		Firebird::system_call_failed::raise("stat");
+		system_call_failed::raise("stat");
 	}
 	return st.st_mtime;
 }
+
+ConfigCache::File::File(MemoryPool& p, const PathName& fName)
+	: PermanentStorage(p), fileName(getPool(), fName), fileTime(0), next(NULL)
+{ }
+
+ConfigCache::File::~File()
+{
+	delete next;
+}
+
+bool ConfigCache::File::checkLoadConfig(bool set)
+{
+	time_t newTime = getTime();
+	if (fileTime == newTime)
+	{
+		return next ? next->checkLoadConfig(set) : true;
+	}
+
+	if (set)
+	{
+		fileTime = newTime;
+		if (next)
+		{
+			next->checkLoadConfig(set);
+		}
+	}
+	return false;
+}
+
+void ConfigCache::File::add(const PathName& fName)
+{
+	if (fName == fileName)
+	{
+		return;
+	}
+
+	if (next)
+	{
+		next->add(fName);
+	}
+	else
+	{
+		next = FB_NEW(getPool()) ConfigCache::File(getPool(), fName);
+	}
+}
+
+void ConfigCache::File::trim()
+{
+	delete next;
+	next = NULL;
+}
Modified: firebird/trunk/src/common/config/ConfigCache.h
===================================================================
--- firebird/trunk/src/common/config/ConfigCache.h	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/src/common/config/ConfigCache.h	2013-03-27 11:45:02 UTC (rev 57841)
@@ -39,19 +39,35 @@
 	virtual ~ConfigCache();
 
 	void checkLoadConfig();
+	void addFile(const Firebird::PathName& fName);
+	Firebird::PathName getFileName();
 
 protected:
 	virtual void loadConfig() = 0;
 
 private:
-	time_t getTime();
+	class File : public Firebird::PermanentStorage
+	{
+	public:
+		File(Firebird::MemoryPool& p, const Firebird::PathName& fName);
+		~File();
 
+		bool checkLoadConfig(bool set);
+		void add(const Firebird::PathName& fName);
+		void trim();
+
+	public:
+		Firebird::PathName fileName;
+
+	private:
+		volatile time_t fileTime;
+		File* next;
+		time_t getTime();
+	};
+	File* files;
+
 public:
 	Firebird::RWLock rwLock;
-	Firebird::PathName fileName;
-
-private:
-	volatile time_t fileTime;
 };
 
 #endif // COMMON_CONFIG_CASHE_H
Modified: firebird/trunk/src/common/config/config.cpp
===================================================================
--- firebird/trunk/src/common/config/config.cpp	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/src/common/config/config.cpp	2013-03-27 11:45:02 UTC (rev 57841)
@@ -45,15 +45,25 @@
 {
 public:
 	explicit ConfigImpl(Firebird::MemoryPool& p)
-		: Firebird::PermanentStorage(p), confMessage(getPool())
+		: Firebird::PermanentStorage(p), missConf(false)
 	{
-		ConfigFile file(fb_utils::getPrefix(fb_utils::FB_DIR_CONF, CONFIG_FILE));
-		defaultConfig = new Config(file);
-
-		if (file.getMessage())
+		try
 		{
-			confMessage = file.getMessage();
+			ConfigFile file(fb_utils::getPrefix(fb_utils::FB_DIR_CONF, CONFIG_FILE));
+			defaultConfig = new Config(file);
 		}
+		catch (const Firebird::status_exception& ex)
+		{
+			if (ex.value()[1] != isc_miss_config)
+			{
+				throw;
+			}
+
+			missConf = true;
+
+			ConfigFile file(ConfigFile::USE_TEXT, "");
+			defaultConfig = new Config(file);
+		}
 	}
 
 /*	void changeDefaultConfig(Config* newConfig)
@@ -66,9 +76,9 @@
 		return defaultConfig;
 	}
 
-	const char* getMessage()
+	bool missFirebirdConf()
 	{
-		return confMessage.nullStr();
+		return missConf;
 	}
 
 private:
@@ -77,7 +87,7 @@
     ConfigImpl(const ConfigImpl&);
     void operator=(const ConfigImpl&);
 
-	Firebird::string confMessage;
+	bool missConf;
 };
 
 /******************************************************************************
@@ -196,7 +206,7 @@
 		if (entries[i].data_type == TYPE_STRING && values[i])
 		{
 			ConfigFile::String expand((const char*)values[i]);
-			if (file.macroParse(expand) && expand != (const char*) values[i])
+			if (file.macroParse(expand, NULL) && expand != (const char*) values[i])
 			{
 				ConfigFile::String& saved(tempStrings.add());
 				saved = expand;
@@ -313,9 +323,9 @@
 	return firebirdConf().getDefaultConfig();
 }
 
-const char* Config::getMessage()
+bool Config::missFirebirdConf()
 {
-	return firebirdConf().getMessage();
+	return firebirdConf().missFirebirdConf();
 }
 
 const char* Config::getInstallDirectory()
Modified: firebird/trunk/src/common/config/config.h
===================================================================
--- firebird/trunk/src/common/config/config.h	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/src/common/config/config.h	2013-03-27 11:45:02 UTC (rev 57841)
@@ -185,9 +185,9 @@
 	Config(const ConfigFile& file, const Config& base);		// use to build db-specific config
 	~Config();
 
-	// Check for errors in .conf file
+	// Check for missing firebird.conf
 
-	static const char* getMessage();
+	static bool missFirebirdConf();
 
 	// Interface to support command line root specification.
 	// This ugly solution was required to make it possible to specify root
Modified: firebird/trunk/src/common/config/config_file.cpp
===================================================================
--- firebird/trunk/src/common/config/config_file.cpp	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/src/common/config/config_file.cpp	2013-03-27 11:45:02 UTC (rev 57841)
@@ -26,7 +26,9 @@
 #include "../common/classes/auto.h"
 #include "../common/config/config_file.h"
 #include "../common/config/config.h"
+#include "../common/config/ConfigCache.h"
 #include "../common/os/path_utils.h"
+#include "../common/ScanDir.h"
 #include <stdio.h>
 
 #ifdef HAVE_STDLIB_H
@@ -37,16 +39,36 @@
 
 namespace {
 
+bool hasWildCards(const PathName& s)
+{
+	return s.find_first_of("?*") != PathName::npos;
+}
+
+void strip2slashes(ConfigFile::String& to)
+{
+	// strip double slashes
+	char sep2[3];
+	sep2[0] = PathUtils::dir_sep;
+	sep2[1] = sep2[0];
+	sep2[2] = 0;
+
+	size_t pos = 0;
+	while((pos = to.find(sep2, pos)) != PathName::npos)
+	{
+		to.erase(pos, 1);
+	}
+}
+
 class MainStream : public ConfigFile::Stream
 {
 public:
-	MainStream(const char* fname, PathName& errString)
-		: file(fopen(fname, "rt")), l(0)
+	MainStream(const char* fname)
+		: file(fopen(fname, "rt")), fileName(fname), l(0)
 	{
 		if (!file)
 		{
 			// config file does not exist
-			errString.printf("Missing configuration file: %s", fname);
+			(Arg::Gds(isc_miss_config) << fname << Arg::OsError()).raise();
 		}
 	}
 
@@ -65,7 +87,10 @@
 			{
 				return false;
 			}
-			input.LoadFromFile(file);
+			if (!input.LoadFromFile(file))
+			{
+				return false;
+			}
 			++l;
 			input.alltrim(" \t\r");
 		} while (input.isEmpty() || input[0] == '#');
@@ -74,8 +99,19 @@
 		return true;
 	}
 
+	bool active()
+	{
+		return file.hasData();
+	}
+
+	const char* getFileName() const
+	{
+		return fileName.c_str();
+	}
+
 private:
 	AutoPtr<FILE, FileClose> file;
+	Firebird::PathName fileName;
 	unsigned int l;
 };
 
@@ -125,6 +161,11 @@
 		return true;
 	}
 
+	const char* getFileName() const
+	{
+		return NULL;
+	}
+
 private:
 	const char* s;
 	unsigned int l;
@@ -133,8 +174,8 @@
 class SubStream : public ConfigFile::Stream
 {
 public:
-	SubStream()
-		: cnt(0)
+	SubStream(const char* fName)
+		: fileName(fName), cnt(0)
 	{ }
 
 	bool getLine(ConfigFile::String& input, unsigned int& line)
@@ -157,65 +198,71 @@
 		data.push(Line(input, line));
 	}
 
+	const char* getFileName() const
+	{
+		return fileName;
+	}
+
 private:
 	typedef Pair<Left<ConfigFile::String, unsigned int> > Line;
 	ObjectsArray<Line> data;
+	const char* fileName;
 	size_t cnt;
 };
 
 } // anonymous namespace
 
 
-ConfigFile::ConfigFile(const Firebird::PathName& file, USHORT fl)
+ConfigFile::ConfigFile(const Firebird::PathName& file, USHORT fl, ConfigCache* cache)
 	: AutoStorage(),
-	  configFile(getPool(), file),
 	  parameters(getPool()),
 	  flags(fl),
-	  lastMessage(getPool())
+	  includeLimit(0),
+	  filesCache(cache)
 {
-	MainStream s(configFile.c_str(), lastMessage);
+	MainStream s(file.c_str());
 	parse(&s);
 }
 
-ConfigFile::ConfigFile(const char* file, USHORT fl)
+ConfigFile::ConfigFile(const char* file, USHORT fl, ConfigCache* cache)
 	: AutoStorage(),
-	  configFile(getPool(), String(file)),
 	  parameters(getPool()),
 	  flags(fl),
-	  lastMessage(getPool())
+	  includeLimit(0),
+	  filesCache(cache)
 {
-	MainStream s(configFile.c_str(), lastMessage);
+	MainStream s(file);
 	parse(&s);
 }
 
 ConfigFile::ConfigFile(UseText, const char* configText, USHORT fl)
 	: AutoStorage(),
-	  configFile(getPool()),
 	  parameters(getPool()),
 	  flags(fl),
-	  lastMessage(getPool())
+	  includeLimit(0),
+	  filesCache(NULL)
 {
 	TextStream s(configText);
 	parse(&s);
 }
 
-ConfigFile::ConfigFile(MemoryPool& p, const Firebird::PathName& file, USHORT fl)
+ConfigFile::ConfigFile(MemoryPool& p, const Firebird::PathName& file, USHORT fl, ConfigCache* cache)
 	: AutoStorage(p),
-	  configFile(getPool(), file),
 	  parameters(getPool()),
 	  flags(fl),
-	  lastMessage(getPool())
+	  includeLimit(0),
+	  filesCache(cache)
 {
-	MainStream s(configFile.c_str(), lastMessage);
+	MainStream s(file.c_str());
 	parse(&s);
 }
 
-ConfigFile::ConfigFile(MemoryPool& p, ConfigFile::Stream* s, USHORT fl, const Firebird::PathName& file)
+ConfigFile::ConfigFile(MemoryPool& p, ConfigFile::Stream* s, USHORT fl)
 	: AutoStorage(p),
-	  configFile(getPool(), file),
 	  parameters(getPool()),
 	  flags(fl),
-	  lastMessage(getPool())
+	  includeLimit(0),
+	  filesCache(NULL)
 {
 	parse(s);
 }
@@ -229,12 +276,14 @@
  *	Parse line, taking quotes into account
  */
 
-ConfigFile::LineType ConfigFile::parseLine(const String& input, KeyType& key, String& value)
+ConfigFile::LineType ConfigFile::parseLine(const char* fileName, const String& input, KeyType& key, String& value)
 {
 	int inString = 0;
 	String::size_type valStart = 0;
 	String::size_type eol = String::npos;
 	bool hasSub = false;
+	const char* include = "include";
+	const unsigned incLen = strlen(include);
 
 	for (String::size_type n = 0; n < input.length(); ++n)
 	{
@@ -271,6 +320,22 @@
 
 		case ' ':
 		case '\t':
+			if (n == incLen && key.isEmpty())
+			{
+				KeyType inc = input.substr(0, n).ToNoCaseString();
+				if (inc == include)
+				{
+					value = input.substr(n);
+					value.alltrim(" \t\r");
+
+					if (!macroParse(value, fileName))
+					{
+						return LINE_BAD;
+					}
+					return LINE_INCLUDE;
+				}
+			}
+			// fall down ...
 		case '\r':
 			break;
 
@@ -317,7 +382,7 @@
 	}
 
 	// Now expand macros in value
-	if (!macroParse(value))
+	if (!macroParse(value, fileName))
 	{
 		return LINE_BAD;
 	}
@@ -330,7 +395,7 @@
  *	Substitute macro values in a string
  */
 
-bool ConfigFile::macroParse(String& value) const
+bool ConfigFile::macroParse(String& value, const char* fileName) const
 {
 	String::size_type subFrom;
 
@@ -341,7 +406,7 @@
 		{
 			String macro;
 			String m = value.substr(subFrom + 2, subTo - (subFrom + 2));
-			if (! translate(m, macro))
+			if (! translate(fileName, m, macro))
 			{
 				return false;
 			}
@@ -353,6 +418,7 @@
 		}
 	}
 
+	strip2slashes(value);
 	return true;
 }
 
@@ -361,7 +427,7 @@
  *	Find macro value
  */
 
-bool ConfigFile::translate(const String& from, String& to) const
+bool ConfigFile::translate(const char* fileName, const String& from, String& to) const
 {
 	if (from == "root")
 	{
@@ -373,28 +439,28 @@
 	}
 	else if (from == "this")
 	{
-		if (configFile.isEmpty())
+		if (!fileName)
 		{
 			return false;
 		}
 
-		PathName tempPath = configFile;
+		PathName tempPath(fileName);
 
 #ifdef UNIX
 		if (PathUtils::isSymLink(tempPath))
 		{
 			// If $(this) is a symlink, expand it.
 			TEXT temp[MAXPATHLEN];
-			const int n = readlink(configFile.c_str(), temp, sizeof(temp));
+			const int n = readlink(fileName, temp, sizeof(temp));
 
-			if (n != -1 && n < sizeof(temp))
+			if (n != -1 && unsigned(n) < sizeof(temp))
 			{
 				tempPath = temp;
 
 				if (PathUtils::isRelative(tempPath))
 				{
 					PathName parent;
-					PathUtils::splitLastComponent(parent, tempPath, configFile);
+					PathUtils::splitLastComponent(parent, tempPath, fileName);
 					PathUtils::concatPath(tempPath, parent, temp);
 				}
 			}
@@ -460,10 +526,9 @@
  *	Take into an account fault line
  */
 
-void ConfigFile::badLine(const String& line)
+void ConfigFile::badLine(const char* fileName, const String& line)
 {
-	lastMessage.printf("%s: illegal line <%s>",
-		(configFile.hasData() ? configFile.c_str() : "Passed text"), line.c_str());
+	(Arg::Gds(isc_conf_line) << (fileName ? fileName : "Passed text") << line).raise();
 }
 
 /******************************************************************************
@@ -476,28 +541,33 @@
 	String inputLine;
 	Parameter* previous = NULL;
 	unsigned int line;
+	const char* streamName = stream->getFileName();
 
 	while (stream->getLine(inputLine, line))
 	{
 		Parameter current;
 		current.line = line;
 
-		switch (parseLine(inputLine, current.name, current.value))
+		switch (parseLine(streamName, inputLine, current.name, current.value))
 		{
 		case LINE_BAD:
-			badLine(inputLine);
+			badLine(streamName, inputLine);
 			return;
 
 		case LINE_REGULAR:
 			if (current.name.isEmpty())
 			{
-				badLine(inputLine);
+				badLine(streamName, inputLine);
 				return;
 			}
 
 			previous = ¶meters[parameters.add(current)];
 			break;
 
+		case LINE_INCLUDE:
+			include(streamName, current.value.ToPathName());
+			break;
+
 		case LINE_START_SUB:
 			if (current.name.hasData())
 			{
@@ -506,7 +576,7 @@
 			}
 
 			{ // subconf scope
-				SubStream subStream;
+				SubStream subStream(stream->getFileName());
 				while (stream->getLine(inputLine, line))
 				{
 					if (inputLine[0] == '}')
@@ -515,7 +585,7 @@
 						s.ltrim(" \t\r");
 						if (s.hasData() && s[0] != '#')
 						{
-							badLine(s);
+							badLine(streamName, s);
 							return;
 						}
 						break;
@@ -523,20 +593,128 @@
 					subStream.putLine(inputLine, line);
 				}
 
-				previous->sub = FB_NEW(getPool()) ConfigFile(getPool(), &subStream,
-															 flags & ~HAS_SUB_CONF, configFile);
+				previous->sub = FB_NEW(getPool())
+					ConfigFile(getPool(), &subStream, flags & ~HAS_SUB_CONF);
 			}
 			break;
 		}
 	}
 }
 
+//#define DEBUG_INCLUDES
+
 /******************************************************************************
  *
- *	Check for parse/load error
+ *	Parse include operator
  */
 
-const char* ConfigFile::getMessage() const
+void ConfigFile::include(const char* currentFileName, const PathName& parPath)
 {
-	return lastMessage.nullStr();
+	// We should better limit include depth
+	AutoSetRestore<unsigned> depth(&includeLimit, includeLimit + 1);
+	if (includeLimit > INCLUDE_LIMIT)
+	{
+		(Arg::Gds(isc_conf_include) << currentFileName << parPath << Arg::Gds(isc_include_depth)).raise();
+	}
+
+	// for relative paths first of all prepend with current path (i.e. path of current conf file)
+	PathName path;
+	if (PathUtils::isRelative(parPath))
+	{
+		PathName curPath;
+		PathUtils::splitLastComponent(curPath, path /*dummy*/, currentFileName);
+		PathUtils::concatPath(path, curPath, parPath);
+	}
+	else
+	{
+		path = parPath;
+	}
+
+	// split path into components
+	PathName pathPrefix;
+	PathUtils::splitPrefix(path, pathPrefix);
+	PathName savedPath(path);		// Expect no *? in prefix
+	FilesArray components;
+	while (path.hasData())
+	{
+		PathName cur, tmp;
+		PathUtils::splitLastComponent(tmp, cur, path);
+
+#ifdef DEBUG_INCLUDES
+		fprintf(stderr, "include: path=%s cur=%s tmp=%s\n", path.c_str(), cur.c_str(), tmp.c_str());
+#endif
+
+		components.push(cur);
+		path = tmp;
+	}
+
+	// analyze components for wildcards
+	if (!wildCards(currentFileName, pathPrefix, components))
+	{
+		// no matches found - check for presence of wild symbols in path
+		if (!hasWildCards(savedPath))
+		{
+			(Arg::Gds(isc_conf_include) << currentFileName << parPath << Arg::Gds(isc_include_miss)).raise();
+		}
+	}
 }
+
+/******************************************************************************
+ *
+ *	Parse wildcards
+ *		- calls parse for found files
+ *		- fills filesCache
+ *		- returns true if some match was found
+ */
+
+bool ConfigFile::wildCards(const char* currentFileName, const PathName& pathPrefix, FilesArray& components)
+{
+	// Any change in directory can cause config change
+	PathName prefix(pathPrefix);
+	if(!pathPrefix.hasData())
+		prefix = ".";
+
+	bool found = false;
+	PathName next(components.pop());
+
+#ifdef DEBUG_INCLUDES
+	fprintf(stderr, "wildCards: prefix=%s next=%s left=%d\n",
+		prefix.c_str(), next.c_str(), components.getCount());
+#endif
+
+	ScanDir list(prefix.c_str(), next.c_str());
+	while (list.next())
+	{
+		PathName name;
+		const PathName fileName = list.getFileName();
+		if (fileName == ".")
+			continue;
+		if (fileName[0] == '.' && next[0] != '.')
+			continue;
+		PathUtils::concatPath(name, pathPrefix, fileName);
+
+#ifdef DEBUG_INCLUDES
+		fprintf(stderr, "in Scan: name=%s pathPrefix=%s list.fileName=%s\n",
+			name.c_str(), pathPrefix.c_str(), fileName.c_str());
+#endif
+
+		if (filesCache)
+			filesCache->addFile(name);
+
+		if (components.hasData())	// should be directory
+		{
+			found = found || wildCards(currentFileName, name, components);
+		}
+		else
+		{
+			MainStream include(name.c_str());
+			if (include.active())
+			{
+				found = true;
+				parse(&include);
+			}
+		}
+	}
+
+	return found;
+}
Modified: firebird/trunk/src/common/config/config_file.h
===================================================================
--- firebird/trunk/src/common/config/config_file.h	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/src/common/config/config_file.h	2013-03-27 11:45:02 UTC (rev 57841)
@@ -46,6 +46,8 @@
 	(common/config/config.cpp) and server-side alias manager (common/db_alias.cpp).
 **/
 
+class ConfigCache;
+
 class ConfigFile : public Firebird::AutoStorage, public Firebird::RefCounted
 {
 public:
@@ -65,6 +67,7 @@
 	public:
 		virtual ~Stream();
 		virtual bool getLine(String&, unsigned int&) = 0;
+		virtual const char* getFileName() const = 0;
 	};
 
 	struct Parameter : public AutoStorage
@@ -90,15 +93,16 @@
 
     typedef Firebird::SortedObjectsArray<Parameter, Firebird::InlineStorage<Parameter*, 100>,
 										 KeyType, Parameter> Parameters;
+	typedef Firebird::ObjectsArray<Firebird::PathName> FilesArray;
 
-	ConfigFile(const Firebird::PathName& file, USHORT fl = 0);
-	ConfigFile(const char* file, USHORT fl = 0);
+	ConfigFile(const Firebird::PathName& file, USHORT fl = 0, ConfigCache* cache = NULL);
+	ConfigFile(const char* file, USHORT fl = 0, ConfigCache* cache = NULL);
 	ConfigFile(UseText, const char* configText, USHORT fl = 0);
 
-	ConfigFile(MemoryPool& p, const Firebird::PathName& file, USHORT fl = 0);
+	ConfigFile(MemoryPool& p, const Firebird::PathName& file, USHORT fl = 0, ConfigCache* cache = NULL);
 
 private:
-	ConfigFile(MemoryPool& p, ConfigFile::Stream* s, USHORT fl, const Firebird::PathName& file);
+	ConfigFile(MemoryPool& p, ConfigFile::Stream* s, USHORT fl);
 
 public:
 	// key and value management
@@ -111,26 +115,25 @@
 		return parameters;
 	}
 
-	// was there some error parsing config file?
-	const char* getMessage() const;
-
 	// Substitute macro values in a string
-	bool macroParse(String& value) const;
+	bool macroParse(String& value, const char* fileName) const;
 
 private:
-	enum LineType {LINE_BAD, LINE_REGULAR, LINE_START_SUB};
+	enum LineType {LINE_BAD, LINE_REGULAR, LINE_START_SUB, LINE_INCLUDE};
 
-    Firebird::PathName configFile;
     Parameters parameters;
 	USHORT flags;
-	USHORT badLinesCount;
-	Firebird::PathName lastMessage;
+	unsigned includeLimit;
+	ConfigCache* filesCache;
+	static const unsigned INCLUDE_LIMIT = 64;
 
 	// utilities
 	void parse(Stream* stream);
-	LineType parseLine(const String& input, KeyType& key, String& value);
-	bool translate(const String& from, String& to) const;
-	void badLine(const String& line);
+	LineType parseLine(const char* fileName, const String& input, KeyType& key, String& value);
+	bool translate(const char* fileName, const String& from, String& to) const;
+	void badLine(const char* fileName, const String& line);
+	void include(const char* currentFileName, const Firebird::PathName& path);
+	bool wildCards(const char* currentFileName, const Firebird::PathName& pathPrefix, FilesArray& components);
 };
 
 #endif	// CONFIG_CONFIG_FILE_H
Modified: firebird/trunk/src/common/db_alias.cpp
===================================================================
--- firebird/trunk/src/common/db_alias.cpp	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/src/common/db_alias.cpp	2013-03-27 11:45:02 UTC (rev 57841)
@@ -198,7 +198,7 @@
 			}
 			databases.clear();
 
-			ConfigFile aliasConfig(fileName, ConfigFile::HAS_SUB_CONF);
+			ConfigFile aliasConfig(getFileName(), ConfigFile::HAS_SUB_CONF, this);
 			const ConfigFile::Parameters& params = aliasConfig.getParameters();
 
 			for (n = 0; n < params.getCount(); ++n)
Modified: firebird/trunk/src/common/os/path_utils.h
===================================================================
--- firebird/trunk/src/common/os/path_utils.h	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/src/common/os/path_utils.h	2013-03-27 11:45:02 UTC (rev 57841)
@@ -147,6 +147,13 @@
 	static void splitLastComponent(Firebird::PathName&, Firebird::PathName&,
 									const Firebird::PathName&);
 
+	/**	splitPrefix takes a path as the first argument, splits OS-dependent prefix
+		from it (something like C:\, D: or \ in windows or / in posix),
+		and returns stripped path inplace, i.e. as first argument.
+		Prefix is returned as the second argument.
+	**/
+	static void splitPrefix(Firebird::PathName& path, Firebird::PathName& prefix);
+
 	/** This is the factory method for allocating dir_iterator objects.
 		It takes a reference to a memory pool to use for all heap allocations,
 		and the path of the directory to iterate (in that order).  It is the
Modified: firebird/trunk/src/common/os/posix/path_utils.cpp
===================================================================
--- firebird/trunk/src/common/os/posix/path_utils.cpp	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/src/common/os/posix/path_utils.cpp	2013-03-27 11:45:02 UTC (rev 57841)
@@ -118,6 +118,16 @@
 	file.append(orgPath, pos + 1, orgPath.length() - pos - 1);
 }
 
+void PathUtils::splitPrefix(Firebird::PathName& path, Firebird::PathName& prefix)
+{
+	prefix.erase();
+	while (path[0] == dir_sep)
+	{
+		prefix = dir_sep;
+		path.erase(0, 1);
+	}
+}
+
 void PathUtils::concatPath(Firebird::PathName& result,
 		const Firebird::PathName& first,
 		const Firebird::PathName& second)
Modified: firebird/trunk/src/include/gen/codetext.h
===================================================================
--- firebird/trunk/src/include/gen/codetext.h	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/src/include/gen/codetext.h	2013-03-27 11:45:02 UTC (rev 57841)
@@ -754,6 +754,11 @@
 	{"wrong_message_length", 335545050},
 	{"no_output_format", 335545051},
 	{"item_finish", 335545052},
+	{"miss_config", 335545053},
+	{"conf_line", 335545054},
+	{"conf_include", 335545055},
+	{"include_depth", 335545056},
+	{"include_miss", 335545057},
 	{"gfix_db_name", 335740929},
 	{"gfix_invalid_sw", 335740930},
 	{"gfix_incmp_sw", 335740932},
Modified: firebird/trunk/src/include/gen/iberror.h
===================================================================
--- firebird/trunk/src/include/gen/iberror.h	2013-03-27 01:34:44 UTC (rev 57840)
+++ firebird/trunk/src/include/gen/iberror.h	2013-03-27 11:45:02 UTC (rev 57841)
@@ -788,6 +788,11 @@
 const ISC_STATUS isc_wrong_message_length             = 335545050L;
 const ISC_STATUS isc_no_output_format                 = 335545051L;
 const ISC_STATUS isc_item_finish                      = 335545052L;
+const ISC_STATUS isc_miss_config                      = 335545053L;
+const ISC_STATUS isc_conf_line                        = 335545054L;
+const ISC_STATUS isc_conf_include                     = 335545055L;
+const ISC_STATUS isc_include_depth                    = 335545056L;
+const ISC_STATUS isc_include_miss                     = 335545057L;
 const ISC_STATUS isc_gfix_db_name                     = 335740929L;
 const ISC_STATUS isc_gfix_invalid_sw                  = 335740930L;
 const ISC_STATUS isc_gfix_incmp_sw                    = 335740932L;
@@ -1232,7 +1237,7 @@
 const ISC_STATUS isc_trace_switch_param_miss          = 337182758L;
 const ISC_STATUS isc_trace_param_act_notcompat        = 337182759L;
 const ISC_STATUS isc_trace_mandatory_switch_miss      = 337182760L;
-const ISC_STATUS isc_err_max                          = 1176;
+const ISC_STATUS isc_err_max                          = 1181;
 
 #else /* c definitions */
 
@@ -1990,6 +1995,11 @@
 #define isc_wrong_message_length             335545050L
 #define isc_no_output_format                 335545051L
 #define isc_item_finish                      335545052L
+#define isc_miss_config                      335545053L
+#define isc_conf_line                        335545054L
+#define isc_conf_include                     335545055L
+#define...
 
[truncated message content] | 
| 
      
      
      From: <fir...@us...> - 2013-03-28 00:36:03
       | 
| Revision: 57854
          http://sourceforge.net/p/firebird/code/57854
Author:   firebirds
Date:     2013-03-28 00:35:57 +0000 (Thu, 28 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-27 16:09:18 UTC (rev 57853)
+++ firebird/trunk/ChangeLog	2013-03-28 00:35:57 UTC (rev 57854)
@@ -1,3 +1,58 @@
+ 2013-03-27 16:09  asfernandes 
+   M src/dsql/DdlNodes.epp
+Fixed CORE-4071 - external function declaration with "returns parameter" crashes the server.
+
+ 2013-03-27 15:54  asfernandes 
+   M src/dsql/DdlNodes.epp
+   M src/dsql/DdlNodes.h
+Fixed CORE-4070 - NOT-NULL-column can be used as primary key and filled with NULL-values.
+
+ 2013-03-27 12:32  alexpeshkoff 
+   M src/common/os/win32/path_utils.cpp
+Aproximate change for windows - not checked
+
+ 2013-03-27 11:45  alexpeshkoff 
+   M lang_helpers/gds_codes.ftn
+   M lang_helpers/gds_codes.pas
+   M src/common/config/ConfigCache.cpp
+   M src/common/config/ConfigCache.h
+   M src/common/config/config.cpp
+   M src/common/config/config.h
+   M src/common/config/config_file.cpp
+   M src/common/config/config_file.h
+   M src/common/db_alias.cpp
+   M src/common/os/path_utils.h
+   M src/common/os/posix/path_utils.cpp
+   M src/include/gen/codetext.h
+   M src/include/gen/iberror.h
+   M src/include/gen/msgs.h
+   M src/include/gen/sql_code.h
+   M src/include/gen/sql_state.h
+   M src/msgs/facilities2.sql
+   M src/msgs/messages2.sql
+   M src/msgs/system_errors2.sql
+   M src/remote/server/os/posix/inet_server.cpp
+   M src/remote/server/os/win32/srvr_w32.cpp
+   M src/utilities/ntrace/TraceConfiguration.cpp
+Added operator include to config files
+
+ 2013-03-27 01:34  asfernandes 
+   M builds/posix/Makefile.in.plugins_examples
+   M src/jrd/ExtEngineManager.cpp
+   M src/jrd/Function.epp
+   M src/jrd/Routine.cpp
+   M src/jrd/Routine.h
+   M src/jrd/met.epp
+Fixed CORE-4068 - create package fails on creating header as soon as there is at least 1 procedure name.
+
+ 2013-03-27 01:34  asfernandes 
+   M src/common/MsgMetadata.cpp
+   M src/common/MsgMetadata.h
+   M src/jrd/ExtEngineManager.cpp
+   A src/jrd/Routine.cpp
+   M src/jrd/Routine.h
+Refactor.
+
  2013-03-25 15:59  asfernandes 
    M src/include/firebird/UdrCppEngine.h
 Work in progress standardizing the external engines API.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-27 16:09:18 UTC (rev 57853)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-28 00:35:57 UTC (rev 57854)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30296
+  FORMAL BUILD NUMBER:30302
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30296"
-#define FILE_VER_STRING "WI-T3.0.0.30296"
-#define LICENSE_VER_STRING "WI-T3.0.0.30296"
-#define FILE_VER_NUMBER 3, 0, 0, 30296
+#define PRODUCT_VER_STRING "3.0.0.30302"
+#define FILE_VER_STRING "WI-T3.0.0.30302"
+#define LICENSE_VER_STRING "WI-T3.0.0.30302"
+#define FILE_VER_NUMBER 3, 0, 0, 30302
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30296"
+#define FB_BUILD_NO "30302"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-27 16:09:18 UTC (rev 57853)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-28 00:35:57 UTC (rev 57854)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30296
+BuildNum=30302
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ma...@us...> - 2013-03-28 09:32:33
       | 
| Revision: 57856
          http://sourceforge.net/p/firebird/code/57856
Author:   mapopa
Date:     2013-03-28 09:32:30 +0000 (Thu, 28 Mar 2013)
Log Message:
-----------
update config files after fixing recent version of autoconf/automake/libtool complain about the firebird
scripts aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
Modified Paths:
--------------
    firebird/trunk/builds/make.new/config/install-sh
    firebird/trunk/extern/editline/configure
Modified: firebird/trunk/builds/make.new/config/install-sh
===================================================================
--- firebird/trunk/builds/make.new/config/install-sh	2013-03-28 07:24:25 UTC (rev 57855)
+++ firebird/trunk/builds/make.new/config/install-sh	2013-03-28 09:32:30 UTC (rev 57856)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2010-02-06.18; # UTC
+scriptversion=2011-01-19.21; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -156,6 +156,10 @@
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
+	# Protect names problematic for `test' and other utilities.
+	case $dst_arg in
+	  -* | [=\(\)!]) dst_arg=./$dst_arg;;
+	esac
 	shift;;
 
     -T) no_target_directory=true;;
@@ -186,6 +190,10 @@
     fi
     shift # arg
     dst_arg=$arg
+    # Protect names problematic for `test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
   done
 fi
 
@@ -232,9 +240,9 @@
 
 for src
 do
-  # Protect names starting with `-'.
+  # Protect names problematic for `test' and other utilities.
   case $src in
-    -*) src=./$src;;
+    -* | [=\(\)!]) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
@@ -256,12 +264,7 @@
       echo "$0: no destination specified." >&2
       exit 1
     fi
-
     dst=$dst_arg
-    # Protect names starting with `-'.
-    case $dst in
-      -*) dst=./$dst;;
-    esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
@@ -389,7 +392,7 @@
 
       case $dstdir in
 	/*) prefix='/';;
-	-*) prefix='./';;
+	[-=\(\)!]*) prefix='./';;
 	*)  prefix='';;
       esac
 
@@ -407,7 +410,7 @@
 
       for d
       do
-	test -z "$d" && continue
+	test X"$d" = X && continue
 
 	prefix=$prefix$d
 	if test -d "$prefix"; then
Modified: firebird/trunk/extern/editline/configure
===================================================================
--- firebird/trunk/extern/editline/configure	2013-03-28 07:24:25 UTC (rev 57855)
+++ firebird/trunk/extern/editline/configure	2013-03-28 09:32:30 UTC (rev 57856)
@@ -1,11 +1,9 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for libedit 2.10.
+# Generated by GNU Autoconf 2.69 for libedit 2.10.
 #
 #
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -89,6 +87,7 @@
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -133,6 +132,31 @@
 # CDPATH.
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
   as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
@@ -166,7 +190,8 @@
 else
   exitcode=1; echo positional parameters were not saved.
 fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -211,14 +236,25 @@
 
 
       if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-	# neutralization value for shells without unset; and this also
-	# works around shells that cannot unset nonexistent variables.
-	BASH_ENV=/dev/null
-	ENV=/dev/null
-	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-	export CONFIG_SHELL
-	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
 fi
 
     if test x$as_have_required = xno; then :
@@ -320,6 +356,14 @@
 
 
 } # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -441,6 +485,10 @@
   chmod +x "$as_me.lineno" ||
     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
   # original and so on.  Autoconf is especially sensitive to this).
@@ -475,16 +523,16 @@
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -496,28 +544,8 @@
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -702,7 +730,7 @@
 
 # Identity of this package.
 PACKAGE_NAME='libedit'
-PACKAGE_TARNAME='libedit-20110601'
+PACKAGE_TARNAME='libedit-20130325'
 PACKAGE_VERSION='2.10'
 PACKAGE_STRING='libedit 2.10'
 PACKAGE_BUGREPORT=''
@@ -1286,7 +1314,7 @@
     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
   esac
@@ -1337,8 +1365,6 @@
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1473,7 +1499,7 @@
   --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
   --mandir=DIR            man documentation [DATAROOTDIR/man]
   --docdir=DIR            documentation root
-                          [DATAROOTDIR/doc/libedit-20110601]
+                          [DATAROOTDIR/doc/libedit-20130325]
   --htmldir=DIR           html documentation [DOCDIR]
   --dvidir=DIR            dvi documentation [DOCDIR]
   --pdfdir=DIR            pdf documentation [DOCDIR]
@@ -1601,9 +1627,9 @@
 if $ac_init_version; then
   cat <<\_ACEOF
 libedit configure 2.10
-generated by GNU Autoconf 2.67
+generated by GNU Autoconf 2.69
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1647,7 +1673,7 @@
 
 	ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_compile
@@ -1679,7 +1705,7 @@
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
 	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
+	 test -x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -1693,7 +1719,7 @@
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_link
@@ -1730,7 +1756,7 @@
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_cpp
@@ -1743,10 +1769,10 @@
 ac_fn_c_check_header_mongrel ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval "test \"\${$3+set}\"" = set; then :
+  if eval \${$3+:} false; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 fi
 eval ac_res=\$$3
@@ -1809,7 +1835,7 @@
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=\$ac_header_compiler"
@@ -1818,7 +1844,7 @@
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_mongrel
 
@@ -1859,7 +1885,7 @@
        ac_retval=$ac_status
 fi
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_run
@@ -1873,7 +1899,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1891,7 +1917,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_compile
 
@@ -1903,7 +1929,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1958,7 +1984,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_func
 
@@ -1995,7 +2021,7 @@
 
 	ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_compile
@@ -2032,7 +2058,7 @@
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_cpp
@@ -2064,7 +2090,7 @@
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
 	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
+	 test -x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -2078,7 +2104,7 @@
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_link
@@ -2116,7 +2142,7 @@
 
 	ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_f77_try_compile
@@ -2148,7 +2174,7 @@
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
 	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
+	 test -x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -2162,7 +2188,7 @@
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_f77_try_link
@@ -2176,7 +2202,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=no"
@@ -2217,7 +2243,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_type
 cat >config.log <<_ACEOF
@@ -2225,7 +2251,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by libedit $as_me 2.10, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
 
@@ -2483,7 +2509,7 @@
       || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
   fi
 done
 
@@ -2623,7 +2649,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
+if ${ac_cv_path_install+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2643,7 +2669,7 @@
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
 	  if test $ac_prog = install &&
 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
@@ -2800,7 +2826,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
+if ${ac_cv_prog_AWK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -2812,7 +2838,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AWK="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2840,7 +2866,7 @@
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -2893,7 +2919,7 @@
 
 
 # Define the identity of the package.
- PACKAGE='libedit-20110601'
+ PACKAGE='libedit-20130325'
  VERSION='2.10'
 
 
@@ -2934,7 +2960,7 @@
 set dummy ${ac_tool_prefix}strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -2946,7 +2972,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2974,7 +3000,7 @@
 set dummy strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -2986,7 +3012,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_STRIP="strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3042,7 +3068,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
+if ${ac_cv_build+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
@@ -3058,7 +3084,7 @@
 $as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
 esac
 build=$ac_cv_build
 ac_save_IFS=$IFS; IFS='-'
@@ -3076,7 +3102,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 $as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
+if ${ac_cv_host+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
@@ -3091,7 +3117,7 @@
 $as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
 esac
 host=$ac_cv_host
 ac_save_IFS=$IFS; IFS='-'
@@ -3263,7 +3289,7 @@
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3275,7 +3301,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3303,7 +3329,7 @@
 set dummy gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3315,7 +3341,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3356,7 +3382,7 @@
 set dummy ${ac_tool_prefix}cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3368,7 +3394,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3396,7 +3422,7 @@
 set dummy cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3409,7 +3435,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -3455,7 +3481,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3467,7 +3493,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3499,7 +3525,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3511,7 +3537,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3554,7 +3580,7 @@
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3669,7 +3695,7 @@
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -3712,7 +3738,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3771,7 +3797,7 @@
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
@@ -3782,7 +3808,7 @@
 ac_clean_files=$ac_clean_files_save
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
+if ${ac_cv_objext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3823,7 +3849,7 @@
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
@@ -3833,7 +3859,7 @@
 ac_objext=$OBJEXT
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3870,7 +3896,7 @@
 ac_save_CFLAGS=$CFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -3948,7 +3974,7 @@
 fi
 { $a...
 
[truncated message content] | 
| 
      
      
      From: <ale...@us...> - 2013-03-28 15:35:32
       | 
| Revision: 57864
          http://sourceforge.net/p/firebird/code/57864
Author:   alexpeshkoff
Date:     2013-03-28 15:35:29 +0000 (Thu, 28 Mar 2013)
Log Message:
-----------
Added macros for main firebird directories to config files
Modified Paths:
--------------
    firebird/trunk/builds/install/misc/aliases.conf.in
    firebird/trunk/src/common/config/config_file.cpp
    firebird/trunk/src/common/config/config_file.h
Modified: firebird/trunk/builds/install/misc/aliases.conf.in
===================================================================
--- firebird/trunk/builds/install/misc/aliases.conf.in	2013-03-28 13:55:16 UTC (rev 57863)
+++ firebird/trunk/builds/install/misc/aliases.conf.in	2013-03-28 15:35:29 UTC (rev 57864)
@@ -5,11 +5,8 @@
 #
 # Example Database:
 #
-#employee.fdb = @FB_SAMPLEDBDIR@/employee.fdb
-#employee = @FB_SAMPLEDBDIR@/employee.fdb
-# TODO: When added appropriate feature to config - use $(SAMPLEDBDIR) instead
-employee.fdb = $(root)/examples/empbuild/employee.fdb
-employee = $(root)/examples/empbuild/employee.fdb
+employee.fdb = $(dir_sampledb)/employee.fdb
+employee = $(dir_sampledb)/employee.fdb
 
 #
 # Live Databases:
Modified: firebird/trunk/src/common/config/config_file.cpp
===================================================================
--- firebird/trunk/src/common/config/config_file.cpp	2013-03-28 13:55:16 UTC (rev 57863)
+++ firebird/trunk/src/common/config/config_file.cpp	2013-03-28 15:35:29 UTC (rev 57864)
@@ -29,6 +29,7 @@
 #include "../common/config/ConfigCache.h"
 #include "../common/os/path_utils.h"
 #include "../common/ScanDir.h"
+#include "../common/utils_proto.h"
 #include <stdio.h>
 
 #ifdef HAVE_STDLIB_H
@@ -471,18 +472,51 @@
 		PathUtils::splitLastComponent(path, file, tempPath);
 		to = path.ToString();
 	}
-	/* ToDo - implement this feature
-	else if (!substituteOneOfStandardFirebirdDirs(from, to))
+	else if (!substituteStandardDir(from, to))
 	{
 		return false;
 	}
-	*/
-	else
+
+	return true;
+}
+
+/******************************************************************************
+ *
+ *	Return parameter value as boolean
+ */
+
+bool ConfigFile::substituteStandardDir(const String& from, String& to) const
+{
+	using namespace fb_utils;
+
+	struct Dir {
+		FB_DIR code;
+		const char* name;
+	} dirs[] = {
+#define NMDIR(a) {a, #a},
+		NMDIR(FB_DIR_CONF)
+		NMDIR(FB_DIR_SECDB)
+		NMDIR(FB_DIR_PLUGINS)
+		NMDIR(FB_DIR_UDF)
+		NMDIR(FB_DIR_SAMPLE)
+		NMDIR(FB_DIR_SAMPLEDB)
+		NMDIR(FB_DIR_INTL)
+		NMDIR(FB_DIR_MSG)
+#undef NMDIR
+		{FB_DIR_LAST, NULL}
+	};
+
+	for (const Dir* d = dirs; d->name; ++d)
 	{
-		return false;
+		const char* target = &(d->name[3]);		// skip FB_
+		if (from.equalsNoCase(target))
+		{
+			to = getPrefix(d->code, "").c_str();
+			return true;
+		}
 	}
 
-	return true;
+	return false;
 }
 
 /******************************************************************************
@@ -794,6 +828,11 @@
 	return sign * ret;
 }
 
+/******************************************************************************
+ *
+ *	Return parameter value as boolean
+ */
+
 bool ConfigFile::Parameter::asBoolean() const
 {
 	return (atoi(value.c_str()) != 0) ||
Modified: firebird/trunk/src/common/config/config_file.h
===================================================================
--- firebird/trunk/src/common/config/config_file.h	2013-03-28 13:55:16 UTC (rev 57863)
+++ firebird/trunk/src/common/config/config_file.h	2013-03-28 15:35:29 UTC (rev 57864)
@@ -138,6 +138,7 @@
 	void badLine(const char* fileName, const String& line);
 	void include(const char* currentFileName, const Firebird::PathName& path);
 	bool wildCards(const char* currentFileName, const Firebird::PathName& pathPrefix, FilesArray& components);
+	bool substituteStandardDir(const String& from, String& to) const;
 };
 
 #endif	// CONFIG_CONFIG_FILE_H
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-29 00:38:23
       | 
| Revision: 57866
          http://sourceforge.net/p/firebird/code/57866
Author:   firebirds
Date:     2013-03-29 00:38:19 +0000 (Fri, 29 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-28 16:52:03 UTC (rev 57865)
+++ firebird/trunk/ChangeLog	2013-03-29 00:38:19 UTC (rev 57866)
@@ -1,3 +1,66 @@
+ 2013-03-28 16:52  hvlad 
+   M src/jrd/cch.cpp
+   M src/jrd/cch.h
+Refactor a bit
+
+ 2013-03-28 15:35  alexpeshkoff 
+   M builds/install/misc/aliases.conf.in
+   M src/common/config/config_file.cpp
+   M src/common/config/config_file.h
+Added macros for main firebird directories to config files
+
+ 2013-03-28 13:55  alexpeshkoff 
+   M builds/install/misc/firebird.conf.in
+Make default firebird.conf better readable. No need in conversion tables any more.
+
+ 2013-03-28 13:43  alexpeshkoff 
+   M src/common/config/config.cpp
+   M src/common/config/config.h
+   M src/common/config/config_file.cpp
+   M src/common/config/config_file.h
+   M src/include/firebird/Plugin.h
+   M src/yvalve/PluginManager.cpp
+Fixed problems when config file is missing
+Make config manager and it's external interfaces work with 64-bit integers
+Added support for boolean values (like 'true' & 'yes') to external config interfaces
+Added support for kmg multipliers to config manager
+
+ 2013-03-28 13:15  hvlad 
+   M src/common/os/win32/path_utils.cpp
+Well, there is a case where relative path could contain drive letter, for ex. C:xxx\yyy\zzz.
+Correct first version of code.
+
+ 2013-03-28 12:46  mapopa 
+   M src/isql/isql.epp
+MUISQL (QA Test bed Multiuser environment) target is not builded anymore from Firebird 1.x ages 
+
+ 2013-03-28 12:09  hvlad 
+   M builds/win32/msvc10/engine.vcxproj
+   M builds/win32/msvc10/engine.vcxproj.filters
+   M builds/win32/msvc8/engine.vcproj
+   M builds/win32/msvc9/engine.vcproj
+Update Windows build
+
+ 2013-03-28 12:04  hvlad 
+   M src/common/os/win32/path_utils.cpp
+If path contains drive letter - it is definitely not relative path
+
+ 2013-03-28 10:15  mapopa 
+   M doc/license/IDPL.txt
+   M doc/license/README.license.usage.txt
+Fix licenses urls , sourcecode tree is moved to SVN from CVS 
+
+ 2013-03-28 09:32  mapopa 
+   M builds/make.new/config/install-sh
+   M extern/editline/configure
+update config files after fixing recent version of autoconf/automake/libtool complain about the firebird
+scripts aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
+
+ 2013-03-28 07:24  alexpeshkoff 
+   M src/common/os/posix/path_utils.cpp
+   M src/common/os/win32/path_utils.cpp
+Fixed case with empty path - thanks to Dmitry Kovalenko
+
  2013-03-27 16:09  asfernandes 
    M src/dsql/DdlNodes.epp
 Fixed CORE-4071 - external function declaration with "returns parameter" crashes the server.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-28 16:52:03 UTC (rev 57865)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-29 00:38:19 UTC (rev 57866)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30302
+  FORMAL BUILD NUMBER:30313
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30302"
-#define FILE_VER_STRING "WI-T3.0.0.30302"
-#define LICENSE_VER_STRING "WI-T3.0.0.30302"
-#define FILE_VER_NUMBER 3, 0, 0, 30302
+#define PRODUCT_VER_STRING "3.0.0.30313"
+#define FILE_VER_STRING "WI-T3.0.0.30313"
+#define LICENSE_VER_STRING "WI-T3.0.0.30313"
+#define FILE_VER_NUMBER 3, 0, 0, 30313
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30302"
+#define FB_BUILD_NO "30313"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-28 16:52:03 UTC (rev 57865)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-29 00:38:19 UTC (rev 57866)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30302
+BuildNum=30313
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-30 01:06:22
       | 
| Revision: 57871
          http://sourceforge.net/p/firebird/code/57871
Author:   firebirds
Date:     2013-03-30 01:06:19 +0000 (Sat, 30 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-29 23:25:43 UTC (rev 57870)
+++ firebird/trunk/ChangeLog	2013-03-30 01:06:19 UTC (rev 57871)
@@ -1,3 +1,16 @@
+ 2013-03-29 23:25  asfernandes 
+   M src/dsql/dsql.cpp
+Make it work as before, although I think openCursor should fail with DDL statements.
+Please check CursorTest.cpp (ddlFetch) in fbstuff.
+
+ 2013-03-29 23:25  asfernandes 
+   M src/include/firebird/Message.h
+Correction.
+
+ 2013-03-29 07:39  alexpeshkoff 
+   M src/include/consts_pub.h
+Avoid reusing old dpb codes as it was suggested some time ago in devel - looks like we have enough of them
+
  2013-03-28 16:52  hvlad 
    M src/jrd/cch.cpp
    M src/jrd/cch.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-29 23:25:43 UTC (rev 57870)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-30 01:06:19 UTC (rev 57871)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30313
+  FORMAL BUILD NUMBER:30316
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30313"
-#define FILE_VER_STRING "WI-T3.0.0.30313"
-#define LICENSE_VER_STRING "WI-T3.0.0.30313"
-#define FILE_VER_NUMBER 3, 0, 0, 30313
+#define PRODUCT_VER_STRING "3.0.0.30316"
+#define FILE_VER_STRING "WI-T3.0.0.30316"
+#define LICENSE_VER_STRING "WI-T3.0.0.30316"
+#define FILE_VER_NUMBER 3, 0, 0, 30316
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30313"
+#define FB_BUILD_NO "30316"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-29 23:25:43 UTC (rev 57870)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-30 01:06:19 UTC (rev 57871)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30313
+BuildNum=30316
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-03-31 00:32:22
       | 
| Revision: 57882
          http://sourceforge.net/p/firebird/code/57882
Author:   firebirds
Date:     2013-03-31 00:32:18 +0000 (Sun, 31 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-30 16:15:36 UTC (rev 57881)
+++ firebird/trunk/ChangeLog	2013-03-31 00:32:18 UTC (rev 57882)
@@ -1,3 +1,14 @@
+ 2013-03-30 02:31  asfernandes 
+   M src/include/firebird/UdrCppEngine.h
+   M src/include/firebird/UdrEngine.h
+   M src/jrd/cch.cpp
+   M src/jrd/dpm.epp
+   M src/jrd/met.epp
+   M src/remote/client/interface.cpp
+   M src/remote/server/os/posix/inet_server.cpp
+   M src/remote/server/os/win32/srvr_w32.cpp
+Misc.
+
  2013-03-29 23:25  asfernandes 
    M src/dsql/dsql.cpp
 Make it work as before, although I think openCursor should fail with DDL statements.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-30 16:15:36 UTC (rev 57881)
+++ firebird/trunk/src/jrd/build_no.h	2013-03-31 00:32:18 UTC (rev 57882)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30316
+  FORMAL BUILD NUMBER:30317
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30316"
-#define FILE_VER_STRING "WI-T3.0.0.30316"
-#define LICENSE_VER_STRING "WI-T3.0.0.30316"
-#define FILE_VER_NUMBER 3, 0, 0, 30316
+#define PRODUCT_VER_STRING "3.0.0.30317"
+#define FILE_VER_STRING "WI-T3.0.0.30317"
+#define LICENSE_VER_STRING "WI-T3.0.0.30317"
+#define FILE_VER_NUMBER 3, 0, 0, 30317
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30316"
+#define FB_BUILD_NO "30317"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-30 16:15:36 UTC (rev 57881)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-03-31 00:32:18 UTC (rev 57882)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30316
+BuildNum=30317
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-04-01 01:24:02
       | 
| Revision: 57886
          http://sourceforge.net/p/firebird/code/57886
Author:   firebirds
Date:     2013-04-01 01:23:59 +0000 (Mon, 01 Apr 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-03-31 18:23:54 UTC (rev 57885)
+++ firebird/trunk/ChangeLog	2013-04-01 01:23:59 UTC (rev 57886)
@@ -1,3 +1,26 @@
+ 2013-03-31 18:23  asfernandes 
+   M src/dsql/StmtNodes.cpp
+   M src/dsql/StmtNodes.h
+   M src/jrd/JrdStatement.cpp
+   M src/jrd/Relation.h
+   M src/jrd/evl.cpp
+   M src/jrd/exe.h
+   M src/jrd/met.epp
+   M src/jrd/par.cpp
+   M src/jrd/par_proto.h
+Cleanup.
+
+ 2013-03-31 15:55  asfernandes 
+   M src/common/classes/BlrReader.h
+   M src/dsql/StmtNodes.cpp
+   M src/jrd/Function.epp
+   M src/jrd/Routine.cpp
+   M src/jrd/Routine.h
+   M src/jrd/dfw.epp
+   M src/jrd/met.epp
+   M src/jrd/met_proto.h
+Refactor.
+
  2013-03-30 02:31  asfernandes 
    M src/include/firebird/UdrCppEngine.h
    M src/include/firebird/UdrEngine.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-03-31 18:23:54 UTC (rev 57885)
+++ firebird/trunk/src/jrd/build_no.h	2013-04-01 01:23:59 UTC (rev 57886)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30317
+  FORMAL BUILD NUMBER:30319
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30317"
-#define FILE_VER_STRING "WI-T3.0.0.30317"
-#define LICENSE_VER_STRING "WI-T3.0.0.30317"
-#define FILE_VER_NUMBER 3, 0, 0, 30317
+#define PRODUCT_VER_STRING "3.0.0.30319"
+#define FILE_VER_STRING "WI-T3.0.0.30319"
+#define LICENSE_VER_STRING "WI-T3.0.0.30319"
+#define FILE_VER_NUMBER 3, 0, 0, 30319
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30317"
+#define FB_BUILD_NO "30319"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-03-31 18:23:54 UTC (rev 57885)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-04-01 01:23:59 UTC (rev 57886)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30317
+BuildNum=30319
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ma...@us...> - 2013-04-01 17:54:07
       | 
| Revision: 57889
          http://sourceforge.net/p/firebird/code/57889
Author:   mapopa
Date:     2013-04-01 17:54:03 +0000 (Mon, 01 Apr 2013)
Log Message:
-----------
FLINT_CACHE was never used , dead leftover from ib 4.0 product years http://sourceforge.net/mailarchive/message.php?msg_id=5975155 (FLINSTONE is gone)
Modified Paths:
--------------
    firebird/trunk/doc/emacros-cross_ref.html
    firebird/trunk/src/gpre/gpre.h
    firebird/trunk/src/gpre/sql.cpp
Modified: firebird/trunk/doc/emacros-cross_ref.html
===================================================================
--- firebird/trunk/doc/emacros-cross_ref.html	2013-04-01 16:04:52 UTC (rev 57888)
+++ firebird/trunk/doc/emacros-cross_ref.html	2013-04-01 17:54:03 UTC (rev 57889)
@@ -83,22 +83,6 @@
 used in jrd\pcmet.epp(200) with #ifdef <br>
 </td></tr>
 <tr><td valign="top">
-(5) FLINT_CACHE</td><td>Unknown.</td></tr>
-<tr><td> </td><td>
-used in dudley\parse.cpp(53) with #ifdef <br>
-used in dudley\parse.cpp(101) with #ifdef <br>
-used in dudley\parse.cpp(640) with #ifdef <br>
-used in dudley\parse.cpp(743) with #ifdef <br>
-used in dudley\parse.cpp(808) with #ifdef <br>
-used in gpre\sql.cpp(56) with #ifdef <br>
-used in gpre\sql.cpp(115) with #ifdef <br>
-used in gpre\sql.cpp(1087) with #ifdef <br>
-used in gpre\sql.cpp(1135) with #ifdef <br>
-used in gpre\sql.cpp(4849) with #ifdef <br>
-used in gpre\sql.cpp(6293) with #ifdef <br>
-used in gpre\sql.cpp(6370) with #ifdef <br>
-</td></tr>
-<tr><td valign="top">
 (6) GDS32</td><td>Build with GDS Compatibility.</td></tr>
 <tr><td> </td><td>
 used in jrd\ibinitdll.cpp(29) with #ifdef <br>
Modified: firebird/trunk/src/gpre/gpre.h
===================================================================
--- firebird/trunk/src/gpre/gpre.h	2013-04-01 16:04:52 UTC (rev 57888)
+++ firebird/trunk/src/gpre/gpre.h	2013-04-01 17:54:03 UTC (rev 57889)
@@ -837,9 +837,6 @@
 	int dbb_buffercount;
 	ULONG dbb_length;				// Length of database in pages, if known
 	gpre_file* dbb_logfiles;
-#ifdef FLINT_CACHE // In practice, never used.
-	gpre_file* dbb_cache_file;
-#endif
 	gpre_file* dbb_files;
 };
 
Modified: firebird/trunk/src/gpre/sql.cpp
===================================================================
--- firebird/trunk/src/gpre/sql.cpp	2013-04-01 16:04:52 UTC (rev 57888)
+++ firebird/trunk/src/gpre/sql.cpp	2013-04-01 17:54:03 UTC (rev 57889)
@@ -47,10 +47,6 @@
 #include "../common/utils_proto.h"
 
 
-#ifdef FLINT_CACHE
-const int MIN_CACHE_BUFFERS	= 250;
-const int DEF_CACHE_BUFFERS	= 1000;
-#endif
 const int DEFAULT_BLOB_SEGMENT_LENGTH	= 80;	// bytes
 
 static act* act_alter();
@@ -103,9 +99,6 @@
 
 static bool			check_filename(const TEXT *);
 static void			connect_opts(const TEXT**, const TEXT**, const TEXT**, const TEXT**, USHORT*);
-#ifdef FLINT_CACHE
-static gpre_file*	define_cache();
-#endif
 static gpre_file*	define_file();
 static gpre_file*	define_log_file();
 static gpre_dbb*	dup_dbb(const gpre_dbb*);
@@ -1133,15 +1126,8 @@
 				; // ignore DROP LOG database->dbb_flags |= DBB_drop_log;
 			else if (MSC_match(KW_CASCADE))
 				; // ignore DROP CASCADE database->dbb_flags |= DBB_cascade;
-#ifdef FLINT_CACHE
-			else if (MSC_match(KW_CACHE))
-				; // ignore DROP CACHE database->dbb_flags |= DBB_drop_cache;
 			else
-				PAR_error("only log or cache can be dropped");
-#else
-			else
 				PAR_error("only log file can be dropped");
-#endif // FLINT_CACHE
 		}
 		else if (MSC_match(KW_ADD))
 		{
@@ -1184,10 +1170,6 @@
 					database->dbb_logfiles = define_log_file();
 				}
 			}
-#ifdef FLINT_CACHE
-			else if (MSC_match(KW_CACHE))
-				database->dbb_cache_file = define_cache();
-#endif // FLINT_CACHE
 		}
 		else if (MSC_match(KW_SET))
 		{
@@ -4848,48 +4830,8 @@
 	}
 
 }
-
-#ifdef FLINT_CACHE
 //____________________________________________________________
 //
-//		Add a shared cache to an existing database.
-//
-
-static gpre_file* define_cache()
-{
-	gpre_file* file = (gpre_file*) MSC_alloc(FIL_LEN);
-	if (isQuoted(gpreGlob.token_global.tok_type))
-	{
-		TEXT* string = (TEXT*) MSC_alloc(gpreGlob.token_global.tok_length + 1);
-		file->fil_name = string;
-		MSC_copy(gpreGlob.token_global.tok_string, gpreGlob.token_global.tok_length, string);
-		PAR_get_token();
-	}
-	else
-		CPR_s_error("<quoted filename>");
-	if (!check_filename(file->fil_name))
-		PAR_error("node name not permitted");	// a node name is not permitted in a shared cache file name
-
-	if (MSC_match(KW_LENGTH))
-	{
-		file->fil_length = EXP_ULONG_ordinal(true);
-		if (file->fil_length < MIN_CACHE_BUFFERS)
-		{
-			TEXT err_string[ERROR_LENGTH];
-			sprintf(err_string, "Minimum of %d cache pages required", MIN_CACHE_BUFFERS);
-			PAR_error(err_string);
-		}
-		MSC_match(KW_PAGES);
-	}
-	else
-		file->fil_length = DEF_CACHE_BUFFERS;	// default cache buffers
-
-	return file;
-}
-#endif
-
-//____________________________________________________________
-//
 //		Add a new file to an existing database.
 //
 
@@ -6304,15 +6246,8 @@
 				; // Ignore DROP LOG database->dbb_flags |= DBB_drop_log;
 			else if (MSC_match(KW_CASCADE))
 				; // ignore DROP CASCADE database->dbb_flags |= DBB_cascade;
-#ifdef FLINT_CACHE
-			else if (MSC_match(KW_CACHE))
-				; // ignore DROP CACHE database->dbb_flags |= DBB_drop_cache;
 			else
-				PAR_error("only log files or shared cache can be dropped");	// msg 121 only SECURITY_CLASS, DESCRIPTION and CACHE can be dropped
-#else
-			else
 				PAR_error("only log files can be dropped");	// msg 121 only SECURITY_CLASS, DESCRIPTION and CACHE can be dropped
-#endif // FLINT_CACHE
 
 			//else if (MSC_match (KW_DESCRIP))
 			//	database->dbb_flags	|= DBB_null_description;
@@ -6387,10 +6322,6 @@
 				database->dbb_logfiles = define_log_file();
 			}
 		}
-#ifdef FLINT_CACHE
-		else if (MSC_match(KW_CACHE))
-			database->dbb_cache_file = define_cache();
-#endif // FLINT_CACHE
 		else
 			break;
 	}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2013-04-02 00:30:22
       | 
| Revision: 57893
          http://sourceforge.net/p/firebird/code/57893
Author:   firebirds
Date:     2013-04-02 00:30:20 +0000 (Tue, 02 Apr 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2013-04-01 21:54:16 UTC (rev 57892)
+++ firebird/trunk/ChangeLog	2013-04-02 00:30:20 UTC (rev 57893)
@@ -1,3 +1,30 @@
+ 2013-04-01 21:54  mapopa 
+   M configure.ac
+Remove absolete sinixz check
+
+ 2013-04-01 21:40  mapopa 
+   M src/common/isc_sync.cpp
+   M src/remote/inet.cpp
+SIGURG is not used , cleanup commented code 
+
+ 2013-04-01 18:37  mapopa 
+   M src/gpre/sql.cpp
+Cleanup commented code , was a wrong copy paste 
+
+ 2013-04-01 17:54  mapopa 
+   M doc/emacros-cross_ref.html
+   M src/gpre/gpre.h
+   M src/gpre/sql.cpp
+FLINT_CACHE was never used , dead leftover from ib 4.0 product years http://sourceforge.net/mailarchive/message.php?msg_id=5975155 (FLINSTONE is gone)
+
+ 2013-04-01 16:04  mapopa 
+   M doc/emacros-cross_ref.html
+Cleanup reference
+
+ 2013-04-01 15:37  asfernandes 
+   M src/jrd/par.cpp
+Misc.
+
  2013-03-31 18:23  asfernandes 
    M src/dsql/StmtNodes.cpp
    M src/dsql/StmtNodes.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2013-04-01 21:54:16 UTC (rev 57892)
+++ firebird/trunk/src/jrd/build_no.h	2013-04-02 00:30:20 UTC (rev 57893)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:30319
+  FORMAL BUILD NUMBER:30325
 */
 
-#define PRODUCT_VER_STRING "3.0.0.30319"
-#define FILE_VER_STRING "WI-T3.0.0.30319"
-#define LICENSE_VER_STRING "WI-T3.0.0.30319"
-#define FILE_VER_NUMBER 3, 0, 0, 30319
+#define PRODUCT_VER_STRING "3.0.0.30325"
+#define FILE_VER_STRING "WI-T3.0.0.30325"
+#define LICENSE_VER_STRING "WI-T3.0.0.30325"
+#define FILE_VER_NUMBER 3, 0, 0, 30325
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "30319"
+#define FB_BUILD_NO "30325"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2013-04-01 21:54:16 UTC (rev 57892)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2013-04-02 00:30:20 UTC (rev 57893)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=30319
+BuildNum=30325
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |