package created by autospec [release 2.3.0-1mamba;Fri Dec 24 2010]

This commit is contained in:
Silvan Calarco 2024-01-05 18:49:27 +01:00
parent eb8305c386
commit d99f216691
5 changed files with 1211 additions and 0 deletions

View File

@ -1,2 +1,4 @@
# unixodbc-gui-qt
Qt based GUI bits for unixODBC. Includes configuration interface and data manager.

View File

@ -0,0 +1,457 @@
diff -Nu unixodbc-gui-qt-2.3.0.orig/ODBCTestQ4//ODBCTestQ4-48.xpm unixodbc-gui-qt-2.3.0/ODBCTestQ4//ODBCTestQ4-48.xpm
--- unixodbc-gui-qt-2.3.0.orig/ODBCTestQ4//ODBCTestQ4-48.xpm 1970-01-01 01:00:00.000000000 +0100
+++ unixodbc-gui-qt-2.3.0/ODBCTestQ4//ODBCTestQ4-48.xpm 2010-12-27 13:58:37.877841798 +0100
@@ -0,0 +1,453 @@
+/* XPM */
+static const char * xpmODBCTestQ4_48[] = {
+"48 48 402 2",
+" c None",
+". c #974C2E",
+"+ c #9A4D2F",
+"@ c #9C4F31",
+"# c #9D5032",
+"$ c #9D4F31",
+"% c #9C4E30",
+"& c #994E2F",
+"* c #954F30",
+"= c #B3130A",
+"- c #CC1E1E",
+"; c #D01F1F",
+"> c #D21F1F",
+", c #D52A2A",
+"' c #D42323",
+") c #D31F1F",
+"! c #CC2121",
+"~ c #9F2812",
+"{ c #B80E06",
+"] c #CA0000",
+"^ c #CF0000",
+"/ c #D20202",
+"( c #E87E7E",
+"_ c #F6D0D0",
+": c #E88181",
+"< c #D20000",
+"[ c #CB0101",
+"} c #A22610",
+"| c #BC0E06",
+"1 c #CE0000",
+"2 c #D50202",
+"3 c #E14545",
+"4 c #F1A3A3",
+"5 c #E24C4C",
+"6 c #D60000",
+"7 c #D40000",
+"8 c #D00101",
+"9 c #A7240F",
+"0 c #C00E06",
+"a c #D50404",
+"b c #EE9898",
+"c c #FEFAFA",
+"d c #FEFEFE",
+"e c #F7CECE",
+"f c #E24242",
+"g c #D70000",
+"h c #D40101",
+"i c #AB240E",
+"j c #973116",
+"k c #C63A35",
+"l c #C40E06",
+"m c #D50000",
+"n c #E35454",
+"o c #F4B9B9",
+"p c #F9D9D9",
+"q c #FCEDED",
+"r c #FAE1E1",
+"s c #DB0303",
+"t c #D80101",
+"u c #AF250F",
+"v c #9D351A",
+"w c #C82F2C",
+"x c #C80503",
+"y c #CF0909",
+"z c #DA3435",
+"A c #C74237",
+"B c #C90E06",
+"C c #D90101",
+"D c #ED8B8B",
+"E c #FBE6E6",
+"F c #DF2F2F",
+"G c #F19F9F",
+"H c #F3ADAD",
+"I c #EE8787",
+"J c #DD0707",
+"K c #DC0101",
+"L c #B4250F",
+"M c #C6261E",
+"N c #D41919",
+"O c #CE0808",
+"P c #C3231C",
+"Q c #B11E0C",
+"R c #D40202",
+"S c #D90000",
+"T c #DB0000",
+"U c #DF1010",
+"V c #E53D3D",
+"W c #C23F2E",
+"X c #CF0E06",
+"Y c #DE0606",
+"Z c #E86060",
+"` c #E34A4A",
+" . c #FCEEEE",
+".. c #E86363",
+"+. c #E01C1C",
+"@. c #DF0101",
+"#. c #E00101",
+"$. c #BE210E",
+"%. c #C5291B",
+"&. c #E11D1E",
+"*. c #D71515",
+"=. c #A1371B",
+"-. c #D50403",
+";. c #DE0000",
+">. c #E30000",
+",. c #E60000",
+"'. c #E70000",
+"). c #E70101",
+"!. c #E91F1F",
+"~. c #E5423E",
+"{. c #C2432E",
+"]. c #D8120A",
+"^. c #E20000",
+"/. c #E42929",
+"(. c #F5B8B8",
+"_. c #FAE3E3",
+":. c #ED8989",
+"<. c #E12828",
+"[. c #E10000",
+"}. c #E30202",
+"|. c #CC3728",
+"1. c #C3321E",
+"2. c #E6201E",
+"3. c #E70E0F",
+"4. c #DD0202",
+"5. c #D71C1B",
+"6. c #C41108",
+"7. c #DE0202",
+"8. c #ED0000",
+"9. c #F00000",
+"0. c #EF0000",
+"a. c #EE0202",
+"b. c #EF2626",
+"c. c #ED1212",
+"d. c #E80000",
+"e. c #E60909",
+"f. c #E73737",
+"g. c #F5B3B3",
+"h. c #FEFBFB",
+"i. c #EE8686",
+"j. c #DF0707",
+"k. c #EC2222",
+"l. c #EE1B1B",
+"m. c #F10000",
+"n. c #EC0000",
+"o. c #DF0E0E",
+"p. c #B82B1A",
+"q. c #AB250F",
+"r. c #D90303",
+"s. c #F20000",
+"t. c #F60000",
+"u. c #F70000",
+"v. c #F50000",
+"w. c #F40000",
+"x. c #F30000",
+"y. c #E40909",
+"z. c #E32323",
+"A. c #EE8484",
+"B. c #FEF8F8",
+"C. c #F29E9E",
+"D. c #DB1C1B",
+"E. c #C80905",
+"F. c #DA0101",
+"G. c #E50000",
+"H. c #F80000",
+"I. c #F90000",
+"J. c #EA0000",
+"K. c #E31B1B",
+"L. c #FAE0E0",
+"M. c #EC7676",
+"N. c #FDF5F5",
+"O. c #EC5656",
+"P. c #EE0000",
+"Q. c #DA0808",
+"R. c #C3221A",
+"S. c #A71F0D",
+"T. c #CF0303",
+"U. c #DA0000",
+"V. c #E40000",
+"W. c #FA0000",
+"X. c #EB0000",
+"Y. c #E11414",
+"Z. c #E44B4B",
+"`. c #F3ABAB",
+" + c #F5ABAB",
+".+ c #D80000",
+"++ c #D21919",
+"@+ c #9C3016",
+"#+ c #BE0301",
+"$+ c #E00000",
+"%+ c #E40303",
+"&+ c #DF1414",
+"*+ c #FCEBEB",
+"=+ c #EA7878",
+"-+ c #EE8E8E",
+";+ c #F5B0B0",
+">+ c #DF0000",
+",+ c #CA0202",
+"'+ c #B2150B",
+")+ c #B01709",
+"!+ c #D00000",
+"~+ c #E90000",
+"{+ c #E51C1C",
+"]+ c #F8D2D2",
+"^+ c #FEFDFD",
+"/+ c #EA7979",
+"(+ c #F0A0A0",
+"_+ c #EE7272",
+":+ c #AC1C0B",
+"<+ c #C21006",
+"[+ c #E00707",
+"}+ c #DF4040",
+"|+ c #F9DBDB",
+"1+ c #E01111",
+"2+ c #C11106",
+"3+ c #A92C12",
+"4+ c #D90301",
+"5+ c #DE0808",
+"6+ c #ED8D8D",
+"7+ c #F2B2B2",
+"8+ c #E55555",
+"9+ c #DF0404",
+"0+ c #D60602",
+"a+ c #BF1F0C",
+"b+ c #E97B7B",
+"c+ c #DC2B2B",
+"d+ c #DC1010",
+"e+ c #B52911",
+"f+ c #C92317",
+"g+ c #E30303",
+"h+ c #DE3232",
+"i+ c #E98383",
+"j+ c #F5C5C5",
+"k+ c #D50101",
+"l+ c #E51515",
+"m+ c #C04432",
+"n+ c #AC2F1A",
+"o+ c #D81E1E",
+"p+ c #DD0C0C",
+"q+ c #DD0000",
+"r+ c #D90C0C",
+"s+ c #F8D5D5",
+"t+ c #EA9090",
+"u+ c #F2B9B9",
+"v+ c #D30000",
+"w+ c #DE1C1C",
+"x+ c #DC3E3D",
+"y+ c #A64329",
+"z+ c #983017",
+"A+ c #C4231F",
+"B+ c #D11313",
+"C+ c #E14D4D",
+"D+ c #F7D9D9",
+"E+ c #DF5E5E",
+"F+ c #FAE8E8",
+"G+ c #D92D2D",
+"H+ c #D40303",
+"I+ c #D5292A",
+"J+ c #C6443D",
+"K+ c #AC261C",
+"L+ c #C51A1A",
+"M+ c #C80202",
+"N+ c #DC0000",
+"O+ c #D70101",
+"P+ c #E36262",
+"Q+ c #F3C4C4",
+"R+ c #DB5353",
+"S+ c #D21010",
+"T+ c #C80606",
+"U+ c #CC3737",
+"V+ c #AE4235",
+"W+ c #AE0706",
+"X+ c #B90909",
+"Y+ c #C00000",
+"Z+ c #C90000",
+"`+ c #D10000",
+" @ c #D83535",
+".@ c #FCF2F2",
+"+@ c #DE6D6D",
+"@@ c #F1BEBE",
+"#@ c #CC0000",
+"$@ c #BF0000",
+"%@ c #BB1313",
+"&@ c #A41B12",
+"*@ c #8D2810",
+"=@ c #B60000",
+"-@ c #C10000",
+";@ c #D31D1D",
+">@ c #E17474",
+",@ c #FBEEEE",
+"'@ c #DF7474",
+")@ c #CA0303",
+"!@ c #CD0000",
+"~@ c #B50000",
+"{@ c #AB0A04",
+"]@ c #BE0000",
+"^@ c #C70000",
+"/@ c #CC0202",
+"(@ c #D12A2A",
+"_@ c #D44545",
+":@ c #EFBABA",
+"<@ c #EAA4A4",
+"[@ c #CB0909",
+"}@ c #C60000",
+"|@ c #BD0000",
+"1@ c #A21408",
+"2@ c #B90000",
+"3@ c #C20000",
+"4@ c #D03333",
+"5@ c #F3CECE",
+"6@ c #E07B7B",
+"7@ c #E48888",
+"8@ c #CB0000",
+"9@ c #B70100",
+"0@ c #BB0000",
+"a@ c #C80000",
+"b@ c #C50000",
+"c@ c #CB2424",
+"d@ c #F5D7D7",
+"e@ c #D75C5C",
+"f@ c #ECB3B3",
+"g@ c #C40202",
+"h@ c #BA0000",
+"i@ c #991E0C",
+"j@ c #B10100",
+"k@ c #B50D05",
+"l@ c #B80C05",
+"m@ c #C30000",
+"n@ c #C40000",
+"o@ c #C61515",
+"p@ c #EAA8A8",
+"q@ c #EAAAAA",
+"r@ c #E7A0A0",
+"s@ c #C10202",
+"t@ c #A51E0C",
+"u@ c #903515",
+"v@ c #BA0602",
+"w@ c #B80000",
+"x@ c #AF0301",
+"y@ c #8C250F",
+"z@ c #AF0000",
+"A@ c #B30000",
+"B@ c #B40201",
+"C@ c #8A3414",
+"D@ c #B00E06",
+"E@ c #C51111",
+"F@ c #E38E8E",
+"G@ c #E69C9C",
+"H@ c #D35656",
+"I@ c #BE0202",
+"J@ c #BC0101",
+"K@ c #9D210D",
+"L@ c #912C11",
+"M@ c #AE0000",
+"N@ c #8A2810",
+"O@ c #A20301",
+"P@ c #A70000",
+"Q@ c #A80100",
+"R@ c #8E230E",
+"S@ c #AA0E06",
+"T@ c #E18686",
+"U@ c #CA2B2B",
+"V@ c #C51E1E",
+"W@ c #B70101",
+"X@ c #93250F",
+"Y@ c #941C0B",
+"Z@ c #A90000",
+"`@ c #990D05",
+" # c #7F2810",
+".# c #8F1307",
+"+# c #A40E06",
+"@# c #C41212",
+"## c #D96666",
+"$# c #BC0000",
+"%# c #B30101",
+"&# c #8F240E",
+"*# c #940C05",
+"=# c #9F0E06",
+"-# c #B00000",
+";# c #C01010",
+"># c #D76868",
+",# c #AF0101",
+"'# c #8B240E",
+")# c #990E06",
+"!# c #AA0000",
+"~# c #BE1818",
+"{# c #D26161",
+"]# c #AA0101",
+"^# c #87240E",
+"/# c #930E06",
+"(# c #A40000",
+"_# c #BC2424",
+":# c #C12F2F",
+"<# c #B10000",
+"[# c #A40101",
+"}# c #81250F",
+"|# c #8D0E05",
+"1# c #9D0000",
+"2# c #A30000",
+"3# c #AB0000",
+"4# c #A20000",
+"5# c #80220D",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" . + @ # # $ % & * ",
+" = - ; > , ' ) > ; ! ~ ",
+" { ] ^ / ( _ : < ^ [ } ",
+" | 1 < 2 3 4 5 6 7 8 9 ",
+" 0 < a b c d e f g h i ",
+" j k l m n d o p q r s t u v w ",
+" x y z A B C D E F G H I J K L M N O P ",
+" Q R S T U V W X Y Z c ` ...+.@.#.$. %.&.J T S *.=. ",
+" -.;.>.,.'.).!.~.{.].^./.(._.:.<.;.[.}.|.1.2.3.'.'.,.>.4.5. ",
+" 6.7.'.8.9.9.9.0.a.b.c.d.e.f.g.h.i.j.>.,.k.l.8.0.9.m.0.n.,.o.p. ",
+" q.r.>.n.s.t.u.t.v.w.x.9.8.d.y.z.A.B.C.>.d.n.9.x.v.t.u.v.s.n.>.D. ",
+" E.F.G.0.w.H.I.I.I.H.t.x.0.J.G.K.L.M.N.O.d.8.s.t.H.I.I.u.w.P.G.Q.R. ",
+" S.T.U.V.8.x.u.I.I.W.I.H.v.m.X.G.Y.q Z.`. +'.P.x.t.I.I.I.t.x.n.>..+++@+ ",
+" #+] 6 $+d.0.x.t.H.H.H.u.w.9.J.%+&+*+=+-+;+,.n.s.t.u.u.t.x.P.'.>+m ,+'+ ",
+" )+!+S ^.~+P.s.w.t.t.t.s.P.d.{+]+^+/+(+_+G.X.m.w.v.w.s.8.d.[..+1 :+ ",
+" <+U.^.~+8.m.x.w.x.0.X.G.[+p B.}+|+1+G.X.0.m.s.9.8.d.^.S 2+ ",
+" 3+4+V.~+8.9.m.9.n.d.^.5+6+ .7+8+9+V.J.P.0.0.8.~+>.0+ ",
+" a+,.~+n.P.n.~+V.>+S b+|+c+d+>+V.~+n.8.n.~+G.e+ ",
+" f+g+'.~+J.~+,.$+T h+i+j+k+S ;.V.'.J.X.J.,.l+m+ ",
+" n+o+p+[.G.'.'.,.^.q+r+s+t+u+v+.+q+^.,.~+~+'.G.[.w+x+y+ ",
+" z+A+B+k+T $+>.V.V.^.;.S C+D+E+F+G+6 T $+>.,.,.G.^.$+U.H+I+J+ ",
+" K+L+M+^ 6 T >+[.^.[.$+N+O+P+Q+R+N.S+7 S ;.[.>.>.>.[.>+U.6 1 T+U+V+ ",
+" W+X+Y+Z+`+g T q+>+$+;.N+S 2 @.@+@@@#@!+m U.q+>+$+$+;.q+T 6 !+Z+$@%@&@ ",
+" *@=@-@] `+g U.T N+N+T S 6 < ;@>@,@'@)@!@< m S T N+q+N+T U.6 `+Z+$@~@ ",
+" {@]@^@^ 7 g .+.+.+g m < ^ /@(@_@:@<@[@!@`+7 6 g .+.+.+g 7 1 }@|@1@ ",
+" 2@3@] ^ < < < `+`+!+1 #@Z+^@4@5@6@7@Z+8@!@^ `+`+< v+`+^ Z+-@9@ ",
+" 1@0@3@^@] 8@] ] Z+Z+Z+a@^@b@c@d@e@f@g@}@^@a@a@Z+] 8@] ^@3@h@i@ ",
+" j@2@]@Y+-@Y+Y+k@ l@m@n@m@o@p@q@r@s@-@t@u@v@Y+Y+-@Y+|@w@x@ ",
+" y@z@A@~@=@B@C@ D@$@Y+-@E@F@G@H@I@J@K@ L@=@=@~@A@M@N@ ",
+" O@P@Q@R@ S@h@]@Y+E@T@U@V@0@W@X@ Y@Z@P@`@ ",
+" #.# +#=@0@]@@###$@$#w@%#&# *# ",
+" =#-#=@h@;#>#$#2@~@,#'# ",
+" )#!#-#~@~#{#w@~@z@]#^# ",
+" /#(#!#M@_#:#<#M@Z@[#}# ",
+" |#1#2#P@!#3#!#P@4#1#5# ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};

View File

@ -0,0 +1,639 @@
diff -Nru unixodbc-gui-qt-2.3.0.orig//gtrtstQ4/autotest.h unixodbc-gui-qt-2.3.0/gtrtstQ4/autotest.h
--- unixodbc-gui-qt-2.3.0.orig//gtrtstQ4/autotest.h 1970-01-01 01:00:00.000000000 +0100
+++ unixodbc-gui-qt-2.3.0/gtrtstQ4/autotest.h 2010-12-24 21:44:28.711639647 +0100
@@ -0,0 +1,154 @@
+/*---------------------------------------------------------------------------------
+ | Title: AUTOTEST.H
+ |
+ | This file contains constants and prototypes required to compile an
+ | Auto Test DLL.
+ |
+ | Should be consistant with MS version
+ |
+ *---------------------------------------------------------------------------------*/
+#ifndef AUTOTEST_DEFS
+#define AUTOTEST_DEFS
+
+#include <stdlib.h>
+#include <string.h>
+#include "sql.h"
+#include "sqlext.h"
+#include "sqltypes.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#ifdef PATH_MAX
+#define _MAX_PATH PATH_MAX
+#else
+#define _MAX_PATH 256
+#endif
+
+extern HINSTANCE hLoadedInst;
+
+/*----------------------------------------------------------------------------------
+ Defines and Macros
+----------------------------------------------------------------------------------*/
+
+#define TEST_ABORTED (-1)
+
+#define AUTO_MAX_TEST_NAME 35
+#define AUTO_MAX_TESTCASE_NAME 35
+#define AUTO_MAX_TESTDESC_NAME 75
+
+#define MAXFLUSH 300
+#define MAX_USER_INFO 50
+#define MAX_KEYWORD_LEN 149
+
+#define EXTFUNCDECL
+#define EXTFUN
+
+#define InitTest(lps) \
+{ lps->cErrors=0; }
+#define AbortTest(lps) \
+{ lps->cErrors=TEST_ABORTED; }
+
+#define AllocateMemory(cb) (calloc(cb,1))
+#define ReleaseMemory(lp) (free(lp))
+
+#define NumItems(s) (sizeof(s) / sizeof(s[0]))
+
+/* Following will access bit number pos in a bit array and return */
+/* TRUE if it is set, FALSE if it is not */
+#define CQBITS (sizeof(unsigned int) * 8)
+#define getqbit(lpa, pos) \
+ (lpa[((pos) / CQBITS)] & (1 << ((pos) - (CQBITS * ((pos) / CQBITS)))))
+#define GETBIT(p1,p2) getqbit(p1,(p2)-1)
+
+/*
+ * Message box defines
+ */
+
+#define MB_OK (0x0000)
+#define MB_ABORTRETRYIGNORE (0x0001)
+#define MB_OKCANCEL (0x0002)
+#define MB_RETRYCANCEL (0x0003)
+#define MB_YESNO (0x0004)
+#define MB_YESNOCANCEL (0x0005)
+
+#define MB_ICONEXCLAMATION (0x0000)
+#define MB_ICONWARNING MB_ICONEXCLAMATION
+#define MB_ICONINFORMATION (0x0010)
+#define MB_ICONASTERISK MB_ICONINFORMATION
+#define MB_ICONQUESTION (0x0020)
+#define MB_ICONSTOP (0x0030)
+#define MB_ICONERROR MB_ICONSTOP
+#define MB_ICONHAND MB_ICONSTOP
+
+#define MB_DEFBUTTON1 (0x0000)
+#define MB_DEFBUTTON2 (0x0100)
+#define MB_DEFBUTTON3 (0x0200)
+#define MB_DEFBUTTON4 (0x0300)
+
+#define MB_APPMODAL (0x0000)
+#define MB_SYSTEMMODAL (0x1000)
+#define MB_TASKMODAL (0x2000)
+
+#define MB_DEFAULT_DESKTOP_ONLY (0x0000)
+#define MB_HELP (0x0000)
+#define MB_RIGHT (0x0000)
+#define MB_RTLREADING (0x0000)
+#define MB_SETFOREGROUND (0x0000)
+#define MB_TOPMOST (0x0000)
+#define MB_SERVICE_NOTIFICATION (0x0000)
+#define MB_SERVICE_NOTIFICATION_NT3X (0x0000)
+
+/*
+// This structure contains the information found in the .INI file for a
+// data source. The filled out structure is in turn passed to AutoTestFunc
+// to drive the individual tests.
+*/
+typedef struct tagSERVERINFO {
+ HWND hwnd; /* Output edit window */
+ CHAR szLogFile[_MAX_PATH]; /* Output log file */
+ HENV henv; /* .EXE's henv */
+ HDBC hdbc; /* .EXE's hdbc */
+ HSTMT hstmt; /* .EXE's hstmt */
+
+ /* The following items are gathered from the .INI file and may be defined */
+ /* via the "Manage Test Sources" menu item from ODBC Test */
+ CHAR szSource[SQL_MAX_DSN_LENGTH+1];
+ CHAR szValidServer0[SQL_MAX_DSN_LENGTH+1];
+ CHAR szValidLogin0[MAX_USER_INFO+1];
+ CHAR szValidPassword0[MAX_USER_INFO+1];
+ CHAR szKeywords[MAX_KEYWORD_LEN+1];
+
+ /* Following are used for run-time */
+ UINT FAR * rglMask; /* Run test mask */
+ int failed; /* Track failures on a test case basis */
+ int cErrors; /* Count of errors */
+ BOOL fDebug; /* TRUE if debugging is to be enabled */
+ BOOL fScreen; /* TRUE if test output goes to screen */
+ BOOL fLog; /* TRUE if test output goes to log */
+ BOOL fIsolate; /* TRUE to isolate output */
+ UDWORD vCursorLib; /* Value for SQL_ODBC_CURSOR on SQLSetConnectOption */
+ HINSTANCE hLoadedInst; /* Instance handle of loaded test */
+
+ /* Following are used for buffering output to edit window */
+ CHAR szBuff[MAXFLUSH]; /* Hold temporary results */
+ UINT cBuff; /* Number of TCHARs in szBuff */
+ } SERVERINFO;
+typedef SERVERINFO FAR * lpSERVERINFO;
+
+
+/*----------------------------------------------------------------------------------
+// Function prototypes
+//---------------------------------------------------------------------------------*/
+BOOL EXTFUNCDECL FAR szLogPrintf(lpSERVERINFO lps, BOOL fForce, LPTSTR szFmt, ...);
+int EXTFUNCDECL FAR szMessageBox(HWND hwnd, UINT style, LPTSTR szTitle, LPTSTR szFmt, ...);
+LPTSTR EXTFUN GetRCString(HINSTANCE hInst, LPTSTR buf, int cbbuf, UINT ids);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff -Nru unixodbc-gui-qt-2.3.0.orig//ini/ini.h unixodbc-gui-qt-2.3.0/ini/ini.h
--- unixodbc-gui-qt-2.3.0.orig//ini/ini.h 1970-01-01 01:00:00.000000000 +0100
+++ unixodbc-gui-qt-2.3.0/ini/ini.h 2010-12-24 21:44:22.367568102 +0100
@@ -0,0 +1,477 @@
+/**********************************************************************************
+ * ini.h
+ *
+ * Include file for libini.a. Coding? Include this and link against libini.a.
+ *
+ *
+ **************************************************
+ * This code was created by Peter Harvey @ CodeByDesign.
+ * Released under LGPL 28.JAN.99
+ *
+ * Contributions from...
+ * -----------------------------------------------
+ * Peter Harvey - pharvey@codebydesign.com
+ **************************************************/
+
+#ifndef INCLUDED_INI_H
+#define INCLUDED_INI_H
+
+/*********[ CONSTANTS AND TYPES ]**************************************************/
+#include <stdlib.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <string.h>
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#define STDINFILE ((char*)-1)
+
+#define INI_NO_DATA 2
+#define INI_SUCCESS 1
+#define INI_ERROR 0
+
+#define INI_MAX_LINE 1000
+#define INI_MAX_OBJECT_NAME INI_MAX_LINE
+#define INI_MAX_PROPERTY_NAME INI_MAX_LINE
+#define INI_MAX_PROPERTY_VALUE INI_MAX_LINE
+
+#if HAVE_LIMITS_H
+#include <limits.h>
+#endif
+
+#ifdef PATH_MAX
+#define ODBC_FILENAME_MAX PATH_MAX
+#elif MAXPATHLEN
+#define ODBC_FILENAME_MAX MAXPATHLEN
+#else
+#define ODBC_FILENAME_MAX FILENAME_MAX
+#endif
+
+/********************************************
+ * tINIPROPERTY
+ *
+ * Each property line has Name=Value pair.
+ * They are stored in this structure and linked together to provide a list
+ * of all properties for a given Object.
+ ********************************************/
+
+typedef struct tINIPROPERTY
+{
+ struct tINIPROPERTY *pNext;
+ struct tINIPROPERTY *pPrev;
+
+ char szName[INI_MAX_PROPERTY_NAME+1];
+ char szValue[INI_MAX_PROPERTY_VALUE+1];
+
+} INIPROPERTY, *HINIPROPERTY;
+
+/********************************************
+ * tINIOBJECT
+ *
+ * Each object line has just an object name. This structure
+ * stores the object name and its subordinate information.
+ * The lines that follow are considered to be properties
+ * and are stored in a list of tINIPROPERTY.
+ ********************************************/
+
+typedef struct tINIOBJECT
+{
+ struct tINIOBJECT *pNext;
+ struct tINIOBJECT *pPrev;
+
+ char szName[INI_MAX_OBJECT_NAME+1];
+
+ HINIPROPERTY hFirstProperty;
+ HINIPROPERTY hLastProperty;
+ int nProperties;
+
+} INIOBJECT, *HINIOBJECT;
+
+/********************************************
+ * tINI
+ *
+ * Each INI file contains a list of objects. This
+ * structure stores each object in a list of tINIOBJECT.
+ ********************************************/
+
+typedef struct tINI
+{
+#ifdef __OS2__
+ int iniFileType; /* ini file type 0 = text, 1 = binary (OS/2 only) */
+#endif
+ char szFileName[ODBC_FILENAME_MAX+1]; /* FULL INI FILE NAME */
+ char cComment[ 5 ]; /* COMMENT CHAR MUST BE IN FIRST COLUMN */
+ char cLeftBracket; /* BRACKETS DELIMIT THE OBJECT NAME, THE LEFT BRACKET MUST BE IN COLUMN ONE */
+ char cRightBracket;
+ char cEqual; /* SEPERATES THE PROPERTY NAME FROM ITS VALUE */
+ int bChanged; /* IF true, THEN THE WHOLE FILE IS OVERWRITTEN UPON iniCommit */
+ int bReadOnly; /* TRUE IF AT LEAST ONE CALL HAS BEEN MADE TO iniAppend() */
+
+ HINIOBJECT hFirstObject;
+ HINIOBJECT hLastObject;
+ HINIOBJECT hCurObject;
+ int nObjects;
+
+ HINIPROPERTY hCurProperty;
+
+} INI, *HINI;
+
+/********************************************
+ * tINIBOOKMARK
+ *
+ * Used to store the current Object and Property pointers so
+ * that the caller can quickly return to some point in the
+ * INI data.
+ ********************************************/
+
+typedef struct tINIBOOKMARK
+{
+ HINI hIni;
+ HINIOBJECT hCurObject;
+ HINIPROPERTY hCurProperty;
+
+} INIBOOKMARK, *HINIBOOKMARK;
+
+#if defined(__cplusplus)
+ extern "C" {
+#endif
+
+/*********[ PRIMARY INTERFACE ]*****************************************************/
+
+/******************************
+ * iniOpen
+ *
+ * 1. make sure file exists
+ * 2. allocate memory for HINI
+ * 3. initialize HINI
+ * 4. load entire file into structured memory
+ * 5. set TRUE if you want to create file if non-existing
+ ******************************/
+#ifdef __OS2__
+int iniOpen( HINI *hIni, char *pszFileName, char *cComment, char cLeftBracket, char cRightBracket, char cEqual, int bCreate, int bFileType );
+#else
+int iniOpen( HINI *hIni, char *pszFileName, char *cComment, char cLeftBracket, char cRightBracket, char cEqual, int bCreate );
+#endif
+/******************************
+ * iniAppend
+ *
+ * 1. append Sections in pszFileName that do not already exist in hIni
+ * 2. Makes hIni ReadOnly!
+ ******************************/
+int iniAppend( HINI hIni, char *pszFileName );
+
+/******************************
+ * iniDelete
+ *
+ * 1. simple removes all objects (and their properties) from the list using iniObjectDelete() in a loop
+ ******************************/
+int iniDelete( HINI hIni );
+
+/******************************
+ * iniClose
+ *
+ * 1. free memory previously allocated for HINI
+ * 2. DO NOT SAVE ANY CHANGES (see iniCommit)
+ ******************************/
+int iniClose( HINI hIni );
+
+/******************************
+ * iniCommit
+ *
+ * 1. replaces file contents with memory contents (overwrites the file)
+ ******************************/
+int iniCommit( HINI hIni );
+
+/******************************
+ * iniObjectFirst
+ *
+ ******************************/
+int iniObjectFirst( HINI hIni );
+
+/******************************
+ * iniObjectLast
+ *
+ ******************************/
+int iniObjectLast( HINI hIni );
+
+/******************************
+ * iniObjectNext
+ *
+ * 1. iniObjects() if no current object name else
+ * 2. find and store next object name
+ ******************************/
+int iniObjectNext( HINI hIni );
+
+/******************************
+ * iniObjectSeek
+ *
+ * 1. find and store object name
+ ******************************/
+int iniObjectSeek( HINI hIni, char *pszObject );
+
+/******************************
+ * iniObjectSeekSure
+ *
+ * 1. find and store object name
+ * 2. ensure that it exists
+ ******************************/
+int iniObjectSeekSure( HINI hIni, char *pszObject );
+
+/******************************
+ * iniObjectEOL
+ *
+ ******************************/
+int iniObjectEOL( HINI hIni );
+
+/******************************
+ * iniObject
+ *
+ * 1. returns the current object name
+ ******************************/
+int iniObject( HINI hIni, char *pszObject );
+
+/******************************
+ * iniObjectDelete
+ *
+ * 1. deletes current Object
+ ******************************/
+int iniObjectDelete( HINI hIni );
+
+/******************************
+ * iniObjectUpdate
+ *
+ * 1. update current Object
+ ******************************/
+int iniObjectUpdate( HINI hIni, char *pszObject );
+
+/******************************
+ * iniPropertyObject
+ *
+ * 1. inserts a new Object
+ * 2. becomes current
+ ******************************/
+int iniObjectInsert( HINI hIni, char *pszObject );
+
+/******************************
+ * iniPropertyFirst
+ *
+ ******************************/
+int iniPropertyFirst( HINI hIni );
+
+/******************************
+ * iniPropertyLast
+ *
+ ******************************/
+int iniPropertyLast( HINI hIni );
+
+/******************************
+ * iniPropertyNext
+ *
+ * 1. iniProperties() if no current property name else
+ * 2. find and store next property name
+ ******************************/
+int iniPropertyNext( HINI hIni );
+
+/******************************
+ * iniPropertySeek
+ *
+ * 1. set current Object & Property positions where matching parameters
+ * 2. any parms which are empty strings (ie pszObject[0]) are ignored
+ * 3. it is kinda pointless to pass empty strings for all parms... you will get 1st Property in 1st Object
+ ******************************/
+int iniPropertySeek( HINI hIni, char *pszObject, char *pszProperty, char *pszValue );
+
+/******************************
+ * iniPropertySeekSure
+ *
+ * 1. same as iniPropertySeek but
+ * 2. will ensure that both Object and Property exist
+ ******************************/
+int iniPropertySeekSure( HINI hIni, char *pszObject, char *pszProperty, char *pszValue );
+
+/******************************
+ * iniPropertyEOL
+ *
+ ******************************/
+int iniPropertyEOL( HINI hIni );
+
+/******************************
+ * iniProperty
+ *
+ * 1. returns the current property name
+ ******************************/
+int iniProperty( HINI hIni, char *pszProperty );
+
+/******************************
+ * iniPropertyDelete
+ *
+ * 1. deletes current Property
+ ******************************/
+int iniPropertyDelete( HINI hIni );
+
+/******************************
+ * iniPropertyUpdate
+ *
+ * 1. update current Property
+ ******************************/
+int iniPropertyUpdate( HINI hIni, char *pszProperty, char *pszValue );
+
+/******************************
+ * iniPropertyInsert
+ *
+ * 1. inserts a new Property for current Object
+ * 2. becomes current
+ ******************************/
+int iniPropertyInsert( HINI hIni, char *pszProperty, char *pszValue );
+
+/******************************
+ * iniValue
+ *
+ * 1. returns the value for the current object/property
+ ******************************/
+int iniValue( HINI hIni, char *pszValue );
+
+/******************************
+ * iniGetBookmark
+ *
+ * 1. Store the current data positions (Object and Property)
+ * into hIniBookmark.
+ * 2. Does not allocate memory for hIniBookmark so pass a
+ * pointer to a valid bookmark.
+ ******************************/
+int iniGetBookmark( HINI hIni, HINIBOOKMARK hIniBookmark );
+
+/******************************
+ * iniGotoBookmark
+ *
+ * 1. Sets the current Object and Property positions to
+ * those stored in IniBookmark.
+ * 2. Does not account for the bookmark becoming
+ * invalid ie from the Object or Property being deleted.
+ ******************************/
+int iniGotoBookmark( INIBOOKMARK IniBookmark );
+
+/******************************
+ * iniCursor
+ *
+ * 1. Returns a copy of the hIni with a new
+ * set of position cursors (current Object and Property).
+ * 2. Not safe to use when in the possibility of
+ * deleting data in another cursor on same data.
+ * 3. Use when reading data only.
+ * 4. Does not allocate memory so hIniCursor should be valid.
+ * 5. All calls, other than those for movement, are
+ * global and will affect any other view of the data.
+ ******************************/
+int iniCursor( HINI hIni, HINI hIniCursor );
+
+/*************************************************************************************/
+/*********[ SUPPORT FUNCS ]***********************************************************/
+/*************************************************************************************/
+
+/******************************
+ * iniElement
+ *
+ ******************************/
+int iniElement( char *pszData, char cSeperator, char cTerminator, int nElement, char *pszElement, int nMaxElement );
+int iniElementMax( char *pData, char cSeperator, int nDataLen, int nElement, char *pszElement, int nMaxElement );
+int iniElementToEnd( char *pszData, char cSeperator, char cTerminator, int nElement, char *pszElement, int nMaxElement );
+int iniElementEOL( char *pszData, char cSeperator, char cTerminator, int nElement, char *pszElement, int nMaxElement );
+
+/******************************
+ * iniElementCount
+ *
+ ******************************/
+int iniElementCount( char *pszData, char cSeperator, char cTerminator );
+
+/******************************
+ * iniPropertyValue
+ *
+ * 1. returns the property value for pszProperty in pszValue
+ * 2. pszString example;
+ * "PropertyName1=Value1;PropertyName2=Value2;..."
+ * 3. cEqual is usually '='
+ * 4. cPropertySep is usually ';'
+ *
+ * This function can be called without calling any other functions in this lib.
+ ******************************/
+int iniPropertyValue( char *pszString, char *pszProperty, char *pszValue, char cEqual, char cPropertySep );
+
+/******************************
+ * iniAllTrim
+ *
+ * 1. trims blanks, tabs and newlines from start and end of pszString
+ *
+ * This function can be called without calling any other functions in this lib.
+ ******************************/
+int iniAllTrim( char *pszString );
+
+/******************************
+ * iniToUpper
+ *
+ * 1. Converts all chars in pszString to upper case.
+ *
+ * This function can be called without calling any other functions in this lib.
+ ******************************/
+int iniToUpper( char *pszString );
+
+
+/******************************
+ * _iniObjectRead
+ *
+ ******************************/
+int _iniObjectRead( HINI hIni, char *szLine, char *pszObjectName );
+
+/******************************
+ * _iniPropertyRead
+ *
+ ******************************/
+int _iniPropertyRead( HINI hIni, char *szLine, char *pszPropertyName, char *pszPropertyValue );
+
+/******************************
+ * _iniDump
+ *
+ ******************************/
+int _iniDump( HINI hIni, FILE *hStream );
+
+/******************************
+ * _iniScanUntilObject
+ *
+ ******************************/
+int _iniScanUntilObject( HINI hIni, FILE *hFile, char *pszLine );
+int _iniScanUntilNextObject( HINI hIni, FILE *hFile, char *pszLine );
+
+/*
+ * Some changes to avoid a 255 file handle limit, thanks MQJoe.
+ * Make it conditional as it does have some performance impact esp with LARGE ini files (like what I have :-)
+ */
+
+#if defined( HAVE_VSNPRINTF ) && defined( USE_LL_FIO )
+
+FILE *uo_fopen( const char *filename, const char *mode );
+int uo_fclose( FILE *stream );
+char *uo_fgets( char *szbuffer, int n, FILE *stream );
+int uo_fprintf( FILE *stream, const char *fmt, ...);
+int uo_vfprintf( FILE *stream, const char *fmt, va_list ap);
+
+#else
+
+#define uo_fopen fopen
+#define uo_fclose fclose
+#define uo_fgets fgets
+#define uo_fprintf fprintf
+#define uo_vfprintf vfprintf
+
+#endif
+
+#if defined(__cplusplus)
+ }
+#endif
+
+#endif

View File

@ -0,0 +1,11 @@
--- unixodbc-gui-qt-2.3.0.orig/ODBCTestQ4/OdbcHandle.h 2010-12-24 20:19:47.000000000 +0100
+++ unixodbc-gui-qt-2.3.0/ODBCTestQ4/OdbcHandle.h 2010-12-26 20:16:59.853246107 +0100
@@ -106,7 +106,7 @@
{
public:
OdbcHandle( int t, SQLHANDLE h, QList<OdbcHandle*> &list );
- OdbcHandle( int t, SQLHANDLE h, QString desc = NULL, SQLHANDLE stmt = SQL_NULL_HANDLE );
+ OdbcHandle( int t, SQLHANDLE h, QString desc = QString::null, SQLHANDLE stmt = SQL_NULL_HANDLE );
OdbcHandle( OdbcHandle &e );
~OdbcHandle();
char * toStr( char * str );

102
unixodbc-gui-qt.spec Normal file
View File

@ -0,0 +1,102 @@
Name: unixodbc-gui-qt
Version: 2.3.0
Release: 1mamba
Summary: Qt based GUI bits for unixODBC
Group: Graphical Desktop/Applications/Databases
Vendor: openmamba
Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: http://unixodbc-gui-qt.sourceforge.net/
Source: http://unixodbc-gui-qt.sourceforge.net/unixodbc-gui-qt-%{version}.tar.gz
Patch0: %{name}-2.3.0-missing_headers.patch
Patch1: %{name}-2.3.0-qt-4.7.1.patch
Patch2: %{name}-2.3.0-ODBCTestQ4_xpm.patch
# Create source tarball with:
# svn co https://unixodbc-gui-qt.svn.sourceforge.net/svnroot/unixodbc-gui-qt unixodbc-gui-qt
# cd unixodbc-gui-qt/trunk
# make -f Makefile.svn
# ./configure --with-qt-dir-lib=/usr/lib/qt4 --with-qt-dir-include=/usr/include/qt4 --with-qt-bin=/usr/lib/qt4/bin MOC=/usr/lib/qt4/bin/moc UIC=/usr/lib/qt4/bin/uic
# make dist
License: LGPL
## AUTOBUILDREQ-BEGIN
## note: run 'autospec -u -a6 unixodbc-gui-qt' to get the list of build requirements.
## AUTOBUILDREQ-END
Provides: unixODBC-qt-gui
Obsoletes: unixODBC-qt-gui
BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description
Qt based GUI bits for unixODBC. Includes configuration interface and data manager.
%package devel
Summary: Devel package for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
Qt based GUI bits for unixODBC. Includes configuration interface and data manager.
This package contains static libraries and header files need for development.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%build
%configure \
--with-qt-dir-lib=%{_qt4_libdir} \
--with-qt-dir-include=%{_qt4_headerdir} \
--with-qt-bin=%{_qt4_bindir} \
MOC=%{_qt4_bindir}/moc \
UIC=%{_qt4_bindir}/uic
# quite ugly but don't have a lot of time now
touch gtrtstQ4/gtrtstQ4.exp
cp gtrtstQ4/autotest.h ODBCTestQ4/
%make
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%makeinstall
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
## remove this block if no service is provided by this package
%preun
if [ $1 -eq 0 ]; then
/sbin/service <daemon_name> stop &>/dev/null || :
/sbin/chkconfig --del <daemon_name>
fi
exit 0
## remove this block if no service is provided by this package
%postun
if [ $1 -ge 1 ]; then
/sbin/service <daemon_name> condrestart &>/dev/null || :
fi
exit 0
%files
%defattr(-,root,root)
%{_bindir}/ODBCCreateDataSourceQ4
%{_bindir}/ODBCManageDataSourcesQ4
%{_bindir}/ODBCTestQ4
%{_libdir}/libgtrtstQ4.so.*
%{_libdir}/libodbcinstQ4.so.*
#%doc AUTHORS COPYING ChangeLog NEWS README
%files devel
%defattr(-,root,root)
%{_libdir}/libgtrtstQ4.a
%{_libdir}/libgtrtstQ4.la
%{_libdir}/libgtrtstQ4.so
%{_libdir}/libodbcinstQ4.a
%{_libdir}/libodbcinstQ4.la
%{_libdir}/libodbcinstQ4.so
%changelog
* Fri Dec 24 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 2.3.0-1mamba
- package created by autospec