+
+/*
+ * Get a string from the terminfo database for the current terminal.
+ *
+ * Retrieve the specified terminfo capability and return a string that
+ * can be output to the terminal. The string returned has already been
+ * processed by tputs(), so it is safe to output directly. The return
+ * value of this function is valid until the next call.
+ *
+ * Arguments:
+ *
+ * capability - The name of the terminfo capability (see terminfo(5)).
+ *
+ * Returns a tputs-processed string, or NULL if terminal initialization failed
+ * or the capability wasn't found.
+ */
+char *get_term_stringcap(char *capability);
+
+/*
+ * Get a parameterized string from the terminfo database for the current
+ * terminal.
+ *
+ * We don't yet have a standardized tparm() that will take a stdarg
+ * argument. Right now we don't want many parameters, so we only
+ * take two. Everything gets passed to tparm() as-is. If we need
+ * a capability with more arguments, we'll just add more later.
+ *
+ * Arguments:
+ *
+ * capability - The name of the terminfo capability (see terminfo(5)).
+ * arg1..argN - Arguments 1-N.
+ *
+ * Returns a tparm and tputs-processed string, or NULL if there was a problem
+ * initializating the terminal or retrieving the capability.
+ */
+char *get_term_stringparm(char *capability, long arg1, long arg2);
+
+/*
+ * Get a number from the terminfo database for the current terminal.
+ *
+ * Retrieve the specified terminfo capability and return the numeric
+ * value of that capability from the terminfo database.
+ *
+ * Arguments:
+ *
+ * capability - The name of the terminfo capability (see terminfo(5)).
+ *
+ * Returns the output of tigetnum() for that capability, or -1 if it was
+ * unable to initialize the terminfo database.
+ */
+int get_term_numcap(char *capability);
+
+/*
+ * Lock open/close routines.
+ *
+ * The lk[f]opendata() functions are designed to open "data" files (anything
+ * not a mail spool file) using the locking mechanism configured for data
+ * files. The lk[f]openspool() functions are for opening the mail spool
+ * file, which will use the locking algorithm configured for the mail
+ * spool.
+ *
+ * Files opened for reading are locked with a read lock (if possible by
+ * the underlying lock mechanism), files opened for writing are locked
+ * using an exclusive lock. The int * argument is used to indicate failure
+ * to acquire a lock.
+ */
+int lkclosedata(int, const char *);
+int lkclosespool(int, const char *);
+int lkfclosedata(FILE *, const char *);
+int lkfclosespool(FILE *, const char *);
+FILE *lkfopendata(const char *, const char *, int *);
+int lkopendata(const char *, int, mode_t, int *);
+FILE *lkfopenspool(const char *, const char *);
+int lkopenspool(const char *, int, mode_t, int *);