|
|
1.1 root 1: /* showname.c - */
2:
3: #ifndef lint
4: static char *rcsid = "$Header: /f/osi/quipu/dish/RCS/showname.c,v 7.0 89/11/23 22:20:24 mrose Rel $";
5: #endif
6:
7: /*
8: * $Header: /f/osi/quipu/dish/RCS/showname.c,v 7.0 89/11/23 22:20:24 mrose Rel $
9: *
10: *
11: * $Log: showname.c,v $
12: * Revision 7.0 89/11/23 22:20:24 mrose
13: * Release 6.0
14: *
15: */
16:
17: /*
18: * NOTICE
19: *
20: * Acquisition, use, and distribution of this module and related
21: * materials are subject to the restrictions of a license agreement.
22: * Consult the Preface in the User's Manual for the full terms of
23: * this agreement.
24: *
25: */
26:
27:
28: #include "quipu/util.h"
29: #include "quipu/name.h"
30:
31: extern DN current_dn;
32: extern DN dn;
33:
34: #define OPT (!frompipe || rps -> ps_byteno == 0 ? opt : rps)
35: #define RPS (!frompipe || opt -> ps_byteno == 0 ? rps : opt)
36: extern char frompipe;
37: extern PS opt, rps;
38:
39: extern char print_format;
40:
41:
42: call_showname (argc, argv)
43: int argc;
44: char **argv;
45: {
46: DN dnptr;
47: int compact = FALSE;
48: int x;
49: extern DN rel_dn;
50:
51: if ((argc = read_cache (argc, argv)) < 0)
52: return;
53:
54: for (x = 1; x < argc; x++) {
55: if (test_arg (argv[x], "-compact",2)) { /* compact */
56: compact = TRUE;
57: argc--;
58: } else if (test_arg (argv[x], "-nocompact",3)) {
59: compact = FALSE;
60: argc--;
61: } else {
62: ps_printf (OPT,"Unknown option %s\n",argv[x]);
63: Usage (argv[0]);
64: return;
65: }
66: }
67:
68: if (compact) {
69: if (rel_dn != NULLDN) {
70: DN a,b;
71:
72: a = rel_dn;
73: b = current_dn;
74: for (; a != NULLDN && b != NULLDN ; a = a->dn_parent, b = b->dn_parent)
75: if ( dn_comp_cmp (a,b) == NOTOK)
76: break;
77: if (a == NULLDN)
78: dn_print (RPS,b,RDNOUT);
79: else {
80: ps_print (RPS, "@");
81: dn_print (RPS,current_dn,RDNOUT);
82: }
83: ps_print (RPS, "\n");
84: } else {
85: dn_print (RPS, current_dn, RDNOUT);
86: ps_print (RPS, "\n");
87: }
88: } else {
89: if (current_dn == NULLDN) {
90: ps_print (RPS, "NULL Name\n");
91: return;
92: }
93: for (dnptr = current_dn; dnptr != NULLDN; dnptr = dnptr->dn_parent) {
94: rdn_print (RPS,dnptr->dn_rdn,print_format);
95: ps_print (RPS, "\n");
96: }
97: }
98: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.