afp: persist ProDOS info metadata
All checks were successful
Source release / source-package (push) Successful in 52s

This commit is contained in:
ai
2026-06-01 09:44:56 +00:00
committed by Mario Fetka
parent 92b0c4a34a
commit 59bfdd65b2
12 changed files with 287 additions and 18 deletions

View File

@@ -4,12 +4,17 @@
#include "net.h"
#define NWATALK_FINDER_INFO_LEN 32
#define NWATALK_PRODOS_INFO_LEN 6
int nwatalk_backend_available(void);
int nwatalk_get_finder_info(const char *path, uint8 *finder_info,
int finder_info_len);
int nwatalk_set_finder_info(const char *path, const uint8 *finder_info,
int finder_info_len);
int nwatalk_get_prodos_info(const char *path, uint8 *prodos_info,
int prodos_info_len);
int nwatalk_set_prodos_info(const char *path, const uint8 *prodos_info,
int prodos_info_len);
int nwatalk_get_afp_attributes(const char *path, uint16 *attributes);
int nwatalk_set_afp_attributes(const char *path, uint16 attributes);
int nwatalk_get_resource_fork_size(const char *path, uint32 *resource_size);

View File

@@ -31,6 +31,7 @@ typedef int (*nwsalvage_ini_getter)(int entry, char *str,
#define NWSALVAGE_NAME_MAX 256
#define NWSALVAGE_USER_NAME_MAX 128
#define NWSALVAGE_FINDER_INFO_HEX_LEN 64
#define NWSALVAGE_PRODOS_INFO_HEX_LEN 12
#define NWSALVAGE_AFP_ENTRY_ID_MAX 32
#define NWSALVAGE_TRUSTEE_MAX 100
#define NWSALVAGE_PATTERN_MAX 32
@@ -77,6 +78,7 @@ struct nwsalvage_deleted_entry {
long ctime;
const char *finder_info_hex;
const char *prodos_info_hex;
const char *afp_entry_id;
unsigned int afp_attributes;
unsigned long long resource_fork_size;
@@ -120,6 +122,7 @@ struct nwsalvage_metadata_entry {
long ctime;
char finder_info_hex[NWSALVAGE_FINDER_INFO_HEX_LEN + 1];
char prodos_info_hex[NWSALVAGE_PRODOS_INFO_HEX_LEN + 1];
char afp_entry_id[NWSALVAGE_AFP_ENTRY_ID_MAX];
unsigned int afp_attributes;
unsigned long long resource_fork_size;
@@ -193,6 +196,8 @@ int nwsalvage_read_metadata(const char *metadata_path,
struct nwsalvage_metadata_entry *entry);
int nwsalvage_metadata_finder_info(const struct nwsalvage_metadata_entry *entry,
unsigned char *out, size_t out_len);
int nwsalvage_metadata_prodos_info(const struct nwsalvage_metadata_entry *entry,
unsigned char *out, size_t out_len);
/*
* Scan one salvageable entry in a directory. scan_sequence must be