Skip to content
Snippets Groups Projects
Select Git revision
  • dailybuild_linux-x64
  • dailybuild_win32
  • master default protected
  • sqlite
  • rip_abstraction
  • dailybuild_macos-armv8
  • dd_file_lister_filanem_in_desc_color
  • mode7
  • dd_msg_reader_are_you_there_warning_improvement
  • c23-playing
  • syncterm-1.3
  • syncterm-1.2
  • test-build
  • hide_remote_connection_with_telgate
  • 638-can-t-control-c-during-a-file-search
  • add_body_to_pager_email
  • mingw32-build
  • cryptlib-3.4.7
  • ree/mastermind
  • new_user_dat
  • sbbs320d
  • syncterm-1.6
  • syncterm-1.5
  • syncterm-1.4
  • sbbs320b
  • syncterm-1.3
  • syncterm-1.2
  • syncterm-1.2rc6
  • syncterm-1.2rc5
  • push
  • syncterm-1.2rc4
  • syncterm-1.2rc2
  • syncterm-1.2rc1
  • sbbs319b
  • sbbs318b
  • goodbuild_linux-x64_Sep-01-2020
  • goodbuild_win32_Sep-01-2020
  • goodbuild_linux-x64_Aug-31-2020
  • goodbuild_win32_Aug-31-2020
  • goodbuild_win32_Aug-30-2020
40 results

ripper.c

Blame
  • 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