/* * BBP Management, IO */ static gdk_return CMDrename(bit *retval, BAT *b, const char *s) { int ret; int c; const char *t = s; for ( ; (c = *t) != 0; t++) { if (c != '_' && !GDKisalnum(c)) { GDKerror("CMDrename: identifier expected: %s\n", s); return GDK_FAIL; } } ret = BATname(b, s); *retval = FALSE; if (ret == 1) { GDKerror("CMDrename: identifier expected: %s\n", s); return GDK_FAIL; } else if (ret == BBPRENAME_ILLEGAL) { GDKerror("CMDrename: illegal temporary name: '%s'\n", s); return GDK_FAIL; } else if (ret == BBPRENAME_LONG) { GDKerror("CMDrename: name too long: '%s'\n", s); return GDK_FAIL; } else if (ret != BBPRENAME_ALREADY) { *retval = TRUE; } return GDK_SUCCEED; }
ssize_t batFromStr(const char *src, size_t *len, bat **dst, bool external) { char *s; const char *t, *r = src; int c; bat bid = 0; atommem(sizeof(bat)); if (GDK_STRNIL(src)) { **dst = bat_nil; return 1; } while (GDKisspace(*r)) r++; if (external && strcmp(r, "nil") == 0) { **dst = bat_nil; return (ssize_t) (r - src) + 3; } if (*r == '<') r++; t = r; while ((c = *t) && (c == '_' || GDKisalnum(c))) t++; s = GDKstrndup(r, t - r); if (s == NULL) return -1; bid = BBPindex(s); GDKfree(s); **dst = bid == 0 ? bat_nil : bid; return (ssize_t) (t + (c == '>') - src); }