1
2
3
4
5
6
7
8
9
10
11
12
|
1
2
3
4
5
6
7
8
9
10
11
12
|
-
+
|
/* ==================================================================
FILE: "/home/joze/src/tclreadline/tclreadline.c"
LAST MODIFICATION: "Fri Sep 10 02:57:55 1999 (joze)"
LAST MODIFICATION: "Mon Sep 13 02:21:35 1999 (joze)"
(C) 1998, 1999 by Johannes Zellner, <johannes@zellner.org>
$Id$
---
tclreadline -- gnu readline for tcl
Copyright (C) 1999 Johannes Zellner
|
︙ | | |
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
|
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
|
+
+
+
+
-
+
|
* default is " \t\n\"\\'`@$><=;|&{("
* removed "(" <-- arrays
* removed "{" <-- `${' variables
* removed "<" <-- completion lists with < ... >
* added "[]"
* added "}"
*/
/* 11.Sep rl_basic_word_break_characters = " \t\n\"\\@$}=;|&[]"; */
/* besser (11. Sept) 2. (removed \") */
/* rl_basic_word_break_characters = " \t\n\\@$}=;|&[]"; */
/* besser (11. Sept) 3. (removed }) */
rl_basic_word_break_characters = " \t\n\"\\@$}>=;|&[]";
rl_basic_word_break_characters = " \t\n\\@$=;|&[]";
// rl_basic_quote_characters = "\"{"; // XXX ??? XXX
// rl_completer_quote_characters = "\"";
/*
rl_filename_quote_characters
= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
rl_filename_quoting_function
|
︙ | | |
522
523
524
525
526
527
528
529
530
531
532
533
534
535
|
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
|
+
|
char**
TclReadlineCompletion(char* text, int start, int end)
{
char** matches = (char**) NULL;
int status;
// rl_attempted_completion_over = 0;
rl_completion_append_character = ' '; /* reset, just in case ... */
#if 0
fprintf(stderr, "DEBUG> TclReadlineCompletion: text=|%s|\n", text);
fprintf(stderr, "DEBUG> TclReadlineCompletion: start=|%d|\n", start);
fprintf(stderr, "DEBUG> TclReadlineCompletion: end=|%d|\n", end);
#endif
|
︙ | | |
624
625
626
627
628
629
630
631
632
633
634
635
636
637
|
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
return (char**) NULL;
}
/*
fprintf (stderr, "(TclReadlineCompletion) len[%s]=%d\n",
matches[i], strlen(matches[i]));
*/
}
/**
* this is a special one:
* if the script returns exactly two arguments
* and the second argument is the empty string,
* the rl_completion_append_character is set
* temporaryly to NULL.
*/
if (2 == objc && !strlen(matches[1])) {
i--;
FREE(matches[1]);
rl_completion_append_character = '\0';
}
matches[i] = (char*) NULL; /* terminate */
}
Tcl_ResetResult(tclrl_interp); /* clear result space */
}
if (!matches && tclrl_use_builtin_completer) {
matches = completion_matches(text, TclReadline0generator);
|
︙ | | |