shellCommand.h 1.6 KB
Newer Older
H
hzcheng 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/*
 * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
 *
 * This program is free software: you can use, redistribute, and/or modify
 * it under the terms of the GNU Affero General Public License, version 3
 * or later ("AGPL"), as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

S
Shengliang Guan 已提交
16 17
#ifndef _TD_SHELL_COMMAND_H_
#define _TD_SHELL_COMMAND_H_
H
hzcheng 已提交
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

#include "shell.h"

#define LEFT  1
#define RIGHT 2
#define UP    3
#define DOWN  4

typedef struct Command Command;
struct Command {
  char *   buffer;
  char *   command;
  unsigned commandSize;
  unsigned bufferSize;
  unsigned cursorOffset;
  unsigned screenOffset;
  unsigned endOffset;
};

extern void backspaceChar(Command *cmd);
38 39
extern void clearLineBefore(Command *cmd);
extern void clearLineAfter(Command *cmd);
H
hzcheng 已提交
40 41 42 43 44 45 46 47 48 49
extern void deleteChar(Command *cmd);
extern void moveCursorLeft(Command *cmd);
extern void moveCursorRight(Command *cmd);
extern void positionCursorHome(Command *cmd);
extern void positionCursorEnd(Command *cmd);
extern void showOnScreen(Command *cmd);
extern void updateBuffer(Command *cmd);
extern int isReadyGo(Command *cmd);
extern void resetCommand(Command *cmd, const char s[]);

P
plum-lihui 已提交
50
int countPrefixOnes(unsigned char c);
H
hzcheng 已提交
51 52 53 54 55
void clearScreen(int ecmd_pos, int cursor_pos);
void printChar(char c, int times);
void positionCursor(int step, int direction);

#endif