+typedef enum {
+ CMD_NULL = 0,
+ CMD_INVAL,
+ CMD_QUIT,
+} cmd_t;
+
+// replace "markups" with appropr. chars
+char *parse_buffer(char *inbuf, int *cmd)
+{
+ int i,o;
+ static char outbuf[240];
+
+ memset(outbuf,0,240);
+
+ *cmd = CMD_NULL;
+
+ // if a line starts with a \ then it is an internal command
+ if (inbuf[0] == '\\') {
+ switch (inbuf[1]) {
+ case 'q':
+ *cmd = CMD_QUIT;
+ break;
+ default:
+ *cmd = CMD_INVAL;
+ break;
+ }
+ return NULL;
+ }
+ o=0;
+ for (i=0; i<strlen(inbuf); i++) {
+ if (inbuf[i] == '\\') {
+ i++;
+ if (inbuf[i] == 'n')
+ outbuf[o++] = '\n';
+ } else
+ outbuf[o++] = inbuf[i];
+ }
+ return outbuf;
+}
+
+