diff options
Diffstat (limited to 'src/internal')
-rw-r--r-- | src/internal/perk_ar_impl.h | 52 | ||||
-rw-r--r-- | src/internal/perk_driver_impl.h | 3 | ||||
-rw-r--r-- | src/internal/perk_synopsis_impl.h | 46 |
3 files changed, 83 insertions, 18 deletions
diff --git a/src/internal/perk_ar_impl.h b/src/internal/perk_ar_impl.h index 323dc56..0da7559 100644 --- a/src/internal/perk_ar_impl.h +++ b/src/internal/perk_ar_impl.h @@ -20,6 +20,22 @@ /* initial number of elements in the transient, on-stack vector */ # define AR_STACK_VECTOR_ELEMENTS (0x200) +/* bit mask to indicate that the first non-option argument is <posname> */ +#define AR_POSNAME_MASK (PERK_DRIVER_AR_POSITION_AFTER \ + |PERK_DRIVER_AR_POSITION_BEFORE) + +#define AR_UPDATE_MASK (PERK_DRIVER_AR_UPDATE_MEMBERS \ + |PERK_DRIVER_AR_REPLACE_MEMBERS) + +#define AR_ACTION_MASK (PERK_DRIVER_AR_LIST_MEMBERS \ + |PERK_DRIVER_AR_MOVE_MEMBERS \ + |PERK_DRIVER_AR_UPDATE_MEMBERS \ + |PERK_DRIVER_AR_DELETE_MEMBERS \ + |PERK_DRIVER_AR_APPEND_MEMBERS \ + |PERK_DRIVER_AR_REPLACE_MEMBERS \ + |PERK_DRIVER_AR_EXTRACT_MEMBERS \ + |PERK_DRIVER_AR_PRINT_MEMBERS) + extern const struct argv_option pe_ar_options[]; struct ar_armaps_impl { @@ -35,8 +51,8 @@ struct ar_armaps_impl { }; struct pe_archive_meta_impl { - const struct pe_driver_ctx * dctx; - struct pe_archive_ctx * actx; + const struct pe_driver_ctx * dctx; + struct pe_archive_ctx * actx; size_t ofmtattr; size_t nentries; void * hdrinfov; @@ -50,40 +66,40 @@ struct pe_archive_meta_impl { struct ar_meta_member_info ** memberv; struct ar_meta_member_info * members; struct ar_armaps_impl armaps; - struct pe_txtfile_ctx * nminfo; - struct pe_archive_meta armeta; + struct pe_txtfile_ctx * nminfo; + struct pe_archive_meta armeta; }; struct ar_meta_member_info * pe_archive_member_from_offset( - struct pe_archive_meta_impl * meta, + struct pe_archive_meta_impl * meta, off_t offset); int pe_ar_parse_primary_armap_bsd_32( - const struct pe_driver_ctx * dctx, - struct pe_archive_meta_impl * m); + const struct pe_driver_ctx * dctx, + struct pe_archive_meta_impl * m); int pe_ar_parse_primary_armap_bsd_64( - const struct pe_driver_ctx * dctx, - struct pe_archive_meta_impl * m); + const struct pe_driver_ctx * dctx, + struct pe_archive_meta_impl * m); int pe_ar_parse_primary_armap_sysv_32( - const struct pe_driver_ctx * dctx, - struct pe_archive_meta_impl * m); + const struct pe_driver_ctx * dctx, + struct pe_archive_meta_impl * m); int pe_ar_parse_primary_armap_sysv_64( - const struct pe_driver_ctx * dctx, - struct pe_archive_meta_impl * m); + const struct pe_driver_ctx * dctx, + struct pe_archive_meta_impl * m); int pe_update_mapstrv( - const struct pe_driver_ctx * dctx, - struct pe_archive_meta_impl * m); + const struct pe_driver_ctx * dctx, + struct pe_archive_meta_impl * m); int pe_ar_update_syminfo( - struct pe_archive_ctx * actx); + struct pe_archive_ctx * actx); int pe_ar_update_syminfo_ex( - struct pe_archive_ctx * actx, - int fdout); + struct pe_archive_ctx * actx, + int fdout); static inline struct pe_archive_meta_impl * pe_archive_meta_ictx(const struct pe_archive_meta * meta) { diff --git a/src/internal/perk_driver_impl.h b/src/internal/perk_driver_impl.h index 3948eae..22e7894 100644 --- a/src/internal/perk_driver_impl.h +++ b/src/internal/perk_driver_impl.h @@ -21,6 +21,7 @@ enum app_tags { TAG_VERSION, TAG_CMD, TAG_PRETTY, + TAG_VERBOSE, TAG_CATEGORY, TAG_SECTIONS, TAG_SYMBOLS, @@ -31,6 +32,8 @@ enum app_tags { TAG_DSOLIBS, TAG_DSOSYMS, TAG_HDRDUMP, + TAG_AR_LIST_MEMBERS, + TAG_AR_PRINT_MEMBERS, }; struct pe_driver_ctx_impl { diff --git a/src/internal/perk_synopsis_impl.h b/src/internal/perk_synopsis_impl.h new file mode 100644 index 0000000..f3d0a3a --- /dev/null +++ b/src/internal/perk_synopsis_impl.h @@ -0,0 +1,46 @@ +/***************************************************************/ +/* perk: PE Resource Kit */ +/* Copyright (C) 2015--2025 SysDeer Technologies, LLC */ +/* Released under GPLv2 and GPLv3; see COPYING.PERK. */ +/***************************************************************/ + +#ifndef SLIBTOOL_SYNOPSIS_IMPL_H +#define SLIBTOOL_SYNOPSIS_IMPL_H + +#define PERK_DEFAULT_CMD_SYNOPSIS \ + "%s — PE/COFF Resource Kit\n\n" \ + "Synopsis:\n" \ + " %s [option] ...\n" \ + " %s --cmd=<command> [option] ...\n" \ + " %s --cmd=<command> [option] ... <file> ...\n\n" \ + "Options:\n" + +#define PERK_PERK_CMD_SYNOPSIS \ + "%s — PE/COFF Resource Kit\n\n" \ + "Synopsis:\n" \ + " %s [option] ...\n" \ + " %s [option] ... <file> ...\n\n" \ + "Options:\n" + +#define PERK_AR_CMD_SYNOPSIS \ + "%s — the PE/COFF Resource Kit Archiver\n\n" \ + "Synopsis:\n" \ + " %s -d [-v] <archive> <file> ...\n" \ + " %s -p [-v] [-s] <archive> <file> ...\n" \ + " %s -q [-v] [-c] <archive> <file> ...\n" \ + " %s -r [-v] [-c] [-u] <archive> <file> ...\n" \ + " %s -t [-v] [-s] <archive> [<file> ...]\n" \ + " %s -x [-v] [-s] [-C] [-T] <archive> [<file> ...]\n\n" \ + \ + " %s -m [-v] <archive> <file> ...\n" \ + " %s -m -a [-v] <posname> <archive> <file> ...\n" \ + " %s -m -b [-v] <posname> <archive> <file> ...\n" \ + " %s -m -i [-v] <posname> <archive> <file> ...\n\n" \ + \ + " %s -r [-v] [-c] [-u] <archive> <file> ...\n" \ + " %s -r -a [-v] [-c] [-u] <posname> <archive> <file> ...\n" \ + " %s -r -b [-v] [-c] [-u] <posname> <archive> <file> ...\n" \ + " %s -r -i [-v] [-c] [-u] <posname> <archive> <file> ...\n\n" \ + "Options:\n" + +#endif |