[master] a911a136e Refactoring
Poul-Henning Kamp
phk at FreeBSD.org
Fri May 7 08:56:05 UTC 2021
commit a911a136e86bd46219c41f7811a2b667dda75581
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Thu May 6 08:51:04 2021 +0000
Refactoring
diff --git a/lib/libvcc/vcc_compile.h b/lib/libvcc/vcc_compile.h
index 7d01ae9c8..2219531d1 100644
--- a/lib/libvcc/vcc_compile.h
+++ b/lib/libvcc/vcc_compile.h
@@ -433,6 +433,8 @@ void vcc_Duration(struct vcc *tl, double *);
unsigned vcc_UintVal(struct vcc *tl);
int vcc_IsFlag(struct vcc *tl);
int vcc_IsFlagRaw(struct vcc *, const struct token *, const struct token *);
+char *vcc_Dup_be(const char *b, const char *e);
+int vcc_Has_vcl_prefix(const char *b);
/* vcc_var.c */
sym_wildcard_t vcc_Var_Wildcard;
diff --git a/lib/libvcc/vcc_parse.c b/lib/libvcc/vcc_parse.c
index 41fe8dd03..432d5681b 100644
--- a/lib/libvcc/vcc_parse.c
+++ b/lib/libvcc/vcc_parse.c
@@ -244,10 +244,7 @@ vcc_ParseFunction(struct vcc *tl)
p = sym->proc;
if (p == NULL) {
if (vcc_builtin != NULL && bsym == NULL &&
- (t->b[0] == 'v'|| t->b[0] == 'V') &&
- (t->b[1] == 'c'|| t->b[1] == 'C') &&
- (t->b[2] == 'l'|| t->b[2] == 'L') &&
- (t->b[3] == '_')) {
+ vcc_Has_vcl_prefix(t->b)) {
VSB_printf(tl->sb,"The names 'vcl_*'"
" are reserved for subroutines.\n");
vcc_ErrWhere(tl, t);
diff --git a/lib/libvcc/vcc_symb.c b/lib/libvcc/vcc_symb.c
index 0423c3c14..6e8d275b5 100644
--- a/lib/libvcc/vcc_symb.c
+++ b/lib/libvcc/vcc_symb.c
@@ -125,22 +125,6 @@ VCC_SymName(struct vsb *vsb, const struct symbol *sym)
vcc_symtabname(vsb, sym->symtab);
}
-static char *
-vcc_dup_be(const char *b, const char *e)
-{
- char *p;
-
- AN(b);
- if (e == NULL)
- e = strchr(b, '\0');
- AN(e);
- assert(e >= b);
-
- p = strndup(b, e - b);
- AN(p);
- return (p);
-}
-
static struct symtab *
vcc_symtab_new(const char *name)
{
@@ -177,14 +161,14 @@ vcc_symtab_str(struct symtab *st, const char *b, const char *e)
continue;
if (i == 0 && l == st2->nlen)
break;
- st3 = vcc_symtab_new(vcc_dup_be(b, q));
+ st3 = vcc_symtab_new(vcc_Dup_be(b, q));
st3->parent = st;
VTAILQ_INSERT_BEFORE(st2, st3, list);
st2 = st3;
break;
}
if (st2 == NULL) {
- st2 = vcc_symtab_new(vcc_dup_be(b, q));
+ st2 = vcc_symtab_new(vcc_Dup_be(b, q));
st2->parent = st;
VTAILQ_INSERT_TAIL(&st->children, st2, list);
}
@@ -287,10 +271,7 @@ VCC_SymbolGet(struct vcc *tl, vcc_ns_t ns, vcc_kind_t kind,
AN(x);
AN(x->name);
if (tl->syntax >= VCL_41 && e == SYMTAB_CREATE && kind != SYM_SUB &&
- (tl->t->b[0] == 'v'|| tl->t->b[0] == 'V') &&
- (tl->t->b[1] == 'c'|| tl->t->b[1] == 'C') &&
- (tl->t->b[2] == 'l'|| tl->t->b[2] == 'L') &&
- (tl->t->b[3] == '_')) {
+ vcc_Has_vcl_prefix(tl->t->b)) {
VSB_cat(tl->sb, "Symbols named 'vcl_*' are reserved.\nAt:");
vcc_ErrWhere(tl, tl->t);
return (NULL);
diff --git a/lib/libvcc/vcc_utils.c b/lib/libvcc/vcc_utils.c
index d60d932cd..7e4e00a99 100644
--- a/lib/libvcc/vcc_utils.c
+++ b/lib/libvcc/vcc_utils.c
@@ -385,3 +385,30 @@ vcc_IsFlag(struct vcc *tl)
vcc_NextToken(tl);
return (retval);
}
+
+char *
+vcc_Dup_be(const char *b, const char *e)
+{
+ char *p;
+
+ AN(b);
+ if (e == NULL)
+ e = strchr(b, '\0');
+ AN(e);
+ assert(e >= b);
+
+ p = strndup(b, e - b);
+ AN(p);
+ return (p);
+}
+
+int
+vcc_Has_vcl_prefix(const char *b)
+{
+ return (
+ (b[0] == 'v' || b[0] == 'V') &&
+ (b[1] == 'c' || b[1] == 'C') &&
+ (b[2] == 'l' || b[2] == 'L') &&
+ (b[3] == '_')
+ );
+}
More information about the varnish-commit
mailing list