string.txt Scott Bronson bronson@trestle.com This describes the format of RPM_I18NSTRING_TYPE or RPM_STRING_ARRAY_TYPE, I could not find this documented anywhere except the source of rpmlib. This memory block consists of count charptrs pointing to strings further along in the block. A brief example for a count of 2 (as returned by headerGetEntry), using typedef to illustrate the structure: count = 2; typedef struct block { # beginning of malloc'd block char *c1 = &s1; # points to s1 below char *c2 = &s2; # points to s2 below char s1[] = "data for string 1"; char s2[] = "data for string 2"; } # end of malloc'd block And, if count were three, this would be the result: count = 2; typedef struct block { # beginning of malloc'd block char *c1 = &s1; # points to s1 below char *c2 = &s2; # points to s2 below char *c3 = &s3; # points to s2 below char s1[] = "data for string 1"; char s2[] = "data for string 2"; char s3[] = "data for string 3"; } # end of malloc'd block Therefore, to print out all the strings in one of these blocks in order... (p and count are values returned by rpmlib) for( i=0; i