void doident(char *buffer, struct counters *count, int print, int check)
{
int status;
IDA_IDENT_REC idrec;

/*  Load the structure  */

    if ((status = ida_idrec(ida, &idrec, buffer)) != 0) {
        if (print & P_CORRUPT) pcorrupt(count, IDA_IDENT, status, print);
        ++count->corrupt;
    }

/*  Check for illegal time tags  */

    if (check & C_BADTAG && idrec.ttag.error) {
        ++count->badtag;
        if (print & P_BADTAG)pbadtag(&idrec.ttag,count,IDA_IDENT,print);
    }

/*  Print the contents  */

    if (print & P_IDENT) pident(&idrec, count, print);

}
示例#2
0
文件: test.c 项目: Thinkscape/pfs
void print_tree(binresult *tree, int ident){
  int i;
  if (tree->type==PARAM_STR)
    printf("string(%u)\"%s\"", tree->length, tree->str);
  else if (tree->type==PARAM_NUM)
    printf("number %llu", tree->num);
  else if (tree->type==PARAM_DATA)
    printf("data %llu", tree->num);
  else if (tree->type==PARAM_BOOL)
    printf("bool %s", tree->num?"true":"false");
  else if (tree->type==PARAM_HASH){
    printf("hash (%u){\n", tree->length);
    if (tree->length){
      pident(ident+1);
      printf("\"%s\" = ", tree->hash[0].key);
      print_tree(tree->hash[0].value, ident+1);
      for (i=1; i<tree->length; i++){
        printf(",\n");
        pident(ident+1);
        printf("\"%s\" = ", tree->hash[i].key);
        print_tree(tree->hash[i].value, ident+1);
      }
    }
    printf("\n");
    pident(ident);
    printf("}");
  }
  else if (tree->type==PARAM_ARRAY){
    printf("array (%u)[\n", tree->length);
    if (tree->length){
      pident(ident+1);
      print_tree(tree->array[0], ident+1);
      for (i=1; i<tree->length; i++){
        printf(",\n");
        pident(ident+1);
        print_tree(tree->array[i], ident+1);
      }
    }
    printf("\n");
    pident(ident);
    printf("]");
  }
}