Select Git revision
ripper.c 1.03 MiB
/*
* The RIPper... interposes on the connection and handles RIP sequences
*/
#include <sys/stat.h>
#if defined(_MSC_VER)
#define _USE_MATH_DEFINES // for C
#endif
#include <bitmap_con.h>
#include <ciolib.h>
#include <datewrap.h>
#include <dirwrap.h>
#include <gen_defs.h>
#include <genwrap.h>
#include <math.h>
#include <sockwrap.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strwrap.h>
#include <time.h>
#if defined(__unix__)
#include <unistd.h>
#endif
#include <time.h>
#include <vidmodes.h>
#include <xpbeep.h>
#include "amigafont.h"
#include "conn.h"
#include "ripper.h"
#include "sexyz.h"
#include "syncterm.h"
#include "term.h"
#include "window.h"
// TODO: Output parsing... (yech)
// TODO: Actually make the graphics viewport work properly
bool rip_did_reinit;
#ifdef HAS_VSTAT
enum rip_state {
RIP_STATE_BOL // Beginning of the line
,
RIP_STATE_MOL // Middle of the line
,
RIP_STATE_BANG // Got a bang (or CTRL-A or CTRL-B)
// The following four groups must remain in this order and all must coincide
/*3*/,
RIP_STATE_PIPE // Got a pipe
,
RIP_STATE_LEVEL // Got a level
,
RIP_STATE_SUBLEVEL // Got a sub-level
,
RIP_STATE_CMD // Got a command... parsing parameters
,
RIP_STATE_ENDED // In unspecified text at the end of a command... look for pipes
/*8*/,
RIP_STATE_BACKSLASH_PIPE // Got a backslash... either an escape or a continue
,
RIP_STATE_BACKSLASH_LEVEL // Got a backslash... either an escape or a continue
,
RIP_STATE_BACKSLASH_SUBLEVEL // Got a backslash... either an escape or a continue