-static int gettermattr(int dv, void *strct);
-static int settermattr(int dv, const void *strct);
-static void settermspd(unsigned int lispeed, unsigned int lospeed, const void *strct);
-static int openport();
-static unsigned int strtoui(const char *str, const char *msg, unsigned int min);
-static int troptions(CRLFOpt *options, const char *str);
-static int setroptions();
-static inline int termchck(const void *term);
-static void interchck();
-static void cechck();
-static void *writeport(void *unused);
-static void *readport(void *unused);
+typedef struct {
+ ssize_t sizebm;
+ ssize_t sizesm;
+} Sizes;
+
+typedef struct {
+ int crinlf;
+ int crtolf;
+ int lfincr;
+ int lftocr;
+ int nocr;
+ int nolf;
+} CRLFOpt;
+
+/* including here to access CRLFOpt */
+#include "config.h"
+
+static int gettermattr(int dv, TermStruct *optst);
+static int settermattr(int dv, const TermStruct *optst);
+static void settermspd(unsigned int lispeed, unsigned int lospeed,
+ TermStruct *optst);
+static int openport(void);
+static int openparent(void);
+static unsigned int strtoui(const char *str, unsigned int min);
+static int chcktropts(CRLFOpt *options, const char *str);
+static int settropts(void);
+static inline unsigned int lsbmask(unsigned int n);
+static inline int termvalid(const TermStruct *term);
+static void eninter(void);
+static void enusrecho(void);
+static void *writeport(void *);
+static void *readport(void *);