diff --git a/libisoburn/trunk/xorriso/disk_ops.c b/libisoburn/trunk/xorriso/disk_ops.c index 2d356569..e76fc640 100644 --- a/libisoburn/trunk/xorriso/disk_ops.c +++ b/libisoburn/trunk/xorriso/disk_ops.c @@ -1212,6 +1212,8 @@ int Xorriso_findx_action(struct XorrisO *xorriso, struct FindjoB *job, if(ret != -1) ret= Xorriso_estimate_file_size(xorriso, job, basename, stbuf.st_mode, stbuf.st_size, 0); + } else if(action == 44) { /* list_extattr */ + ret= Xorriso_list_extattr(xorriso, NULL, abs_path, show_path, target, 2); } else { Text_shellsafe(show_path, xorriso->result_line, 0); strcat(xorriso->result_line, "\n"); diff --git a/libisoburn/trunk/xorriso/findjob.h b/libisoburn/trunk/xorriso/findjob.h index 05225e73..8c480bd3 100644 --- a/libisoburn/trunk/xorriso/findjob.h +++ b/libisoburn/trunk/xorriso/findjob.h @@ -158,6 +158,7 @@ struct FindjoB { 41= update_merge disk_equiv 42= rm_merge 43= clear_merge + 44= list_extattr */ int action; int prune; diff --git a/libisoburn/trunk/xorriso/iso_manip.c b/libisoburn/trunk/xorriso/iso_manip.c index d07aad91..9355f3e9 100644 --- a/libisoburn/trunk/xorriso/iso_manip.c +++ b/libisoburn/trunk/xorriso/iso_manip.c @@ -2543,6 +2543,9 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job, } } else if(action == 43) { /* clear_merge */ ret= Xorriso_mark_update_merge(xorriso, show_path, node, 2 | 4); + } else if(action == 44) { /* list_extattr */ + ret= Xorriso_list_extattr(xorriso, (void *) node, show_path, show_path, + target, 0); } else { /* includes : 15 in_iso */ Text_shellsafe(show_path, xorriso->result_line, 0); strcat(xorriso->result_line, "\n"); diff --git a/libisoburn/trunk/xorriso/iso_tree.c b/libisoburn/trunk/xorriso/iso_tree.c index 10b4c56d..7f8eb89d 100644 --- a/libisoburn/trunk/xorriso/iso_tree.c +++ b/libisoburn/trunk/xorriso/iso_tree.c @@ -840,6 +840,185 @@ ex:; } +/* + @param flag bit0= with mode "e" : Use echo -e encoding but + do not put out commands and quotation marks. + Rather apply double backslash. +*/ +int Xorriso_append_extattr_comp(struct XorrisO *xorriso, + char *comp, size_t comp_len, + char *mode, int flag) +{ + int ret; + char *line, *wpt, *bsl = NULL; + unsigned char *upt, *uval; + + line= xorriso->result_line; + uval= (unsigned char *) comp; + + if(*mode == 'q') { + Text_shellsafe(comp, line, 1); + } else if(*mode == 'e' || mode[0] == 0) { + for(upt= uval; (size_t) (upt - uval) < comp_len; upt++) + if(*upt <= 037 || *upt >= 0177) + break; + if((size_t) (upt - uval) < comp_len || (flag & 1)) { + /* Use "$(echo -e '\0xyz')" */; + if(!(flag & 1)) + strcat(line, "\"$(echo -e '"); + wpt= line + strlen(line); + for(upt= uval; (size_t) (upt - uval) < comp_len; upt++) { + if(*upt <= 037 || *upt >= 0177 || *upt == '\\' || *upt == '\'') { + if(flag & 1) + *(wpt++)= '\\'; + sprintf((char *) wpt, "\\0%-3.3o", *upt); + wpt+= strlen(wpt); + } else { + *(wpt++)= *upt; + } + } + *wpt= 0; + if(!(flag & 1)) + strcpy(wpt, "')\""); + } else { + Text_shellsafe(comp, line, 1); + } + } else if(*mode == 'b') { + ret= Sfile_bsl_encoder(&bsl, comp, comp_len, 8); + if(ret <= 0) + {ret= -1; goto ex;} + strcat(line, bsl); + free(bsl); + bsl= NULL; + } else if(*mode == 'r') { + strcat(line, comp); + } + ret= 1; +ex:; + if(bsl != NULL) + free(bsl); + return(ret); +} + + +/* + @param flag bit1= path is disk_path + bit3= do not ignore eventual non-user attributes. + bit5= in case of symbolic link on disk: inquire link target +*/ +int Xorriso_list_extattr(struct XorrisO *xorriso, void *in_node, char *path, + char *show_path, char *mode, int flag) +{ + int ret= 1, i, bsl_mem; + size_t num_attrs= 0, *value_lengths= NULL; + char **names= NULL, **values= NULL, *cpt, *space_pt, *name_pt, *path_pt; + char *line; + unsigned char *upt, *uval; + + line= xorriso->result_line; + ret= Xorriso_get_attrs(xorriso, in_node, path, &num_attrs, &names, + &value_lengths, &values, flag & (2 | 8 | 32)); + if(ret <= 0) + goto ex; + if(flag & 64) { + ret= (num_attrs > 0); + goto ex; + } + if(num_attrs == 0) + {ret= 2; goto ex;} + + strcpy(line, "n="); + path_pt= show_path + (show_path[0] == '/'); + if(path_pt[0] == 0) + path_pt= "."; + ret= Xorriso_append_extattr_comp(xorriso, path_pt, strlen(path_pt), mode, 0); + if(ret <= 0) + goto ex; + strcat(line, "\n"); + Xorriso_result(xorriso, 0); + for(i= 0; i < (int) num_attrs; i++) { + line[0]= 0; + uval= (unsigned char *) values[i]; + + if(strlen(names[i]) + value_lengths[i] >= SfileadrL) { + sprintf(line, + "echo 'OMITTED: Oversized: name %d bytes, value %d bytes in file '\"$n\" >&2\n", + (int) strlen(names[i]), (int) value_lengths[i]); + Xorriso_result(xorriso, 0); + continue; + } + + /* Form: $c space name value $n */ + + /* Split namespace from name */ + cpt= strchr(names[i], '.'); + if(cpt == NULL) { + space_pt= "user"; + name_pt= names[i]; + } else { + *cpt= 0; + space_pt= names[i]; + name_pt= cpt + 1; + } + + /* FreeBSD setextattr cannot set 0-bytes */ + for(upt= uval; (size_t) (upt - uval) < value_lengths[i]; upt++) + if(*upt == 0 + ) + break; + if((size_t) (upt - uval) < value_lengths[i]) { + strcpy(line, "echo 'OMITTED: Value contains 0-bytes : space \"'\""); + Xorriso_append_extattr_comp(xorriso, space_pt, strlen(space_pt), "e", 1); + if(ret <= 0) + goto ex; + strcat(line, "\"'\" , name \"'\""); + Xorriso_append_extattr_comp(xorriso, name_pt, strlen(name_pt), "e", 1); + if(ret <= 0) + goto ex; + strcat(line, "\"'\" in file '\""); + Xorriso_append_extattr_comp(xorriso, path_pt, strlen(path_pt), "e", 1); + strcat(line, "\" >&2\n"); + + /* temporarily disable -backslash_codes with result output */ + bsl_mem= xorriso->bsl_interpretation; + xorriso->bsl_interpretation= 0; + Xorriso_result(xorriso, 0); + xorriso->bsl_interpretation= bsl_mem; + strcpy(line, "# "); + } + + strcat(line, "$c "); + ret= Xorriso_append_extattr_comp(xorriso, space_pt, strlen(space_pt), + mode, 0); + if(ret <= 0) + goto ex; + strcat(line, " "); + ret= Xorriso_append_extattr_comp(xorriso,name_pt, strlen(name_pt), mode, 0); + if(ret <= 0) + goto ex; + strcat(line, " "); + ret= Xorriso_append_extattr_comp(xorriso, values[i], value_lengths[i], + mode, 0); + if(ret <= 0) + goto ex; + strcat(line, " \"$n\"\n"); + + /* temporarily disable -backslash_codes with result output */ + bsl_mem= xorriso->bsl_interpretation; + xorriso->bsl_interpretation= 0; + Xorriso_result(xorriso, 0); + xorriso->bsl_interpretation= bsl_mem; + } + strcpy(line, "\n"); + Xorriso_result(xorriso, 0); + ret= 1; +ex:; + Xorriso_get_attrs(xorriso, in_node, path, &num_attrs, &names, + &value_lengths, &values, 1 << 15); + return(ret); +} + + /* @param flag Bitfield for control purposes diff --git a/libisoburn/trunk/xorriso/opts_d_h.c b/libisoburn/trunk/xorriso/opts_d_h.c index 4b28b50a..c02f6518 100644 --- a/libisoburn/trunk/xorriso/opts_d_h.c +++ b/libisoburn/trunk/xorriso/opts_d_h.c @@ -650,9 +650,10 @@ int Xorriso_option_find(struct XorrisO *xorriso, int argc, char **argv, int *idx, int flag) { int ret, i, end_idx, type= 0, action, deleter= 0, start_lba, count; + int list_extattr_head= 0, bsl_mem; struct FindjoB *job, *first_job= NULL, *new_job; - char *start_path, *path= NULL, *cpt, *other_path_start= NULL; - char *access_acl_text= NULL, *default_acl_text= NULL; + char *start_path, *path= NULL, *cpt, *other_path_start= NULL, *cd_pt; + char *access_acl_text= NULL, *default_acl_text= NULL, *list_extattr_mode; struct stat dir_stbuf; uid_t user= 0; @@ -666,6 +667,7 @@ int Xorriso_option_find(struct XorrisO *xorriso, int argc, char **argv, Xorriso_alloc_meM(other_path_start, char, SfileadrL); start_path= "."; + list_extattr_mode= "e"; if(end_idx > *idx && start_path[0]!=0) start_path= argv[*idx]; ret= Findjob_new(&first_job, start_path, 0); @@ -1050,6 +1052,13 @@ not_enough_exec_arguments:; } else if(strcmp(cpt, "clear_merge")==0) { Findjob_set_action_target(job, 43, NULL, 0); xorriso->update_flags&= ~1; /* End update_merge mode for node adding */ + } else if(strcmp(cpt, "list_extattr")==0) { + if(i+1>=end_idx) + goto not_enough_exec_arguments; + i++; + Findjob_set_action_target(job, 44, argv[i], 0); + list_extattr_head= 1; + list_extattr_mode= argv[i]; } else { sprintf(xorriso->info_text, "-find -exec: unknown action "); Text_shellsafe(argv[i], xorriso->info_text, 1); @@ -1063,6 +1072,33 @@ sorry_ex:; {ret= 0; goto ex;} } } + if(list_extattr_head) { + sprintf(xorriso->result_line, + "# Output of xorriso %s action list_extattr\n", + (flag & 1) ? "-findx" : "-find"); + Xorriso_result(xorriso, 0); + strcpy(xorriso->result_line, "cd "); + if(start_path[0] == '/') + strcat(xorriso->result_line, "/"); + else { + cd_pt= (flag & 1) ? xorriso->wdx : xorriso->wdi; + if(cd_pt[0] == 0) + cd_pt= "/"; + ret= Xorriso_append_extattr_comp(xorriso, cd_pt, strlen(cd_pt), + list_extattr_mode, 0); + if(ret <= 0) + goto ex; + } + strcat(xorriso->result_line, "\n"); + /* temporarily disable -backslash_codes with result output */ + bsl_mem= xorriso->bsl_interpretation; + xorriso->bsl_interpretation= 0; + Xorriso_result(xorriso, 0); + xorriso->bsl_interpretation= bsl_mem; + + sprintf(xorriso->result_line, "c=\"setextattr\"\n\n"); + Xorriso_result(xorriso, 0); + } if(flag&1) ret= Xorriso_findx(xorriso, first_job, "", start_path, &dir_stbuf, 0, NULL, 0); @@ -1647,8 +1683,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " chmod, chmod_r, alter_date, alter_date_r, lsdl, compare,", " rm, rm_r, compare, update, report_damage, report_lba,", " getfacl, setfacl, getfattr, setfattr, get_any_xattr,", -" get_md5, check_md5, make_md5, set_filter, show_stream,", -" mkisofs_r, hide, find.", +" list_extattr, get_md5, check_md5, make_md5,", +" set_filter, show_stream, mkisofs_r, hide, find.", " params are their arguments except iso_rr_path.", " -mkdir iso_rr_path [...]", " Create empty directories if they do not exist yet.", diff --git a/libisoburn/trunk/xorriso/xorriso.1 b/libisoburn/trunk/xorriso/xorriso.1 index b13ffd25..a3844c5c 100644 --- a/libisoburn/trunk/xorriso/xorriso.1 +++ b/libisoburn/trunk/xorriso/xorriso.1 @@ -9,7 +9,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH XORRISO 1 "Version 1.1.5, Aug 23, 2011" +.TH XORRISO 1 "Version 1.1.5, Aug 25, 2011" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -1757,6 +1757,22 @@ prints xattr name\-value pairs from any namespace except ACL to the result channel. This is mostly for debugging of namespace "isofs". .br +\fBlist_extattr\fR mode +prints a script to the result channel, which would use FreeBSD command +setextattr to set the file's xattr name\-value pairs of user namespace. +Parameter mode controls the form of the output of names and values. +Default mode "e" prints harmless characters in shell quotation marks, +but represents texts with octal 001 to 037 and 0177 to 0377 by an embedded +echo \-e command. +Mode "q" prints any characters in shell quotation marks. This might not be +terminal\-safe but should work in script files. +Mode "r" uses no quotation marks. Not safe. +Mode "b" prints backslash encoding. Not suitable for shell parsing. +.br +E.g. \-exec list_extattr e \-\- +.br +Option \-backslash_codes does not affect the output. +.br \fBget_md5\fR prints the MD5 sum, if recorded, together with file path. .br @@ -3316,6 +3332,13 @@ prints a lower and an upper estimation of the number of blocks which the found files together will occupy in the emerging ISO image. This does not account for the superblock, for the directories in the \-findx path, or for image padding. +.br +\fBlist_extattr\fR mode +prints a script to the result channel, which would use FreeBSD command +setextattr to set the file's xattr name\-value pairs of user namespace. +See \-find for a description of parameter mode. +.br +E.g. \-exec list_extattr e \-\- .TP \fB\-compare\fR disk_path iso_rr_path Compare attributes and eventual data file content of a fileobject in the diff --git a/libisoburn/trunk/xorriso/xorriso.info b/libisoburn/trunk/xorriso/xorriso.info index 3b3ef89c..59a3ec67 100644 --- a/libisoburn/trunk/xorriso/xorriso.info +++ b/libisoburn/trunk/xorriso/xorriso.info @@ -1576,6 +1576,20 @@ File: xorriso.info, Node: CmdFind, Next: Filter, Prev: Manip, Up: Options prints xattr name-value pairs from any namespace except ACL to the result channel. This is mostly for debugging of namespace "isofs". + list_extattr mode + prints a script to the result channel, which would use + FreeBSD command setextattr to set the file's xattr name-value + pairs of user namespace. Parameter mode controls the form of + the output of names and values. Default mode "e" prints + harmless characters in shell quotation marks, but represents + texts with octal 001 to 037 and 0177 to 0377 by an embedded + echo -e command. Mode "q" prints any characters in shell + quotation marks. This might not be terminal-safe but should + work in script files. Mode "r" uses no quotation marks. Not + safe. Mode "b" prints backslash encoding. Not suitable for + shell parsing. + E.g. -exec list_extattr e - + Option -backslash_codes does not affect the output. get_md5 prints the MD5 sum, if recorded, together with file path. check_md5 @@ -2912,6 +2926,12 @@ File: xorriso.info, Node: Navigate, Next: Verify, Prev: Inquiry, Up: Options blocks which the found files together will occupy in the emerging ISO image. This does not account for the superblock, for the directories in the -findx path, or for image padding. + list_extattr mode + prints a script to the result channel, which would use + FreeBSD command setextattr to set the file's xattr name-value + pairs of user namespace. See -find for a description of + parameter mode. + E.g. -exec list_extattr e - -compare disk_path iso_rr_path Compare attributes and eventual data file content of a fileobject @@ -4262,9 +4282,9 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -close_filter_list bans filter registration: Filter. (line 52) * -commit writes pending ISO image: Writing. (line 13) * -commit_eject writes and ejects: Writing. (line 40) -* -compare reports ISO/disk differences: Navigate. (line 140) -* -compare_l reports ISO/disk differences: Navigate. (line 158) -* -compare_r reports ISO/disk differences: Navigate. (line 153) +* -compare reports ISO/disk differences: Navigate. (line 146) +* -compare_l reports ISO/disk differences: Navigate. (line 164) +* -compare_r reports ISO/disk differences: Navigate. (line 159) * -compliance controls standard compliance: SetWrite. (line 14) * -copyright_file sets copyright file name: SetWrite. (line 154) * -cp_clone copies ISO directory tree: Insert. (line 183) @@ -4402,8 +4422,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -setfattr sets xattr in ISO image: Manip. (line 111) * -setfattr_list sets xattr in ISO image: Manip. (line 127) * -setfattr_r sets xattr in ISO image: Manip. (line 124) -* -show_stream shows data source and filters: Navigate. (line 163) -* -show_stream_r shows data source and filters: Navigate. (line 177) +* -show_stream shows data source and filters: Navigate. (line 169) +* -show_stream_r shows data source and filters: Navigate. (line 183) * -signal_handling controls handling of system signals: Exception. (line 69) * -speed set write speed: SetWrite. (line 211) @@ -4509,8 +4529,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Filter, apply to file, -set_filter: Filter. (line 60) * Filter, ban registration, -close_filter_list: Filter. (line 52) * Filter, register, -external_filter: Filter. (line 20) -* Filter, show chain, -show_stream: Navigate. (line 163) -* Filter, show chains of tree, -show_stream_r: Navigate. (line 177) +* Filter, show chain, -show_stream: Navigate. (line 169) +* Filter, show chains of tree, -show_stream_r: Navigate. (line 183) * Filter, unregister, -unregister_filter: Filter. (line 48) * Filter, zisofs parameters, -zisofs: SetWrite. (line 199) * Group, global in ISO image, -gid: SetWrite. (line 195) @@ -4660,9 +4680,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Tree, disk, traverse, -findx: Navigate. (line 106) * Tree, ISO, traverse and alter, -find: CmdFind. (line 7) * Verify, check blocks, -check_media: Verify. (line 21) -* Verify, compare ISO and disk file, -compare: Navigate. (line 140) -* Verify, compare ISO and disk tree, -compare_r: Navigate. (line 153) -* Verify, compare ISO and disk, -compare_l: Navigate. (line 158) +* Verify, compare ISO and disk file, -compare: Navigate. (line 146) +* Verify, compare ISO and disk tree, -compare_r: Navigate. (line 159) +* Verify, compare ISO and disk, -compare_l: Navigate. (line 164) * Verify, file checksum, -check_md5: Verify. (line 147) * Verify, file tree checksums, -check_md5_r: Verify. (line 163) * Verify, preset -check_media, -check_media_defaults: Verify. (line 40) @@ -4709,43 +4729,43 @@ Node: Insert42438 Node: SetInsert52143 Node: Manip60711 Node: CmdFind69438 -Node: Filter80700 -Node: Writing85038 -Node: SetWrite93031 -Node: Bootable107077 -Node: Jigdo120295 -Node: Charset124541 -Node: Exception127300 -Node: DialogCtl133413 -Node: Inquiry136000 -Node: Navigate140844 -Node: Verify148812 -Node: Restore157477 -Node: Emulation164382 -Node: Scripting174185 -Node: Frontend181195 -Node: Examples182494 -Node: ExDevices183665 -Node: ExCreate184324 -Node: ExDialog185598 -Node: ExGrowing186860 -Node: ExModifying187662 -Node: ExBootable188163 -Node: ExCharset188712 -Node: ExPseudo189532 -Node: ExCdrecord190430 -Node: ExMkisofs190745 -Node: ExGrowisofs192083 -Node: ExException193218 -Node: ExTime193672 -Node: ExIncBackup194131 -Node: ExRestore198055 -Node: ExRecovery199013 -Node: Files199581 -Node: Seealso200879 -Node: Bugreport201543 -Node: Legal202124 -Node: CommandIdx203054 -Node: ConceptIdx218077 +Node: Filter81543 +Node: Writing85881 +Node: SetWrite93874 +Node: Bootable107920 +Node: Jigdo121138 +Node: Charset125384 +Node: Exception128143 +Node: DialogCtl134256 +Node: Inquiry136843 +Node: Navigate141687 +Node: Verify149945 +Node: Restore158610 +Node: Emulation165515 +Node: Scripting175318 +Node: Frontend182328 +Node: Examples183627 +Node: ExDevices184798 +Node: ExCreate185457 +Node: ExDialog186731 +Node: ExGrowing187993 +Node: ExModifying188795 +Node: ExBootable189296 +Node: ExCharset189845 +Node: ExPseudo190665 +Node: ExCdrecord191563 +Node: ExMkisofs191878 +Node: ExGrowisofs193216 +Node: ExException194351 +Node: ExTime194805 +Node: ExIncBackup195264 +Node: ExRestore199188 +Node: ExRecovery200146 +Node: Files200714 +Node: Seealso202012 +Node: Bugreport202676 +Node: Legal203257 +Node: CommandIdx204187 +Node: ConceptIdx219210  End Tag Table diff --git a/libisoburn/trunk/xorriso/xorriso.texi b/libisoburn/trunk/xorriso/xorriso.texi index 7ab257cc..763d9068 100644 --- a/libisoburn/trunk/xorriso/xorriso.texi +++ b/libisoburn/trunk/xorriso/xorriso.texi @@ -50,7 +50,7 @@ @c man .\" First parameter, NAME, should be all caps @c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @c man .\" other parameters are allowed: see man(7), man(1) -@c man .TH XORRISO 1 "Version 1.1.5, Aug 23, 2011" +@c man .TH XORRISO 1 "Version 1.1.5, Aug 25, 2011" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -2132,6 +2132,22 @@ prints xattr name-value pairs from any namespace except ACL to the result channel. This is mostly for debugging of namespace "isofs". @* +@item list_extattr mode +prints a script to the result channel, which would use FreeBSD command +setextattr to set the file's xattr name-value pairs of user namespace. +Parameter mode controls the form of the output of names and values. +Default mode "e" prints harmless characters in shell quotation marks, +but represents texts with octal 001 to 037 and 0177 to 0377 by an embedded +echo -e command. +Mode "q" prints any characters in shell quotation marks. This might not be +terminal-safe but should work in script files. +Mode "r" uses no quotation marks. Not safe. +Mode "b" prints backslash encoding. Not suitable for shell parsing. +@* +E.g. -exec list_extattr e -- +@* +Option -backslash_codes does not affect the output. +@* @item get_md5 prints the MD5 sum, if recorded, together with file path. @* @@ -3927,6 +3943,13 @@ prints a lower and an upper estimation of the number of blocks which the found files together will occupy in the emerging ISO image. This does not account for the superblock, for the directories in the -findx path, or for image padding. +@* +@item list_extattr mode +prints a script to the result channel, which would use FreeBSD command +setextattr to set the file's xattr name-value pairs of user namespace. +See -find for a description of parameter mode. +@* +E.g. -exec list_extattr e -- @end table @c man .TP @item -compare disk_path iso_rr_path diff --git a/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index bc596572..26af8632 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2011.08.24.072854" +#define Xorriso_timestamP "2011.08.25.185950" diff --git a/libisoburn/trunk/xorriso/xorrisoburn.h b/libisoburn/trunk/xorriso/xorrisoburn.h index 6b1a104d..c2e07433 100644 --- a/libisoburn/trunk/xorriso/xorrisoburn.h +++ b/libisoburn/trunk/xorriso/xorrisoburn.h @@ -399,6 +399,14 @@ int Xorriso_getfacl(struct XorrisO *xorriso, void *node, int Xorriso_getfattr(struct XorrisO *xorriso, void *in_node, char *path, char **attr_text, int flag); +int Xorriso_list_extattr(struct XorrisO *xorriso, void *in_node, char *path, + char *show_path, char *mode, int flag); + +int Xorriso_append_extattr_comp(struct XorrisO *xorriso, + char *comp, size_t comp_len, + char *mode, int flag); + + /* Calls iso_image_set_ignore_aclea() according to xorriso->do_aaip */ int Xorriso_set_ignore_aclea(struct XorrisO *xorriso, int flag);