#ifndef VSEECI_H
#define VSEECI_H
#include <v/vkeys.h>
#include <v/vtexted.h>

const int SBAllocLines = 500;	// Save Buffer line allocations

    enum { Cmd, Ins, Find };

    class vSeeCI : public vTextEdCmdInterp  	// easy class to override
      {

        public:
          vSeeCI(vTextEditor* textEd, vCmdWindow* myCmdWin);
          ~vSeeCI();

          virtual int ProcessKey(vKey key, unsigned int shift);
          virtual void InitCmdInterp();

        protected:
          int edit(vKey chr, unsigned int shift);
          int inset(int val, int *set);
          int RemoveLast(void);
          int save(long cnt, int app);
          int getsav();
	  int yankfile(long cnt);

          int reallocSaveBuff();	// for adding more save lines

        private:
           int	cmdmode,		// 0: insert, 1: cmd
           	countWait,
           	lex_def;
    	   long CmdCount,
           	param_count,
                slastl,			// Save Buff stuff
                savlen,			// number of lines for rmvlast
                nxtsav,			// next place to save line
                _maxSBLines;
           vKey oldlex;			// previous command
           BUFFPTR* _SaveBuff;		// save buffer
           char newFindPat[MAX_LINE+2];

      };
#endif
