]> git.saurik.com Git - wxWidgets.git/blame - src/xpm/misc.c
Fixed toolbar crash for MinGW/Cygwin
[wxWidgets.git] / src / xpm / misc.c
CommitLineData
cfbe03c9 1/*
e6ed776f 2 * Copyright (C) 1989-95 GROUPE BULL
cfbe03c9
JS
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to
6 * deal in the Software without restriction, including without limitation the
7 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8 * sell copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 *
21 * Except as contained in this notice, the name of GROUPE BULL shall not be
22 * used in advertising or otherwise to promote the sale, use or other dealings
23 * in this Software without prior written authorization from GROUPE BULL.
24 */
25
26/*****************************************************************************\
27* misc.c: *
28* *
29* XPM library *
30* Miscellaneous utilities *
31* *
32* Developed by Arnaud Le Hors *
33\*****************************************************************************/
34
e6ed776f 35#include "XpmI.h"
cfbe03c9
JS
36
37#ifdef NEED_STRDUP
38/*
39 * in case strdup is not provided by the system here is one
40 * which does the trick
41 */
ea258ad3
DW
42#ifdef __OS2__
43/* Visual Age cannot deal with old, non-ansi, code */
44char* xpmstrdup(char* s1)
45#else
cfbe03c9 46char *
e6ed776f
GRG
47xpmstrdup(s1)
48 char *s1;
ea258ad3 49#endif
cfbe03c9
JS
50{
51 char *s2;
52 int l = strlen(s1) + 1;
53
54 if (s2 = (char *) XpmMalloc(l))
e6ed776f 55 strcpy(s2, s1);
cfbe03c9
JS
56 return s2;
57}
58
59#endif
60
ea258ad3
DW
61#ifdef __OS2__
62/* Visual Age cannot deal with old, non-ansi, code */
63unsigned int
64xpmatoui(
65 register char* p
66, unsigned int l
67, unsigned int* ui_return
68)
69#else
cfbe03c9 70unsigned int
e6ed776f
GRG
71xpmatoui(p, l, ui_return)
72 register char *p;
73 unsigned int l;
74 unsigned int *ui_return;
ea258ad3 75#endif
cfbe03c9
JS
76{
77 register unsigned int n, i;
78
79 n = 0;
80 for (i = 0; i < l; i++)
81 if (*p >= '0' && *p <= '9')
82 n = n * 10 + *p++ - '0';
83 else
84 break;
85
86 if (i != 0 && i == l) {
87 *ui_return = n;
88 return 1;
89 } else
90 return 0;
91}
92
cfbe03c9 93/*
e6ed776f 94 * Function returning a character string related to an error code.
cfbe03c9 95 */
ea258ad3
DW
96#ifdef __OS2__
97/* Visual Age cannot deal with old, non-ansi, code */
98char* XpmGetErrorString(int errcode)
99#else
cfbe03c9 100char *
e6ed776f
GRG
101XpmGetErrorString(errcode)
102 int errcode;
ea258ad3 103#endif
cfbe03c9
JS
104{
105 switch (errcode) {
106 case XpmColorError:
107 return ("XpmColorError");
108 case XpmSuccess:
109 return ("XpmSuccess");
110 case XpmOpenFailed:
111 return ("XpmOpenFailed");
112 case XpmFileInvalid:
113 return ("XpmFileInvalid");
114 case XpmNoMemory:
115 return ("XpmNoMemory");
116 case XpmColorFailed:
117 return ("XpmColorFailed");
118 default:
119 return ("Invalid XpmError");
120 }
121}
122
123/*
124 * The following function provides a way to figure out if the linked library is
125 * newer or older than the one with which a program has been first compiled.
126 */
127int
128XpmLibraryVersion()
129{
130 return XpmIncludeVersion;
131}
132
133
e6ed776f
GRG
134/* The following should help people wanting to use their own functions */
135#ifdef XpmFree
136#undef XpmFree
137#endif
cfbe03c9 138
ea258ad3
DW
139#ifdef __OS2__
140/* Visual Age cannot deal with old, non-ansi, code */
141void
142XpmFree(void* ptr)
143#else
cfbe03c9 144void
e6ed776f
GRG
145XpmFree(ptr)
146 void *ptr;
ea258ad3 147#endif
cfbe03c9 148{
e6ed776f 149 free(ptr);
cfbe03c9 150}