summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--payloads/libpayload/include/libpayload.h3
-rw-r--r--payloads/libpayload/libc/readline.c30
2 files changed, 29 insertions, 4 deletions
diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h
index 8ec052cbec..3351fd4927 100644
--- a/payloads/libpayload/include/libpayload.h
+++ b/payloads/libpayload/include/libpayload.h
@@ -418,6 +418,9 @@ void fatal(const char* msg) __attribute__ ((noreturn));
/**
* @defgroup readline Readline Functions
+ * This interface provides a simple implementation of the standard
+ * readline and getline functions. They are suitable for reading a
+ * line of input from the console.
* @{
*/
char * readline(const char * prompt);
diff --git a/payloads/libpayload/libc/readline.c b/payloads/libpayload/libc/readline.c
index 9c6a6a651d..4faf3d7895 100644
--- a/payloads/libpayload/libc/readline.c
+++ b/payloads/libpayload/libc/readline.c
@@ -27,16 +27,26 @@
* SUCH DAMAGE.
*/
+/** @file libc/readline.c
+ * @brief Simple readline implementation
+ */
+
#include <libpayload.h>
static char * readline_buffer;
static int readline_bufferlen;
/**
- * This readline implementation is rather simple, but it does more than the
- * original readline() because it allows us to have a pre-filled buffer. To
- * pre-fill the buffer, use the getline() function.
+ * @brief Read a line from the terminal and return it
+ * @param prompt A prompt to display on the line
+ * @return A pointer to the input string
+ *
+ * Read a line from the terminal and return it. This readline implementation
+ * is rather simple, but it does more than the original readline() because
+ * it allows us to have a pre-filled buffer. To pre-fill the buffer, use the
+ * getline() function.
*/
+
char * readline(const char * prompt)
{
char *buffer;
@@ -50,7 +60,7 @@ char * readline(const char * prompt)
}
buffer = readline_buffer;
-
+
/* print prompt */
if (prompt) {
current = 0;
@@ -140,6 +150,18 @@ out:
return buffer;
}
+/**
+ * @brief Read a line from the input and store it in a buffer
+ * @param prompt A buffer to store the line in
+ * @param len Length of the buffer
+ * @return The final length of the string
+ * This function allows the user to pass a predefined buffer to
+ * readline(). The buffer may be filled with a default value
+ * which will be displayed by readline and can be edited as normal.
+ * The final input string returned by readline will be returned in
+ * the buffer and the function will return the length of the string.
+ */
+
int getline(char *buffer, int len)
{
readline_buffer = buffer;