Annotation of 43BSDReno/contrib/isode-beta/dsap/common/dn_print.c, revision 1.1

1.1     ! root        1: #include "quipu/util.h"
        !             2: #include "quipu/name.h"
        !             3: 
        !             4: dn_print (ps,dn,format)
        !             5: DN  dn;
        !             6: PS   ps;
        !             7: int  format;
        !             8: {
        !             9: register DN eptr;
        !            10: 
        !            11:        if (dn == NULLDN) {
        !            12:                if (format == READOUT)
        !            13:                        ps_print (ps,"NULL DN");
        !            14:                return ;
        !            15:        }
        !            16: 
        !            17:        if (format == UFNOUT) {
        !            18:            ufn_dn_print (ps, dn, 1);
        !            19:            return;
        !            20:        }
        !            21: 
        !            22:        dn_comp_print (ps,dn,format);
        !            23:        if (dn->dn_parent != NULLDN)
        !            24:                for (eptr = dn->dn_parent; eptr != NULLDN; eptr = eptr->dn_parent) {
        !            25:                        switch (format) {
        !            26:                                case DIROUT:  ps_print (ps,"/"); break;
        !            27:                                case FILEOUT:
        !            28:                                case RDNOUT:
        !            29:                                case EDBOUT:  ps_print (ps,"@"); break;
        !            30:                                case READOUT: ps_print (ps,"\n\t\t\t"); break;
        !            31:                        }
        !            32:                        dn_comp_print (ps,eptr,format);
        !            33:                }
        !            34: }
        !            35: 
        !            36: /*  */
        !            37: 
        !            38: static DN localdn = NULLDN;
        !            39: extern char * local_dit;
        !            40: 
        !            41: ufn_dn_print (ps,dn,multiline)
        !            42: PS  ps;
        !            43: DN  dn;
        !            44: int multiline;
        !            45: {
        !            46:        if (dn == NULLDN)
        !            47:                return;
        !            48:                
        !            49:        if (localdn == NULLDN) 
        !            50:                localdn = str2dn (local_dit);
        !            51: 
        !            52:        (void) ufn_dn_print_aux (ps,dn,localdn,multiline);
        !            53: }
        !            54: 
        !            55: 
        !            56: int    ufn_indent = 16;
        !            57: 
        !            58: ufn_dn_print_aux (ps,dn,marker,multiline)
        !            59: PS  ps;
        !            60: DN  dn;
        !            61: DN marker;
        !            62: int    multiline;
        !            63: {
        !            64: DN next = NULLDN;
        !            65: char res = 0;
        !            66: char this_one = TRUE;
        !            67: 
        !            68:        if ((marker != NULLDN) && (dn_comp_cmp(dn,marker) == 0)) {
        !            69:                next = marker->dn_parent;
        !            70:                if (dn->dn_parent != NULLDN)
        !            71:                        this_one = FALSE;
        !            72:        }
        !            73: 
        !            74:        if (dn->dn_parent != NULLDN)
        !            75:                res = ufn_dn_print_aux (ps,dn->dn_parent,next,multiline);
        !            76: 
        !            77:        if (this_one) {
        !            78:                if (res) {
        !            79:                        if (multiline < 0 || (multiline && res > 1)) {
        !            80:                                        ps_printf (ps,",\n");
        !            81:                                        if (ufn_indent > 0)
        !            82:                                            ps_printf (ps, "%*s", ufn_indent, "");
        !            83:                        } else
        !            84:                                ps_print (ps,", ");
        !            85:                } 
        !            86:                ufn_rdn_print (ps,dn->dn_rdn);
        !            87:        }
        !            88:        return ++res;
        !            89: }
        !            90: 
        !            91: 
        !            92: ufn_rdn_print (ps,rdn)
        !            93: RDN  rdn;
        !            94: PS   ps;
        !            95: {
        !            96: register RDN eptr;
        !            97: 
        !            98:        if (rdn ==  NULLRDN) 
        !            99:                return;
        !           100: 
        !           101:        AttrV_print (ps,&rdn->rdn_av,READOUT);
        !           102: 
        !           103:        if (rdn->rdn_next != NULLRDN)
        !           104:                for (eptr=rdn->rdn_next; eptr!=NULLRDN; eptr=eptr->rdn_next) {
        !           105:                        ps_print (ps," + "); 
        !           106:                        AttrV_print (ps,&eptr->rdn_av,READOUT);
        !           107:                }
        !           108: 
        !           109: }
        !           110: 
        !           111: static PS ps = NULLPS;
        !           112: 
        !           113: char   *dn2str (dn)
        !           114: DN     dn;
        !           115: {
        !           116:     char       *cp;
        !           117: 
        !           118:     if (ps == NULL
        !           119:            && ((ps = ps_alloc (str_open)) == NULLPS)
        !           120:                    || str_setup (ps, NULLCP, BUFSIZ, 0) == NOTOK) {
        !           121:        if (ps)
        !           122:            ps_free (ps), ps = NULLPS;
        !           123: 
        !           124:        return NULLCP;
        !           125:     }
        !           126: 
        !           127:     dn_print (ps, dn, EDBOUT);
        !           128:     ps_print (ps, " ");
        !           129:     *--ps -> ps_ptr = NULL, ps -> ps_cnt++;
        !           130: 
        !           131:     cp = ps -> ps_base;
        !           132: 
        !           133:     ps -> ps_base = NULL, ps -> ps_cnt = 0;
        !           134:     ps -> ps_ptr = NULL, ps -> ps_bufsiz = 0;
        !           135: 
        !           136:     return cp;
        !           137: }
        !           138: 
        !           139: char   *dn2ufn (dn,multiline)
        !           140: DN     dn;
        !           141: int    multiline;
        !           142: {
        !           143:     char       *cp;
        !           144: 
        !           145:     if (ps == NULL
        !           146:            && ((ps = ps_alloc (str_open)) == NULLPS)
        !           147:                    || str_setup (ps, NULLCP, BUFSIZ, 0) == NOTOK) {
        !           148:        if (ps)
        !           149:            ps_free (ps), ps = NULLPS;
        !           150: 
        !           151:        return NULLCP;
        !           152:     }
        !           153: 
        !           154:     ufn_dn_print (ps, dn, multiline);
        !           155:     ps_print (ps, " ");
        !           156:     *--ps -> ps_ptr = NULL, ps -> ps_cnt++;
        !           157: 
        !           158:     cp = ps -> ps_base;
        !           159: 
        !           160:     ps -> ps_base = NULL, ps -> ps_cnt = 0;
        !           161:     ps -> ps_ptr = NULL, ps -> ps_bufsiz = 0;
        !           162: 
        !           163:     return cp;
        !           164: }

unix.superglobalmegacorp.com

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