]> diplodocus.org Git - nmh/commitdiff
m_getfld.c: Make m_getfld_state_init() public.
authorRalph Corderoy <ralph@inputplus.co.uk>
Thu, 10 Aug 2017 14:30:54 +0000 (15:30 +0100)
committerRalph Corderoy <ralph@inputplus.co.uk>
Thu, 10 Aug 2017 14:30:54 +0000 (15:30 +0100)
This allows callers to use it if they wish to pass in its FILE *iob.

h/prototypes.h
sbr/m_getfld.c

index 64bd847..8198301 100644 (file)
@@ -225,6 +225,8 @@ int m_atoi (char *);
 char *m_backup (const char *);
 int m_convert (struct msgs *, char *);
 char *m_draft (char *, char *, int, int *);
+
+m_getfld_state_t m_getfld_state_init(FILE *iob);
 void m_getfld_state_reset (m_getfld_state_t *);
 void m_getfld_state_destroy (m_getfld_state_t *);
 void m_getfld_track_filepos (m_getfld_state_t *, FILE *);
index 67e9de8..9e01709 100644 (file)
@@ -306,13 +306,11 @@ struct m_getfld_state {
     int state;
 };
 
-static
-void
-m_getfld_state_init (m_getfld_state_t *gstate, FILE *iob) {
+m_getfld_state_t m_getfld_state_init(FILE *iob)
+{
     m_getfld_state_t s;
 
     NEW(s);
-    *gstate = s;
     s->readpos = s->end = s->msg_buf;
     s->bytes_read = s->total_bytes_read = 0;
     s->last_caller_pos = s->last_internal_pos = 0;
@@ -324,6 +322,8 @@ m_getfld_state_init (m_getfld_state_t *gstate, FILE *iob) {
     s->fdelimlen = s->edelimlen = 0;
     s->state = FLD;
     s->track_filepos = 0;
+
+    return s;
 }
 
 /* scan() needs to force an initial state of FLD for each message. */
@@ -340,7 +340,7 @@ m_getfld_state_reset (m_getfld_state_t *gstate) {
 void
 m_getfld_track_filepos (m_getfld_state_t *gstate, FILE *iob) {
     if (! *gstate) {
-       m_getfld_state_init (gstate, iob);
+       *gstate = m_getfld_state_init(iob);
     }
 
     (*gstate)->track_filepos = 1;
@@ -395,7 +395,7 @@ enter_getfld (m_getfld_state_t *gstate, FILE *iob) {
     off_t pos_movement;
 
     if (! *gstate) {
-       m_getfld_state_init (gstate, iob);
+       *gstate = m_getfld_state_init(iob);
     }
     s = *gstate;
     s->bytes_read = 0;