Annotation of 43BSDReno/contrib/isode-beta/quipu/dish/showattr.c, revision 1.1.1.1

1.1       root        1: /* showattr.c - */
                      2: 
                      3: #ifndef        lint
                      4: static char *rcsid = "$Header: /f/osi/quipu/dish/RCS/showattr.c,v 7.0 89/11/23 22:20:21 mrose Rel $";
                      5: #endif
                      6: 
                      7: /* 
                      8:  * $Header: /f/osi/quipu/dish/RCS/showattr.c,v 7.0 89/11/23 22:20:21 mrose Rel $
                      9:  *
                     10:  *
                     11:  * $Log:       showattr.c,v $
                     12:  * Revision 7.0  89/11/23  22:20:21  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/attrvalue.h"
                     30: #include "quipu/entry.h"
                     31: 
                     32: extern Entry    current_entry;
                     33: extern DN       current_dn;
                     34: extern DN       dn;
                     35: 
                     36: #define        OPT     (!frompipe || rps -> ps_byteno == 0 ? opt : rps)
                     37: #define        RPS     (!frompipe || opt -> ps_byteno == 0 ? rps : opt)
                     38: extern char    frompipe;
                     39: extern PS      rps, opt;
                     40: 
                     41: extern char     value_flag;
                     42: extern char     key_flag;
                     43: extern char    print_format;
                     44: extern char    show_all_flag;
                     45: 
                     46: static Attr_Sequence ignore_attr = NULLATTR;
                     47: static char ignore_unknown = FALSE;
                     48: 
                     49: showattribute (at)
                     50: AttributeType at;
                     51: {
                     52: Attr_Sequence  eptr;
                     53: 
                     54:        if (! show_all_flag) {
                     55:                if ( ! check_want_attr (at))
                     56:                        return;
                     57:        } else if ( ! check_want_tmp_attr (at))
                     58:                return;
                     59: 
                     60:        for (eptr = current_entry->e_attributes; eptr != NULLATTR; eptr = eptr->attr_link) {    
                     61:                /* Tiptoe through the list of types until one matches, and then print value. */
                     62:                if (AttrT_cmp (eptr->attr_type,at) == 0) {
                     63:                        if (value_flag) 
                     64:                                if (key_flag)
                     65:                                        as_comp_print (RPS,eptr,print_format);
                     66:                                else
                     67:                                        avs_print (RPS,eptr->attr_value,print_format);
                     68:                        else {
                     69:                                AttrT_print (RPS,at,print_format);
                     70:                                ps_print (RPS, "\n");
                     71:                        }
                     72:                        break;
                     73:                } 
                     74:                
                     75:        if (eptr == NULLATTR)
                     76:                if (key_flag)
                     77:                        ps_printf (OPT, "%-21s - (No such attribute in this entry)\n", at->oa_ot.ot_name);
                     78:                else
                     79:                        ps_printf (OPT, "No value\n");
                     80:                
                     81:        }
                     82: }
                     83: 
                     84: 
                     85: show_unknown ()
                     86: {
                     87:        ignore_unknown = TRUE;
                     88: }
                     89: 
                     90: check_want_attr (at)
                     91: AttributeType at;
                     92: {
                     93: Attr_Sequence as;
                     94: 
                     95:        if (at == NULLTABLE_ATTR) 
                     96:                return (ignore_unknown);
                     97: 
                     98:        if (at->oa_syntax == 0)
                     99:                return (ignore_unknown);
                    100: 
                    101:        for (as=ignore_attr; as != NULLATTR; as=as->attr_link)
                    102:                if (AttrT_cmp (at,as->attr_type) == 0)
                    103:                        return (FALSE);
                    104: 
                    105:        return (check_want_tmp_attr(at));
                    106: }
                    107: 
                    108: check_want_tmp_attr (at)
                    109: AttributeType at;
                    110: {
                    111: Attr_Sequence as;
                    112: Attr_Sequence as2;
                    113: extern Attr_Sequence tmp_ignore;
                    114: extern Attr_Sequence as_flag;
                    115: 
                    116:        if (at->oa_syntax == 0)
                    117:                return (ignore_unknown || show_all_flag);
                    118: 
                    119:        for (as=tmp_ignore; as != NULLATTR; as=as->attr_link)
                    120:                if (AttrT_cmp (at,as->attr_type) == 0) {
                    121:                        /* may be explicitly wanted... */
                    122:                        for (as2=as_flag; as2 != NULLATTR; as2=as2->attr_link)
                    123:                                if (AttrT_cmp (as2->attr_type,as->attr_type) == 0) 
                    124:                                        return (TRUE);
                    125:                        return (FALSE);
                    126:                }
                    127: 
                    128:        return (TRUE);
                    129: }
                    130: 
                    131: new_ignore (ptr)
                    132: char * ptr;
                    133: {
                    134: AttributeType at;
                    135: Attr_Sequence newas;
                    136: 
                    137:        if ((at = str2AttrT (ptr)) == NULLAttrT)
                    138:                return;
                    139:        newas = as_comp_new (at,NULLAV,NULLACL_INFO);
                    140:        ignore_attr = as_merge(ignore_attr,newas);
                    141: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.