]> andersk Git - moira.git/blobdiff - lib/kname_unparse.c
Command line printer manipulation client, and build goo.
[moira.git] / lib / kname_unparse.c
index 920ace270825ff8701ee79cdb724fde49647a874..88a084e534028d5a09be79d987cea6698a89c11b 100644 (file)
-/* $Header$
+/* $Id$
  *
  * Don't know why this function is not in libkrb.a.  It's the inverse
  * of kname_parse() which is there.
+ *
+ * Copyright (C) 1993-1998 by the Massachusetts Institute of Technology
+ * For copying and distribution information, please see the file
+ * <mit-copyright.h>.
  */
 
+#include <mit-copyright.h>
+#include <moira.h>
+
 #include <stdio.h>
-#include <des.h>
+
+#ifdef HAVE_KRB4
 #include <krb.h>
+#else
+#include <mr_krb.h>
+#endif
+
+RCSID("$Header$");
 
-/* Turn a principal, instance, realm triple into a single non-ambiguous 
+/* Turn a principal, instance, realm triple into a single non-ambiguous
  * string.  This is the inverse of kname_parse().  It returns a pointer
  * to a static buffer, or NULL on error.
  */
 
-char *kname_unparse(p, i, r)
-char *p;
-char *i;
-char *r;
+char *mr_kname_unparse(char *p, char *i, char *r)
 {
-    static char name[MAX_K_NAME_SZ];
-    char *s;
+  static char name[MAX_K_NAME_SZ];
+  char *s;
 
-    s = name;
-    if (!p || strlen(p) > ANAME_SZ)
-      return(NULL);
-    while (*p) {
-       switch (*p) {
+  s = name;
+  if (!p || strlen(p) > ANAME_SZ)
+    return NULL;
+  while (*p)
+    {
+      switch (*p)
+       {
        case '@':
-           *s++ = '\\';
-           *s++ = '@';
-           break;
+         *s++ = '\\';
+         *s++ = '@';
+         break;
        case '.':
-           *s++ = '\\';
-           *s++ = '.';
-           break;
+         *s++ = '\\';
+         *s++ = '.';
+         break;
        case '\\':
-           *s++ = '\\';
-           *s++ = '\\';
-           break;
+         *s++ = '\\';
+         *s++ = '\\';
+         break;
        default:
-           *s++ = *p;
+         *s++ = *p;
        }
-       p++;
+      p++;
     }
-    if (i && *i) {
-       if (strlen(i) > INST_SZ)
-         return(NULL);
-       *s++ = '.';
-       while (*i) {
-           switch (*i) {
+  if (i && *i)
+    {
+      if (strlen(i) > INST_SZ)
+       return NULL;
+      *s++ = '.';
+      while (*i)
+       {
+         switch (*i)
+           {
            case '@':
-               *s++ = '\\';
-               *s++ = '@';
-               break;
+             *s++ = '\\';
+             *s++ = '@';
+             break;
            case '.':
-               *s++ = '\\';
-               *s++ = '.';
-               break;
+             *s++ = '\\';
+             *s++ = '.';
+             break;
            case '\\':
-               *s++ = '\\';
-               *s++ = '\\';
-               break;
+             *s++ = '\\';
+             *s++ = '\\';
+             break;
            default:
-               *s++ = *i;
+             *s++ = *i;
            }
-           i++;
+         i++;
        }
     }
-    *s++ = '@';
-    if (!r || strlen(r) > REALM_SZ)
-      return(NULL);
-    while (*r) {
-       switch (*r) {
+  *s++ = '@';
+  if (!r || strlen(r) > REALM_SZ)
+    return NULL;
+  while (*r)
+    {
+      switch (*r)
+       {
        case '@':
-           *s++ = '\\';
-           *s++ = '@';
-           break;
+         *s++ = '\\';
+         *s++ = '@';
+         break;
        case '\\':
-           *s++ = '\\';
-           *s++ = '\\';
-           break;
+         *s++ = '\\';
+         *s++ = '\\';
+         break;
        default:
-           *s++ = *r;
+         *s++ = *r;
        }
-       r++;
+      r++;
     }
-    *s = '\0';
-    return(&name[0]);
+  *s = '\0';
+  return &name[0];
 }
This page took 0.086603 seconds and 4 git commands to generate.