30    if (ptr==NULL) 
return buf;
 
   32    int size = ntohl(*(
int*)(*ptr));
 
   35    char* str = (
char*)malloc(size + 1);
 
   37        memcpy(str, *ptr, size);
 
 
   55    if (ptr==NULL) 
return 0;
 
   57    int value = ntohl(*(
int*)(*ptr));
 
 
   71    if (ptr==NULL) 
return 0ULL;
 
   73    unsigned long long int value = 
ntohull(*(
unsigned long long int*)(*ptr));
 
 
   87    if (ptr==NULL) 
return 0.0;
 
   92    long long int tmp  __attribute__((may_alias));
 
   95    tmp = 
ntohull(*(
long long int*)(*ptr));
 
   97    double* valuep = (
double*)&tmp;
 
   98    double  value  = *valuep;
 
   99    if (isnan(value)) value = 0.0;
 
 
  116    if (ptr==NULL) 
return buf;
 
  118    char* str = (
char*)malloc(16);
 
  120        memcpy(str, *ptr, 16);
 
 
  139    if (ptr==NULL) 
return buf;
 
  141    int size = ntohl(*(
int*)(*ptr));
 
  146        memcpy(bin, *ptr, size);
 
 
  167    if (ptr==NULL) 
return 0;
 
  181        else if (*buf==
LLSD_MAKER_BIN)   buf += ntohl(*(
int*)(buf + 1)) + 5;
 
  182        else if (*buf==
LLSD_MAKER_STR)   buf += ntohl(*(
int*)(buf + 1)) + 5;
 
  183        else if (*buf==
LLSD_MAKER_URI)   buf += ntohl(*(
int*)(buf + 1)) + 5;
 
  184        else if (*buf==
LLSD_MAKER_KEY)   buf += ntohl(*(
int*)(buf + 1)) + 5;
 
  188            if (ptr==buf) 
return 0;
 
  189            PRINT_MESG(
"WARNING: llsd_bin_get_length: unknown marker %c: %04x\n", *buf, *buf);
 
  205            if (marker!=*buf) 
PRINT_MESG(
"WARNING: llsd_bin_get_length: missmatch stack data of [ or {\n");
 
  215    return (
int)(buf - ptr);
 
 
  244    if (node->state<0) 
return xml;
 
  255    if (xml->next!=NULL) {
 
 
  282    if (ptr==NULL) 
return xml;
 
  283    if (xml==NULL) 
return NULL;
 
  287    uByte* end = ptr + sz;
 
  465            PRINT_MESG(
"WARNING: llsd_bin_main_parse: unknown marker: %c (%04x)\n", *ptr, *ptr);
 
 
  500    int ofst = -1, size = -1;
 
  506    if (ofst<0 || size<=0) 
return NULL;
 
  513    if (dec.
vldsz!=hdsz) 
PRINT_MESG(
"Warning: llsd_bin_get_block_data:i mismarch of data size (%d != %d)\n", hdsz, dec.
vldsz);
 
 
  534    if (buf==NULL) 
return NULL;
 
  538    if (joints_num!=NULL) *joints_num = 0;
 
  545    while (pos < sz && vertex < vertex_num) {
 
  546        uByte joint = *(buf + pos);
 
  554            if ((
int)joint>jnum) jnum = (
int)joint;
 
  557            if (invrtx%max_joints==0) {
 
  565    if (pos!=sz || vertex!=vertex_num) {
 
  566        PRINT_MESG(
"WARNING: llsd_bin_get_skin_weight: missmatch length %d != %d or %d != %d\n", pos, sz, vertex, vertex_num);
 
  569        PRINT_MESG(
"llsd_bin_get_skin_weight: joints_num = %d\n", jnum);
 
  572    int len = 
sizeof(
uWord)*jnum*vertex_num;
 
  575        PRINT_MESG(
"ERROR: llsd_bin_get_skin_weight: no more memory (%d)\n", len);
 
  576        if (joints_num!=NULL) *joints_num = 0;
 
  579    memset(weight, 0, len);
 
  585    while (pos < sz && vertex < vertex_num) {
 
  586        uByte joint = *(buf + pos);
 
  596            int value = *(
uByte*)(buf + pos) + *(
uByte*)(buf + pos + 1)*256;
 
  597            weight[vertex*jnum + (int)joint] = value;
 
  599            if (invrtx%max_joints==0) {
 
  606    if (pos!=sz || vertex!=vertex_num) {
 
  607        PRINT_MESG(
"ERROR: llsd_bin_get_skin_weight: missmatch length %d != %d\n", vertex, vertex_num);
 
  613    if (joints_num!=NULL) *joints_num = jnum;
 
 
  628    if (xml==NULL || key==NULL) 
return FALSE;
 
  637    if (node!=NULL) 
return TRUE;
 
 
  646    if (xml==NULL || key==NULL || item==NULL) 
return 0;
 
 
  663    if (xml==NULL || key==NULL || item==NULL) 
return 0.0;
 
 
  681    if (xml==NULL || key==NULL || item==NULL) 
return buf;
 
 
  700    if (xml==NULL || key==NULL || item==NULL) 
return buf;
 
 
Buffer encode_base64_Buffer(Buffer buf)
バイナリデータ buf.bufの buf.vldszバイトを Base64にエンコード する
 
Buffer make_Buffer(int sz)
Buffer型変数のバッファ部をつくり出す.
 
Buffer set_Buffer(void *dat, int len)
Buffer型変数のバッファ部を新しく作り, そのバッファに bufをコピーする.
 
void free_Buffer(Buffer *buf)
Buffer型変数のバッファ部を解放する
 
char pop_char_ringStack(Buffer *buf)
簡易 char型 ringStack POP
 
void push_char_ringStack(Buffer *buf, char cc)
簡易 char型 ringStack PUSH
 
Buffer init_Buffer()
初期化したBuffer型変数を返す.
 
Buffer decode_base64_Buffer(Buffer str)
strのバッファを Base64からデコードする
 
#define cat_s2Buffer(src, dst)
cat_b2Buffer()
 
#define make_Buffer_bystr(str)
set_Buffer()
 
unsigned short uWord
2Byte
 
#define JBXL_XML_NODE_CLOSED
XMLノードは閉じている
 
#define JBXL_XML_DEFAULT_STATE
XMLデータの初期状態
 
#define JBXL_XML_NOT_CLOSED
XMLデータが閉じていない
 
#define JBXL_XML_NODE_OPENED
XMLノードは開いている
 
#define JBXL_XML_MULTI_ROOT
XMLは複数のルート(TOP)を持っている.(パース済み)
 
#define JBXL_XML_PARSED
XMLパース済み
 
int vldsz
データの長さ.バイナリデータの場合も使用可能.文字列の場合は 0x00 を含まない.
 
unsigned char * buf
バッファの先頭へのポインタ.str[bufsz]は必ず 0x00となる.
 
tTree * add_tTree_node_bystr(tTree *pp, int id, int lv, const char *key, const char *val, void *ptr, int sz)
ノードを末っ子としてリストに追加.
 
char * get_xml_char_content_bystr(tXML *pp, const char *str)
get_xml_char_content(tXML* pp, tXML* pt) の _bystr バージョン.free() してはいけない.
 
int get_xml_int_content_bystr(tXML *pp, const char *str)
get_xml_int_content(tXML* pp, tXML* pt) の _bystr バージョン
 
tXML * get_xml_node_bystr(tXML *pp, const char *str)
get_xml_node(tXML* pp, tXML* pt) の _bystr バージョン
 
double get_xml_double_content_bystr(tXML *pp, const char *str)
get_xml_double_content(tXML* pp, tXML* pt) の _bystr バージョン.
 
#define XML_CONTENT_NODE
内容(コンテント)ノード
 
#define XML_NAME_NODE
ネームノード
 
#define del_all_xml(p)
XMLツリーの全ノードの削除.ポインタ ppのノードを含むXMLツリー全体を削除する.
 
#define new_xml_node()
new_tTree_node()
 
#define XML_ANCHOR_NODE
アンカーノード