aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/SM/sm_misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/lib/SM/sm_misc.c')
-rw-r--r--nx-X11/lib/SM/sm_misc.c217
1 files changed, 217 insertions, 0 deletions
diff --git a/nx-X11/lib/SM/sm_misc.c b/nx-X11/lib/SM/sm_misc.c
new file mode 100644
index 000000000..30c2c2d18
--- /dev/null
+++ b/nx-X11/lib/SM/sm_misc.c
@@ -0,0 +1,217 @@
+/* $Xorg: sm_misc.c,v 1.4 2001/02/09 02:03:30 xorgcvs Exp $ */
+
+/*
+
+Copyright 1993, 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.
+
+*/
+
+/*
+ * Author: Ralph Mor, X Consortium
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <X11/SM/SMlib.h>
+#include "SMlibint.h"
+#include <stdio.h>
+
+/*
+ * Free property
+ */
+
+void
+SmFreeProperty (prop)
+
+SmProp *prop;
+
+{
+ if (prop)
+ {
+ int i;
+
+ if (prop->name)
+ free (prop->name);
+ if (prop->type)
+ free (prop->type);
+ if (prop->vals)
+ {
+ for (i = 0; i < prop->num_vals; i++)
+ if (prop->vals[i].value)
+ free ((char *) prop->vals[i].value);
+ free ((char *) prop->vals);
+ }
+
+ free ((char *) prop);
+ }
+}
+
+
+/*
+ * Free reason messages
+ */
+
+void
+SmFreeReasons (count, reasonMsgs)
+
+int count;
+char **reasonMsgs;
+
+{
+ if (reasonMsgs)
+ {
+ int i;
+
+ for (i = 0; i < count; i++)
+ free (reasonMsgs[i]);
+
+ free ((char *) reasonMsgs);
+ }
+}
+
+
+
+/*
+ * Smc informational functions
+ */
+
+int
+SmcProtocolVersion (smcConn)
+
+SmcConn smcConn;
+
+{
+ return (smcConn->proto_major_version);
+}
+
+
+int
+SmcProtocolRevision (smcConn)
+
+SmcConn smcConn;
+
+{
+ return (smcConn->proto_minor_version);
+}
+
+
+char *
+SmcVendor (smcConn)
+
+SmcConn smcConn;
+
+{
+ char *string = (char *) malloc (strlen (smcConn->vendor) + 1);
+
+ strcpy (string, smcConn->vendor);
+
+ return (string);
+}
+
+
+char *
+SmcRelease (smcConn)
+
+SmcConn smcConn;
+
+{
+ char *string = (char *) malloc (strlen (smcConn->release) + 1);
+
+ strcpy (string, smcConn->release);
+
+ return (string);
+}
+
+
+char *
+SmcClientID (smcConn)
+
+SmcConn smcConn;
+
+{
+ char *clientId = (char *) malloc (strlen (smcConn->client_id) + 1);
+
+ strcpy (clientId, smcConn->client_id);
+
+ return (clientId);
+}
+
+
+IceConn
+SmcGetIceConnection (smcConn)
+
+SmcConn smcConn;
+
+{
+ return (smcConn->iceConn);
+}
+
+
+
+/*
+ * Sms informational functions
+ */
+
+int
+SmsProtocolVersion (smsConn)
+
+SmsConn smsConn;
+
+{
+ return (smsConn->proto_major_version);
+}
+
+
+int
+SmsProtocolRevision (smsConn)
+
+SmsConn smsConn;
+
+{
+ return (smsConn->proto_minor_version);
+}
+
+
+char *
+SmsClientID (smsConn)
+
+SmsConn smsConn;
+
+{
+ char *clientId = (char *) malloc (strlen (smsConn->client_id) + 1);
+
+ strcpy (clientId, smsConn->client_id);
+
+ return (clientId);
+}
+
+
+IceConn
+SmsGetIceConnection (smsConn)
+
+SmsConn smsConn;
+
+{
+ return (smsConn->iceConn);
+}