TheGNUGeneralPublicLicenseisoftenshippedwithGNUsoftware,and isgenerallykeptinafilecalledCOPYINGorLICENSE.Ifyoudonot haveacopyofthelicense,writetotheFreeSoftwareFoundation,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA. */ #define READLINE_LIBRARY
#ifdefined (HAVE_CONFIG_H) # include "config_readline.h" #endif
/* Return a copy of the string between FROM and TO.
FROM is inclusive, TO is not. */ char *
rl_copy_text (from, to) int from, to;
{ registerint length; char *copy;
/* Fix it if the caller is confused. */ if (from > to)
SWAP (from, to);
/* Increase the size of RL_LINE_BUFFER until it has enough space to hold
LEN characters. */ void
rl_extend_line_buffer (len) int len;
{ while (len >= rl_line_buffer_len)
{
rl_line_buffer_len += DEFAULT_BUFFER_SIZE;
rl_line_buffer = (char *)xrealloc (rl_line_buffer, rl_line_buffer_len);
}
_rl_set_the_line ();
}
/* A function for simple tilde expansion. */ int
rl_tilde_expand (ignore, key) int ignore __attribute__((unused)), key __attribute__((unused));
{ registerint start, end; char *homedir, *temp; int len;
end = start; do
end++; while (whitespace (rl_line_buffer[end]) == 0 && end < rl_end);
if (whitespace (rl_line_buffer[end]) || end >= rl_end)
end--;
/* If the first character of the current word is a tilde, perform tildeexpansionandinserttheresult.Ifnotatilde,do
nothing. */ if (rl_line_buffer[start] == '~')
{
len = end - start + 1;
temp = (char *)xmalloc (len + 1);
strncpy (temp, rl_line_buffer + start, len);
temp[len] = '\0';
homedir = tilde_expand (temp);
free (temp);
/* Determine if s2 occurs in s1. If so, return a pointer to the
match in s1. The compare is case insensitive. */ char *
_rl_strindex (s1, s2) registerconstchar *s1, *s2;
{ registerint i, l, len;
for (i = 0, l = strlen (s2), len = strlen (s1); (len - i) >= l; i++) if (_rl_strnicmp (s1 + i, s2, l) == 0) return ((char *) (s1 + i)); return ((char *)NULL);
}
#ifndef HAVE_STRPBRK /* Find the first occurrence in STRING1 of any character from STRING2.
Return a pointer to the character in STRING1. */ char *
_rl_strpbrk (string1, string2) constchar *string1, *string2;
{ registerconstchar *scan; #ifdefined (HANDLE_MULTIBYTE)
mbstate_t ps; registerint i, v;
memset (&ps, 0, sizeof (mbstate_t)); #endif
for (; *string1; string1++)
{ for (scan = string2; *scan; scan++)
{ if (*string1 == *scan) return ((char *)string1);
} #ifdefined (HANDLE_MULTIBYTE) if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
v = _rl_get_char_len (string1, &ps); if (v > 1)
string1 += v - 1; /* -1 to account for auto-increment in loop */
} #endif
} return ((char *)NULL);
} #endif
#if !defined (HAVE_STRCASECMP) /* Compare at most COUNT characters from string1 to string2. Case
doesn't matter. */ int
_rl_strnicmp (string1, string2, count) char *string1, *string2; int count;
{ registerchar ch1, ch2;
while (count)
{
ch1 = *string1++;
ch2 = *string2++; if (_rl_to_upper(ch1) == _rl_to_upper(ch2))
count--; else break;
} return (count);
}
/* strcmp (), but caseless. */ int
_rl_stricmp (string1, string2) char *string1, *string2;
{ registerchar ch1, ch2;
/* Backwards compatibility, now that savestring has been removed from
all `public' readline header files. */ #undef _rl_savestring char *
_rl_savestring (s) constchar *s;
{ return (strcpy ((char *)xmalloc (1 + (int)strlen (s)), (s)));
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.