aboutsummaryrefslogtreecommitdiff
path: root/libXmu/src/StrToLong.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-11-06 11:37:48 +0000
committermarha <marha@users.sourceforge.net>2009-11-06 11:37:48 +0000
commitdc973fac7166624dc3aca9b32df02cc00e79ba85 (patch)
tree186af3c9707ed71a82a5502fc7b5bfae739361a6 /libXmu/src/StrToLong.c
parent3c406cef48ab3d9ae6cb490348c41c89638a1367 (diff)
parent5c97ea64d7046d0a9d654950946a0070ac1e355a (diff)
downloadvcxsrv-dc973fac7166624dc3aca9b32df02cc00e79ba85.tar.gz
vcxsrv-dc973fac7166624dc3aca9b32df02cc00e79ba85.tar.bz2
vcxsrv-dc973fac7166624dc3aca9b32df02cc00e79ba85.zip
Added libXmu
Diffstat (limited to 'libXmu/src/StrToLong.c')
-rw-r--r--libXmu/src/StrToLong.c83
1 files changed, 83 insertions, 0 deletions
diff --git a/libXmu/src/StrToLong.c b/libXmu/src/StrToLong.c
new file mode 100644
index 000000000..6a7539aa9
--- /dev/null
+++ b/libXmu/src/StrToLong.c
@@ -0,0 +1,83 @@
+/* $Xorg: StrToLong.c,v 1.4 2001/02/09 02:03:53 xorgcvs Exp $ */
+
+/*
+
+Copyright 1989, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+/* $XFree86: xc/lib/Xmu/StrToLong.c,v 1.8 2001/08/23 00:03:21 dawes Exp $ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <stdio.h>
+#include <X11/Intrinsic.h>
+#include <X11/Xmu/SysUtil.h>
+#include <X11/Xmu/Converters.h>
+
+void
+XmuCvtStringToLong(XrmValuePtr args, Cardinal *num_args,
+ XrmValuePtr fromVal, XrmValuePtr toVal)
+{
+ static long l;
+
+ if (*num_args != 0)
+ XtWarning("String to Long conversion needs no extra arguments");
+ if (sscanf((char *)fromVal->addr, "%ld", &l) == 1)
+ {
+ toVal->size = sizeof(long);
+ toVal->addr = (XPointer)&l;
+ }
+ else
+ XtStringConversionWarning((char *)fromVal->addr, XtRLong);
+}
+
+/*ARGSUSED*/
+Boolean
+XmuCvtLongToString(Display *dpy, XrmValuePtr args, Cardinal *num_args,
+ XrmValuePtr fromVal, XrmValuePtr toVal, XtPointer *data)
+{
+ static char buffer[32];
+ size_t size;
+
+ if (*num_args != 0)
+ XtWarning("Long to String conversion needs no extra arguments");
+
+ XmuSnprintf(buffer, sizeof(buffer), "%ld", *(long *)fromVal->addr);
+
+ size = strlen(buffer) + 1;
+ if (toVal->addr != NULL)
+ {
+ if (toVal->size < size)
+ {
+ toVal->size = size;
+ return (False);
+ }
+ strcpy((char *)toVal->addr, buffer);
+ }
+ else
+ toVal->addr = (XPointer)buffer;
+ toVal->size = sizeof(String);
+
+ return (True);
+}