comparison src/callint.c @ 169:15872534500d r20-3b11

Import from CVS: tag r20-3b11
author cvs
date Mon, 13 Aug 2007 09:46:53 +0200
parents 25f70ba0133c
children 8eaf7971accc
comparison
equal deleted inserted replaced
168:9851d5c6556e 169:15872534500d
143 (args)) 143 (args))
144 { 144 {
145 return Qnil; 145 return Qnil;
146 } 146 }
147 147
148 /* Quotify EXP: if EXP is constant, return it. 148 /* Quotify EXPR: if EXPR is constant, return it.
149 If EXP is not constant, return (quote EXP). */ 149 If EXPR is not constant, return (quote EXPR). */
150 static Lisp_Object 150 static Lisp_Object
151 quotify_arg (Lisp_Object exp) 151 quotify_arg (Lisp_Object expr)
152 { 152 {
153 if (!INTP (exp) && !CHARP (exp) && !STRINGP (exp) 153 return (INTP (expr) ||
154 && !NILP (exp) && !EQ (exp, Qt)) 154 CHARP (expr) ||
155 return Fcons (Qquote, Fcons (exp, Qnil)); 155 STRINGP (expr) ||
156 156 NILP (expr) ||
157 return exp; 157 EQ (Qt, expr)) ? expr : Fcons (Qquote, Fcons (expr, Qnil));
158 } 158 }
159 159
160 /* Modify EXP by quotifying each element (except the first). */ 160 /* Modify EXPR by quotifying each element (except the first). */
161 static Lisp_Object 161 static Lisp_Object
162 quotify_args (Lisp_Object exp) 162 quotify_args (Lisp_Object expr)
163 { 163 {
164 REGISTER Lisp_Object tail; 164 REGISTER Lisp_Object tail;
165 REGISTER struct Lisp_Cons *ptr; 165 REGISTER struct Lisp_Cons *ptr;
166 for (tail = exp; CONSP (tail); tail = ptr->cdr) 166 for (tail = expr; CONSP (tail); tail = ptr->cdr)
167 { 167 {
168 ptr = XCONS (tail); 168 ptr = XCONS (tail);
169 ptr->car = quotify_arg (ptr->car); 169 ptr->car = quotify_arg (ptr->car);
170 } 170 }
171 return exp; 171 return expr;
172 } 172 }
173 173
174 static Bufpos 174 static Bufpos
175 check_mark (void) 175 check_mark (void)
176 { 176 {