/*
   array.h --- array 専用のヘッダーファイル
 */
#ifndef _ARRAY_H_
#define _ARRAY_H_
#include "sufary.h"

#define MAX_ARRAY 10

/* 表示モード */
typedef enum DISPLAY_MODE_{
  DISP_KWIC,
  DISP_INDEX,
  DISP_LINE,
  DISP_SIMPLE,
} DISPLAY_MODE;

/* ソートモード */
typedef enum SORT_MODE_{
  SORT_INDEX,
  SORT_ALPHABETICAL
} SORT_MODE;

/* コマンド処理テーブル */
typedef struct commands_{
  char *name;
  eresult (*func)(char *);
} commands;

/* グローバル変数 */
extern eerror ee;
extern SUFARY *sufary[MAX_ARRAY];/* 複数SUFARY格納用 */
extern char keyword[KEYWORD_MAX_LENGTH];  /* 検索キーワード */
extern int arrays; /* 何個使っているか */
extern char *ct;       /* コマンドライン、入力ファイルの区切りトークン */
extern DISPLAY_MODE display_mode;  /* 表示モード */
extern SORT_MODE sort_mode;        /* ソートモード */
extern int mojibake_proc_flag; /* 文字化け防止処理をするかどうか */
extern int kwic_width; /* KWICの幅 */

extern long *idx2did; /* for docseg 980822 */
extern long dsg_size; /* for docseg 980822 */

/* プロトタイプ宣言 */
/* コマンド用関数 [eresult com_???(char *cmd)] */
/* show.c */
eresult com_show(char *);
eresult com_get(char *);
eresult com_get_str(char *);
eresult com_line(char *);
/* misc.c */
eresult com_init(char *);
eresult com_mode_display(char *);
eresult com_mode_sort(char *);
eresult com_mode_mojibake(char *);
eresult com_set_kwic_width(char *);
#endif /*_ARRAY_H_*/
