1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23 /* All Rights Reserved */ 24 25 26 #ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.11 */ 27 /* EMACS_MODES: !fill, lnumb, !overwrite, !nodelete, !picture */ 28 29 #include "stdlib.h" 30 31 #include "lp.h" 32 #include "filters.h" 33 34 /** 35 ** freefilter() - FREE INTERNAL SPACE ALLOCATED FOR A FILTER 36 ** free_filter() - FREE INTERNAL SPACE ALLOCATED FOR A _FILTER 37 **/ 38 39 static void 40 #if defined(__STDC__) 41 freetypel ( 42 TYPE * typel 43 ) 44 #else 45 freetypel (typel) 46 register TYPE *typel; 47 #endif 48 { 49 register TYPE *pt; 50 51 if (typel) { 52 for (pt = typel; pt->name; pt++) 53 Free (pt->name); 54 Free ((char *)typel); 55 } 56 return; 57 } 58 59 void 60 #if defined(__STDC__) 61 freetempl ( 62 TEMPLATE * templ 63 ) 64 #else 65 freetempl (templ) 66 register TEMPLATE *templ; 67 #endif 68 { 69 register TEMPLATE *pt; 70 71 if (templ) { 72 for (pt = templ; pt->keyword; pt++) { 73 Free (pt->keyword); 74 if (pt->pattern) 75 Free (pt->pattern); 76 if (pt->re) 77 Free (pt->re); 78 if (pt->result) 79 Free (pt->result); 80 } 81 Free ((char *)templ); 82 } 83 return; 84 } 85 86 void 87 #if defined(__STDC__) 88 freefilter ( 89 FILTER * pf 90 ) 91 #else 92 freefilter (pf) 93 FILTER *pf; 94 #endif 95 { 96 if (!pf) 97 return; 98 if (pf->name) 99 Free (pf->name); 100 if (pf->command) 101 Free (pf->command); 102 freelist (pf->printers); 103 freelist (pf->printer_types); 104 freelist (pf->input_types); 105 freelist (pf->output_types); 106 freelist (pf->templates); 107 108 return; 109 } 110 111 void 112 #if defined(__STDC__) 113 free_filter ( 114 _FILTER * pf 115 ) 116 #else 117 free_filter (pf) 118 _FILTER *pf; 119 #endif 120 { 121 if (!pf) 122 return; 123 if (pf->name) 124 Free (pf->name); 125 if (pf->command) 126 Free (pf->command); 127 freelist (pf->printers); 128 freetypel (pf->printer_types); 129 freetypel (pf->input_types); 130 freetypel (pf->output_types); 131 freetempl (pf->templates); 132 133 return; 134 } 135