⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gdk_atoms.c

📁 这个是内存数据库中的一个管理工具
💻 C
📖 第 1 页 / 共 5 页
字号:
	s = (char *) alloca((unsigned) (1 + t - r));	strncpy(s, r, t - r);	s[t - r] = 0;	bid = BBPindex(s);	**dst = bid == 0 ? bat_nil : sign * bid;	return (int) (t + (c == '>') - src);}intbatToStr(char **dst, int *len, bat *src){	bat b = *src;	int i;	str s;	if (b == bat_nil || (s = BBPname(b)) == NULL || *s == 0) {		#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (char *) GDKmalloc(*len = 4);	} else if (*len < (int) 4) {		GDKfree(*dst);		*dst = (char *) GDKmalloc(*len = 4);	}#line 1494 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"		strcpy(*dst, "nil");		return 3;	}	i = (int) (strlen(s) + 4);	#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (char *) GDKmalloc(*len = i);	} else if (*len < (int) i) {		GDKfree(*dst);		*dst = (char *) GDKmalloc(*len = i);	}#line 1500 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	snprintf(*dst, *len, "<%s%s>", b < 0 ? "~" : "", s);	return (int) strlen(*dst);}bat *batRead(bat *a, stream *s, size_t cnt){	stream_readIntArray(s, (int *) a, cnt);	/* bat==int */	return stream_errnr(s) ? NULL : a;}intbatWrite(bat *a, stream *s, size_t cnt){	/* bat==int */	return stream_writeIntArray(s, (int *) a, cnt) ? GDK_SUCCEED : GDK_FAIL;}#line 1559 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1571 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1522 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"intbteFromStr(char* src, int * len, bte **dst){	int sign = 1, error = 0;	bte base = 0;	str q, p = src;	#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (bte *) GDKmalloc(*len = sizeof(bte));	} else if (*len < (int) sizeof(bte)) {		GDKfree(*dst);		*dst = (bte *) GDKmalloc(*len = sizeof(bte));	}#line 1529 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	while (GDKisspace(*p))		p++; 	if (p[0] == 'n' && p[1] == 'i' && p[2] == 'l') {		base = bte_nil; p += 3;	} else {		if (*p == '-' || *p == '+') {			if (*p++ == '-')				sign = -1;		}		if (!num10(*p)) {			error = 1;			p = src;		}		while (*p == '0')			p++;		for (q = p; num10(*p); p++) {			base = mult10(base) + base10(*p);		}		if (p - q > 3 || (p - q == 3 && strncmp(q, "127", 3) > 0)) {			error = 1; /* overflow */		}		if (sizeof(bte) == 8 && p[0] == 'L' && p[1] == 'L') {			p += 2;		}	}	**dst = error ? bte_nil : sign * base;	return (int) (p - src);}#line 1572 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1096 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"intbteToStr(char ** dst, int *len, bte *src){	#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (char *) GDKmalloc(*len = bteStrlen);	} else if (*len < (int) bteStrlen) {		GDKfree(*dst);		*dst = (char *) GDKmalloc(*len = bteStrlen);	}#line 1099 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (*src == bte_nil) {		strcpy(*dst, "nil");		return 3;	}	snprintf(*dst, *len, "%hhd", (bte) *src);	return (int) strlen(*dst);}#line 1573 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1561 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx" bte *bteRead(bte *a, stream *s, size_t cnt){	stream_readBteArray(s, (bte*)a, cnt);	return stream_errnr(s) ? NULL : a;}int bteWrite(bte *a, stream *s, size_t cnt){	return stream_writeBteArray(s, (bte*)a, cnt) ? GDK_SUCCEED : GDK_FAIL;}#line 1574 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1522 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"intshtFromStr(char* src, int * len, sht **dst){	int sign = 1, error = 0;	sht base = 0;	str q, p = src;	#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (sht *) GDKmalloc(*len = sizeof(sht));	} else if (*len < (int) sizeof(sht)) {		GDKfree(*dst);		*dst = (sht *) GDKmalloc(*len = sizeof(sht));	}#line 1529 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	while (GDKisspace(*p))		p++; 	if (p[0] == 'n' && p[1] == 'i' && p[2] == 'l') {		base = sht_nil; p += 3;	} else {		if (*p == '-' || *p == '+') {			if (*p++ == '-')				sign = -1;		}		if (!num10(*p)) {			error = 1;			p = src;		}		while (*p == '0')			p++;		for (q = p; num10(*p); p++) {			base = mult10(base) + base10(*p);		}		if (p - q > 5 || (p - q == 5 && strncmp(q, "32767", 5) > 0)) {			error = 1; /* overflow */		}		if (sizeof(sht) == 8 && p[0] == 'L' && p[1] == 'L') {			p += 2;		}	}	**dst = error ? sht_nil : sign * base;	return (int) (p - src);}#line 1576 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1096 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"intshtToStr(char ** dst, int *len, sht *src){	#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (char *) GDKmalloc(*len = shtStrlen);	} else if (*len < (int) shtStrlen) {		GDKfree(*dst);		*dst = (char *) GDKmalloc(*len = shtStrlen);	}#line 1099 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (*src == sht_nil) {		strcpy(*dst, "nil");		return 3;	}	snprintf(*dst, *len, "%hd", (sht) *src);	return (int) strlen(*dst);}#line 1577 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1561 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx" sht *shtRead(sht *a, stream *s, size_t cnt){	stream_readShtArray(s, (sht*)a, cnt);	return stream_errnr(s) ? NULL : a;}int shtWrite(sht *a, stream *s, size_t cnt){	return stream_writeShtArray(s, (sht*)a, cnt) ? GDK_SUCCEED : GDK_FAIL;}#line 1578 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1522 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"intintFromStr(char* src, int * len, int **dst){	int sign = 1, error = 0;	int base = 0;	str q, p = src;	#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (int *) GDKmalloc(*len = sizeof(int));	} else if (*len < (int) sizeof(int)) {		GDKfree(*dst);		*dst = (int *) GDKmalloc(*len = sizeof(int));	}#line 1529 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	while (GDKisspace(*p))		p++; 	if (p[0] == 'n' && p[1] == 'i' && p[2] == 'l') {		base = int_nil; p += 3;	} else {		if (*p == '-' || *p == '+') {			if (*p++ == '-')				sign = -1;		}		if (!num10(*p)) {			error = 1;			p = src;		}		while (*p == '0')			p++;		for (q = p; num10(*p); p++) {			base = mult10(base) + base10(*p);		}		if (p - q > 10 || (p - q == 10 && strncmp(q, "2147483647", 10) > 0)) {			error = 1; /* overflow */		}		if (sizeof(int) == 8 && p[0] == 'L' && p[1] == 'L') {			p += 2;		}	}	**dst = error ? int_nil : sign * base;	return (int) (p - src);}#line 1580 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1096 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"intintToStr(char ** dst, int *len, int *src){	#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (char *) GDKmalloc(*len = intStrlen);	} else if (*len < (int) intStrlen) {		GDKfree(*dst);		*dst = (char *) GDKmalloc(*len = intStrlen);	}#line 1099 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (*src == int_nil) {		strcpy(*dst, "nil");		return 3;	}	snprintf(*dst, *len, "%d", (int) *src);	return (int) strlen(*dst);}#line 1581 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1561 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx" int *intRead(int *a, stream *s, size_t cnt){	stream_readIntArray(s, (int*)a, cnt);	return stream_errnr(s) ? NULL : a;}int intWrite(int *a, stream *s, size_t cnt){	return stream_writeIntArray(s, (int*)a, cnt) ? GDK_SUCCEED : GDK_FAIL;}#line 1582 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1522 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"intlngFromStr(char* src, int * len, lng **dst){	int sign = 1, error = 0;	lng base = 0;	str q, p = src;	#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (lng *) GDKmalloc(*len = sizeof(lng));	} else if (*len < (int) sizeof(lng)) {		GDKfree(*dst);		*dst = (lng *) GDKmalloc(*len = sizeof(lng));	}#line 1529 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	while (GDKisspace(*p))		p++; 	if (p[0] == 'n' && p[1] == 'i' && p[2] == 'l') {		base = lng_nil; p += 3;	} else {		if (*p == '-' || *p == '+') {			if (*p++ == '-')				sign = -1;		}		if (!num10(*p)) {			error = 1;			p = src;		}		while (*p == '0')			p++;		for (q = p; num10(*p); p++) {			base = mult10(base) + base10(*p);		}		if (p - q > 19 || (p - q == 19 && strncmp(q, "9223372036854775807", 19) > 0)) {			error = 1; /* overflow */		}		if (sizeof(lng) == 8 && p[0] == 'L' && p[1] == 'L') {			p += 2;		}	}	**dst = error ? lng_nil : sign * base;	return (int) (p - src);}#line 1584 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1096 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"intlngToStr(char ** dst, int *len, lng *src){	#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (char *) GDKmalloc(*len = lngStrlen);	} else if (*len < (int) lngStrlen) {		GDKfree(*dst);		*dst = (char *) GDKmalloc(*len = lngStrlen);	}#line 1099 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (*src == lng_nil) {		strcpy(*dst, "nil");		return 3;	}	snprintf(*dst, *len, LLFMT, (lng) *src);	return (int) strlen(*dst);}#line 1585 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1588 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1561 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx" lng *lngRead(lng *a, stream *s, size_t cnt){	stream_readLngArray(s, (lng*)a, cnt);	return stream_errnr(s) ? NULL : a;}int lngWrite(lng *a, stream *s, size_t cnt){	return stream_writeLngArray(s, (lng*)a, cnt) ? GDK_SUCCEED : GDK_FAIL;}#line 1588 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"#line 1606 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"intptrFromStr(char *src, int *len, ptr **dst){	int error = 0;	size_t base = 0;	str p = src;	#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (ptr *) GDKmalloc(*len = sizeof(ptr));	} else if (*len < (int) sizeof(ptr)) {		GDKfree(*dst);		*dst = (ptr *) GDKmalloc(*len = sizeof(ptr));	}#line 1613 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	while (GDKisspace(*p))		p++;	if (p[0] == 'n' && p[1] == 'i' && p[2] == 'l') {		error = 1;		p += 3;	} else {		if (p[0] == '0' && (p[1] == 'x' || p[1] == 'X')) {			p += 2;		}		if (!num16(*p)) {			error = 1;			p = src;		}		while (error == 0) {			size_t val = mult16(base) + base16(*p);			if (val < base)				error = 1;			base = val;			p++;			if (!num16(*p))				break;		}	}	**dst = error ? ((ptr) ptr_nil) : ((ptr) base);	return (int) (p - src);}#line 1096 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"intptrToStr(char ** dst, int *len, ptr *src){	#line 1089 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (!*dst) {		*dst = (char *) GDKmalloc(*len = ptrStrlen);	} else if (*len < (int) ptrStrlen) {		GDKfree(*dst);		*dst = (char *) GDKmalloc(*len = ptrStrlen);	}#line 1099 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_atoms.mx"	if (*src == ptr_nil) {		strcpy(*dst, "nil");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -