β版ダウンロード ,V
ー,v
A,v
す,v
ま,v
て,v
っ,v
使,v
	,V
9,v
,V
    0.9.3リリース,V
	,v
    エラー時行番号の表示がおかしいことがあったので修正(エラー番号の行とファイル名をグローバル変数を使わずローカル変数を使うように修正）    変数の宣言をクリアするsweepを追加    変数の宣言状況を見るshowを追加,V
    vector_clear(gCompList);,V
char* readline_env_completion(const char* text, int stat),V
#endif,V
it,v
loop_it,v
 ,v
*,v
t,v
i,v
_,v
h,v
s,v
a,v
gArrays,v
g,v
Globals,v
    it = hash_loop_it(g);    while(it) {        char* global = hash_loop_key(it);        char env_name[256];        strcpy(env_name, "$");        strcat(env_name, global);        vector_add(gEnvirons, STRING_NEW(env_name));        git = hash_loop_next(it);    },V
global,v
gGlobals,v
        vector_add(gEnvirons, STRING_NEW(env_name));,V
        }        strcpy(p, global);        return str;    },V
    if(!strncmp(text2, global, wordlen2)) {        char* str = malloc(strlen(global) + 1 +dollar_num +atmark_num);        char * p = str;        int i;        for(i=0; i<dollar_num; i++) {            *p++ = '$';        }        for(i=0; i<atmark_num; i++) {            *p++ = '@';,V
',v
        if(r >= 0) {            if(S_ISDIR(estat.st_mode)) {                *p2++ = '/';,V
        },V
            *p2++ = *p3++;,V
        while(*p3 != '=') {,V
        *p2++ = '$';,V
        char* p2 = env_name;,V
        char* p3 = *p;,V
        char* env = getenv(*p);,V
        int r = stat(env, &estat);,V
        struct stat estat;,V
        if(r >= 0) {            if(S_ISDIR(estat.st_mode)) {                *p2++ = '/';            }        },V
    char* global = hash_loop_key(git);,V
    git = hash_loop_next(git);,V
    int i;    for(i=0; i<vector_size(gGlobals); i++) {    },V
vector_obj* gCompArrays;             // 補完候補,V
数,v
変,v
境,v
環,v
Environs,v
vector_obj* gEnvirons;               // 環境変数補完候補,V
    gEnvirons = VECTOR_NEW(5);,V
vector_obj* g,V
    },V
    {,V
        for(i=0; i<vector_size(gEnvirons); i++) {        string_delete(vector_item(gEnvirons, i));    }    vector_delete(gEnvirons);,V
    gEnvirons = VECTOR_NEW(100);,V
    for(i=0; i<vector_size(gEnvirons); i++) {        string_delete(vector_item(gEnvirons, i));    }    vector_clear(gEnvirons);,V
vector_obj* gEnvirons;    // 環境変数補完候補,V
n,v
r,v
e,v
x,v
extern vector_obj* gEnvirons;               // 環境変数補完候補,V
        git = hash_loop_begin(gGlobals);        ait = hash_loop_begin(gArrays);        hit = hash_loop_begin(gHashs);,V
#if !HAVE_DECL_ENVIRON    {    gEnvirons = VECTOR_NEW(5);    char** p;    for(p = environ; *p; p++) {        char env_name[256];        char* env = getenv(*p);        struct stat estat;        int r = stat(env, &estat);        char* p2 = env_name;        char* p3 = *p;        *p2++ = '$';        while(*p3 != '=') {            *p2++ = *p3++;        }        if(r >= 0) {            if(S_ISDIR(estat.st_mode)) {                *p2++ = '/';            }        }        *p2 = 0;        vector_add(gEnvirons, STRING_NEW(env_name));    }    }    (void)vector_sort(gEnvirons, name_sort);#endif,V
/*,V
        ,V
>,v
=,v
0,v
),v
{,v
(,v
f,v
stat(env, &estat) ,v
    {    extern char **environ;    char** p;    for(p = environ; *p; p++) {        char* env = getenv(*p);        struct stat estat;        int r = stat(env, &estat);        char env_name[256];        char* p2 = env_name;        char* p3 = *p;        *p3++='$';        while(*p3 != '=') {            *p2++ = *p3++;        }        if(r >= 0) {            if(S_ISDIR(estat.st_mode)) {                *p2++ = '/';            }        }        *p2 = 0;        vector_add(gEnvirons, STRING_NEW(env_name));    }    }    (void)vector_sort(gEnvirons, name_sort);#endif,V
    gEnvirons = VECTOR_NEW(5);    char** p;    for(p = environ; *p; p++) {        char env_name[256];        char* p2 = env_name;        char* p3 = *p;        *p2++ = '$';        while(*p3 != '=') {            *p2++ = *p3++;        }        char* env = getenv(*p);        struct stat estat;        if(stat(env, &estat) >= 0) {            if(S_ISDIR(estat.st_mode)) {                *p2++ = '/';            }        }        *p2 = 0;        vector_add(gEnvirons, STRING_NEW(env_name));    }    (void)vector_sort(gEnvirons, name_sort);#endif,V
        char env_name[256];,V
        p2 = env_name;        p3 = *p;        *p3++='$';        *p3++='$';        while(*p3 != '=') {            *p2++ = *p3++;        }        if(r >= 0) {            if(S_ISDIR(estat.st_mode)) {                *p2++ = '/';            }        }        *p2 = 0;        vector_add(gEnvirons, STRING_NEW(env_name));        p2 = env_name;        p3 = *p;        *p3++='@';        while(*p3 != '=') {            *p2++ = *p3++;        }        if(r >= 0) {            if(S_ISDIR(estat.st_mode)) {                *p2++ = '/';            }        }        *p2 = 0;        vector_add(gEnvirons, STRING_NEW(env_name));        p2 = env_name;        p3 = *p;        *p3++='@';        *p3++='@';        while(*p3 != '=') {            *p2++ = *p3++;        }        if(r >= 0) {            if(S_ISDIR(estat.st_mode)) {,V
        p2 = env_name;        p3 = *p;        *p3++='$';        *p3++='$';        while(*p3 != '=') {            *p2++ = *p3++;        }        if(r >= 0) {            if(S_ISDIR(estat.st_mode)) {                *p2++ = '/';            }        }        *p2 = 0;        vector_add(gEnvirons, STRING_NEW(env_name));        p2 = env_name;        p3 = *p;        *p3++='@';        while(*p3 != '=') {            *p2++ = *p3++;        }        if(r >= 0) {            if(S_ISDIR(estat.st_mode)) {                *p2++ = '/';            }        }        *p2 = 0;        vector_add(gEnvirons, STRING_NEW(env_name));        p2 = env_name;        p3 = *p;        *p3++='@';        *p3++='@';        while(*p3 != '=') {            *p2++ = *p3++;        }        if(r >= 0) {            if(S_ISDIR(estat.st_mode)) {                *p2++ = '/';            }        }        *p2 = 0;        vector_add(gEnvirons, STRING_NEW(env_name));,V
        stat(env, &estat) >= 0) {,V
|,v
2,v
l,v
d,v
o,v
w,v
    static int dollar_num;    static int atmark_num;    static char* text2;    static int wordlen2;,V
        wordlen2 = strlen(text2);,V
        *text2 = 0;,V
            atmark_num++;        },V
        dollar_num = 0;        char* text2 = (char*)text;        while(*text2 == '$') {            text2++;            dollar_num++;        }        atmark_num = 0;        while(*text2 == '@') {            text2++;,V
