📄 gdk_scanselect.h
字号:
#ifndef _GDK_SCANSELECT_H#define _GDK_SCANSELECT_H#include "gdk.h"#ifdef NOEXPAND_CHR#ifndef NOEXPAND_BIT#define NOEXPAND_BIT 1#endif#ifndef NOEXPAND_BTE#define NOEXPAND_BTE 1#endif#endif#ifdef NOEXPAND_INT#ifndef NOEXPAND_FLT#define NOEXPAND_FLT 1#endif#ifndef NOEXPAND_BAT#define NOEXPAND_BAT 1#endif#if SIZEOF_OID == SIZEOF_INT && !defined(NOEXPAND_OID)#define NOEXPAND_OID 1#endif#if SIZEOF_WRD == SIZEOF_INT && !defined(NOEXPAND_WRD)#define NOEXPAND_WRD 1#endif#if SIZEOF_PTR == SIZEOF_INT && !defined(NOEXPAND_PTR)#define NOEXPAND_PTR 1#endif#endif#ifdef NOEXPAND_LNG#ifndef NOEXPAND_DBL#define NOEXPAND_DBL 1#endif#if SIZEOF_OID == SIZEOF_LNG && !defined(NOEXPAND_OID)#define NOEXPAND_OID 1#endif#if SIZEOF_WRD == SIZEOF_LNG && !defined(NOEXPAND_WRD)#define NOEXPAND_WRD 1#endif#if SIZEOF_PTR == SIZEOF_LNG && !defined(NOEXPAND_PTR)#define NOEXPAND_PTR 1#endif#endif#if defined(NOEXPAND_CHR) || defined(SKIP_TYPE_EXPANSIONS)#define ATOM_PUT_CHR(tpe,hp,dst,src) \ if (tpe == TYPE_chr) { \ *(chr*) dst = *(chr*) src; \ } else#else#define ATOM_PUT_CHR(tpe,hp,dst,src)#endif#if defined(NOEXPAND_BTE) || defined(SKIP_TYPE_EXPANSIONS)#define ATOM_PUT_BTE(tpe,hp,dst,src) \ if (tpe == TYPE_bte) { \ *(bte*) dst = *(bte*) src; \ } else#else#define ATOM_PUT_BTE(tpe,hp,dst,src)#endif#if defined(NOEXPAND_SHT) || defined(SKIP_TYPE_EXPANSIONS)#define ATOM_PUT_SHT(tpe,hp,dst,src) \ if (tpe == TYPE_sht) { \ *(sht*) dst = *(sht*) src; \ } else#else#define ATOM_PUT_SHT(tpe,hp,dst,src)#endif#if defined(NOEXPAND_INT) || defined(SKIP_TYPE_EXPANSIONS)#define ATOM_PUT_INT(tpe,hp,dst,src) \ if (tpe == TYPE_int) { \ *(int*) dst = *(int*) src; \ } else#else#define ATOM_PUT_INT(tpe,hp,dst,src)#endif#if defined(NOEXPAND_LNG) || defined(SKIP_TYPE_EXPANSIONS)#define ATOM_PUT_LNG(tpe,hp,dst,src) \ if (tpe == TYPE_lng) { \ *(lng*) dst = *(lng*) src; \ } else#else#define ATOM_PUT_LNG(tpe,hp,dst,src)#endif#define ATOM_PUT(tpe,hp,dst,src) \ ATOM_PUT_CHR(tpe,hp,dst,src) \ ATOM_PUT_SHT(tpe,hp,dst,src) \ ATOM_PUT_INT(tpe,hp,dst,src) \ ATOM_PUT_LNG(tpe,hp,dst,src) \ if (tpe == TYPE_bat) { \ BBPincref(*(bat*) src, TRUE); \ *(bat*) dst = *(bat*) src; \ } else if (tpe == TYPE_str) { \ if (strPut(hp, (var_t*) dst, (str) src) == 0) { \ goto bunins_failed; \ } \ } else { \ if (BATatoms[tpe].atomPut) { \ if ((*BATatoms[tpe].atomPut)(hp, (var_t*) dst, (str) src) == 0) { \ goto bunins_failed; \ } \ } else { \ memcpy(dst, src, (size_t) ATOMsize(tpe)); \ } \ ATOMfix(tpe, src); \ }#define SIMPLE_PUT(tpe,hp,dst,src) { *(tpe*) (ptr) (dst) = *(tpe*) (ptr) (src); }#define VOID_PUT(tpe,hp,dst,src) {} #define voidvoid_bunfastins_nocheck_noinc(b, p, h, t) \ do { \ VOID_PUT(void, (b)->hheap, BUNhloc(b, p), h); \ VOID_PUT(void, (b)->theap, BUNtloc(b, p), t); \ } while (0)#define voidvoid_bunfastins_nocheck(b, p, h, t, s) \ do { \ (b)->batBuns->free += s; \ (b)->batCount ++; \ voidvoid_bunfastins_nocheck_noinc(b, p, h, t); \ } while (0)#define voidvoid_bunfastins(b, h, t) \ do { \ REGISTER BUN _p = BUNlast(b); \ REGISTER int _bunsize = BUNsize(b); \ if ((b)->batBuns->free + _bunsize > (b)->batBuns->size) { \ if (BATextend((b), BATgrows(b)) == NULL) { \ goto bunins_failed; \ } \ _p = BUNlast(b); \ } \ voidvoid_bunfastins_nocheck(b, _p, h, t, _bunsize); \ } while (0) #define voidchr_bunfastins_nocheck_noinc(b, p, h, t) \ do { \ VOID_PUT(void, (b)->hheap, BUNhloc(b, p), h); \ SIMPLE_PUT(chr, (b)->theap, BUNtloc(b, p), t); \ } while (0)#define voidchr_bunfastins_nocheck(b, p, h, t, s) \ do { \ (b)->batBuns->free += s; \ (b)->batCount ++; \ voidchr_bunfastins_nocheck_noinc(b, p, h, t); \ } while (0)#define voidchr_bunfastins(b, h, t) \ do { \ REGISTER BUN _p = BUNlast(b); \ REGISTER int _bunsize = BUNsize(b); \ if ((b)->batBuns->free + _bunsize > (b)->batBuns->size) { \ if (BATextend((b), BATgrows(b)) == NULL) { \ goto bunins_failed; \ } \ _p = BUNlast(b); \ } \ voidchr_bunfastins_nocheck(b, _p, h, t, _bunsize); \ } while (0) #define voidbte_bunfastins_nocheck_noinc(b, p, h, t) \ do { \ VOID_PUT(void, (b)->hheap, BUNhloc(b, p), h); \ SIMPLE_PUT(bte, (b)->theap, BUNtloc(b, p), t); \ } while (0)#define voidbte_bunfastins_nocheck(b, p, h, t, s) \ do { \ (b)->batBuns->free += s; \ (b)->batCount ++; \ voidbte_bunfastins_nocheck_noinc(b, p, h, t); \ } while (0)#define voidbte_bunfastins(b, h, t) \ do { \ REGISTER BUN _p = BUNlast(b); \ REGISTER int _bunsize = BUNsize(b); \ if ((b)->batBuns->free + _bunsize > (b)->batBuns->size) { \ if (BATextend((b), BATgrows(b)) == NULL) { \ goto bunins_failed; \ } \ _p = BUNlast(b); \ } \ voidbte_bunfastins_nocheck(b, _p, h, t, _bunsize); \ } while (0) #define voidsht_bunfastins_nocheck_noinc(b, p, h, t) \ do { \ VOID_PUT(void, (b)->hheap, BUNhloc(b, p), h); \ SIMPLE_PUT(sht, (b)->theap, BUNtloc(b, p), t); \ } while (0)#define voidsht_bunfastins_nocheck(b, p, h, t, s) \ do { \ (b)->batBuns->free += s; \ (b)->batCount ++; \ voidsht_bunfastins_nocheck_noinc(b, p, h, t); \ } while (0)#define voidsht_bunfastins(b, h, t) \ do { \ REGISTER BUN _p = BUNlast(b); \ REGISTER int _bunsize = BUNsize(b); \ if ((b)->batBuns->free + _bunsize > (b)->batBuns->size) { \ if (BATextend((b), BATgrows(b)) == NULL) { \ goto bunins_failed; \ } \ _p = BUNlast(b); \ } \ voidsht_bunfastins_nocheck(b, _p, h, t, _bunsize); \ } while (0) #define voidint_bunfastins_nocheck_noinc(b, p, h, t) \ do { \ VOID_PUT(void, (b)->hheap, BUNhloc(b, p), h); \ SIMPLE_PUT(int, (b)->theap, BUNtloc(b, p), t); \ } while (0)#define voidint_bunfastins_nocheck(b, p, h, t, s) \ do { \ (b)->batBuns->free += s; \ (b)->batCount ++; \ voidint_bunfastins_nocheck_noinc(b, p, h, t); \ } while (0)#define voidint_bunfastins(b, h, t) \ do { \ REGISTER BUN _p = BUNlast(b); \ REGISTER int _bunsize = BUNsize(b); \ if ((b)->batBuns->free + _bunsize > (b)->batBuns->size) { \ if (BATextend((b), BATgrows(b)) == NULL) { \ goto bunins_failed; \ } \ _p = BUNlast(b); \ } \ voidint_bunfastins_nocheck(b, _p, h, t, _bunsize); \ } while (0) #define voidlng_bunfastins_nocheck_noinc(b, p, h, t) \ do { \ VOID_PUT(void, (b)->hheap, BUNhloc(b, p), h); \ SIMPLE_PUT(lng, (b)->theap, BUNtloc(b, p), t); \ } while (0)#define voidlng_bunfastins_nocheck(b, p, h, t, s) \ do { \ (b)->batBuns->free += s; \ (b)->batCount ++; \ voidlng_bunfastins_nocheck_noinc(b, p, h, t); \ } while (0)#define voidlng_bunfastins(b, h, t) \ do { \ REGISTER BUN _p = BUNlast(b); \ REGISTER int _bunsize = BUNsize(b); \ if ((b)->batBuns->free + _bunsize > (b)->batBuns->size) { \ if (BATextend((b), BATgrows(b)) == NULL) { \ goto bunins_failed; \ } \ _p = BUNlast(b); \ } \ voidlng_bunfastins_nocheck(b, _p, h, t, _bunsize); \ } while (0) #define voidany_bunfastins_nocheck_noinc(b, p, h, t) \ do { \ VOID_PUT(void, (b)->hheap, BUNhloc(b, p), h); \ ATOM_PUT((b)->ttype, (b)->theap, BUNtloc(b, p), t); \ } while (0)#define voidany_bunfastins_nocheck(b, p, h, t, s) \ do { \ (b)->batBuns->free += s; \ (b)->batCount ++; \ voidany_bunfastins_nocheck_noinc(b, p, h, t); \ } while (0)#define voidany_bunfastins(b, h, t) \ do { \ REGISTER BUN _p = BUNlast(b); \ REGISTER int _bunsize = BUNsize(b); \ if ((b)->batBuns->free + _bunsize > (b)->batBuns->size) { \ if (BATextend((b), BATgrows(b)) == NULL) { \ goto bunins_failed; \ } \ _p = BUNlast(b); \ } \ voidany_bunfastins_nocheck(b, _p, h, t, _bunsize); \ } while (0) #define chrvoid_bunfastins_nocheck_noinc(b, p, h, t) \ do { \ SIMPLE_PUT(chr, (b)->hheap, BUNhloc(b, p), h); \ VOID_PUT(void, (b)->theap, BUNtloc(b, p), t); \ } while (0)#define chrvoid_bunfastins_nocheck(b, p, h, t, s) \ do { \ (b)->batBuns->free += s; \ (b)->batCount ++; \ chrvoid_bunfastins_nocheck_noinc(b, p, h, t); \ } while (0)#define chrvoid_bunfastins(b, h, t) \ do { \ REGISTER BUN _p = BUNlast(b); \ REGISTER int _bunsize = BUNsize(b); \ if ((b)->batBuns->free + _bunsize > (b)->batBuns->size) { \ if (BATextend((b), BATgrows(b)) == NULL) { \ goto bunins_failed; \ } \ _p = BUNlast(b); \ } \ chrvoid_bunfastins_nocheck(b, _p, h, t, _bunsize); \ } while (0) #define chrchr_bunfastins_nocheck_noinc(b, p, h, t) \ do { \ SIMPLE_PUT(chr, (b)->hheap, BUNhloc(b, p), h); \ SIMPLE_PUT(chr, (b)->theap, BUNtloc(b, p), t); \ } while (0)#define chrchr_bunfastins_nocheck(b, p, h, t, s) \ do { \ (b)->batBuns->free += s; \ (b)->batCount ++; \ chrchr_bunfastins_nocheck_noinc(b, p, h, t); \ } while (0)#define chrchr_bunfastins(b, h, t) \ do { \ REGISTER BUN _p = BUNlast(b); \ REGISTER int _bunsize = BUNsize(b); \ if ((b)->batBuns->free + _bunsize > (b)->batBuns->size) { \ if (BATextend((b), BATgrows(b)) == NULL) { \ goto bunins_failed; \ } \ _p = BUNlast(b); \ } \ chrchr_bunfastins_nocheck(b, _p, h, t, _bunsize); \ } while (0) #define chrbte_bunfastins_nocheck_noinc(b, p, h, t) \ do { \ SIMPLE_PUT(chr, (b)->hheap, BUNhloc(b, p), h); \ SIMPLE_PUT(bte, (b)->theap, BUNtloc(b, p), t); \ } while (0)#define chrbte_bunfastins_nocheck(b, p, h, t, s) \ do { \ (b)->batBuns->free += s; \ (b)->batCount ++; \ chrbte_bunfastins_nocheck_noinc(b, p, h, t); \ } while (0)#define chrbte_bunfastins(b, h, t) \ do { \ REGISTER BUN _p = BUNlast(b); \ REGISTER int _bunsize = BUNsize(b); \ if ((b)->batBuns->free + _bunsize > (b)->batBuns->size) { \ if (BATextend((b), BATgrows(b)) == NULL) { \ goto bunins_failed; \ } \ _p = BUNlast(b); \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -