int fd; /* file descriptor, -1 if not open */
/* flags bits EFF_PRIVATE, EFF_CUSTOM also vary */
- /* User callbacks */
- int (*postread)(int, void *); /* called after read, unless null */
- int (*prewrite)(int, void *); /* called before write, unless null */
+ /* User callbacks, may all be null */
+ /*
+ * Called after read, with file type and element as arguments.
+ * May modify the element. Modifications are visible to caller of
+ * ef_read(), but have no effect on the file.
+ */
+ void (*postread)(int, void *);
+ /*
+ * Called before write, with file type and element as arguments.
+ * May modify the element. Modifications will be visible to
+ * caller of ef_write() and are written to the file.
+ */
+ void (*prewrite)(int, void *);
};
struct emptypedstr {
extern int getele(char *, char *);
/* land.c */
extern char *prland(struct lndstr *);
-extern int lnd_postread(int, void *);
-extern int lnd_prewrite(int, void *);
+extern void lnd_postread(int, void *);
+extern void lnd_prewrite(int, void *);
/* landgun.c */
extern double seagun(int, int);
extern double fortgun(int, int);
extern void nreport(natid, int, natid, int);
/* nuke.c */
extern char *prnuke(struct nukstr *);
-extern int nuk_postread(int, void *);
-extern int nuk_prewrite(int, void *);
+extern void nuk_postread(int, void *);
+extern void nuk_prewrite(int, void *);
extern int nuk_on_plane(struct nukstr *, int);
/* nxtitem.c */
extern int nxtitem(struct nstr_item *, void *);
extern int onearg(char *, char *);
/* plane.c */
extern char *prplane(struct plnstr *);
-extern int pln_postread(int, void *);
-extern int pln_prewrite(int, void *);
+extern void pln_postread(int, void *);
+extern void pln_prewrite(int, void *);
/* plnsub.c */
extern void count_planes(struct shpstr *);
extern int get_planes(struct nstr_item *, struct nstr_item *,
extern void satmap(int, int, int, int, int, int);
extern void sathead(void);
/* sect.c */
-extern int sct_postread(int, void *);
-extern int sct_prewrite(int, void *);
+extern void sct_postread(int, void *);
+extern void sct_prewrite(int, void *);
extern void item_prewrite(short *);
extern int issector(char *);
/* sectdamage.c */
extern int sectdamage(struct sctstr *, int);
/* ship.c */
extern char *prship(struct shpstr *);
-extern int shp_postread(int, void *);
-extern int shp_prewrite(int, void *);
+extern void shp_postread(int, void *);
+extern void shp_prewrite(int, void *);
/* show.c */
extern void show_bridge(int);
extern void show_tower(int);