Initial support for lastlog -r on win32 (Richard)
This commit is contained in:
parent
0d36e0cd2f
commit
ead7f234e5
|
@ -2386,13 +2386,13 @@ cmd_lastlog (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
||||||
if (*word_eol[2])
|
if (*word_eol[2])
|
||||||
{
|
{
|
||||||
if (!strcmp (word[2], "-r"))
|
if (!strcmp (word[2], "-r"))
|
||||||
#ifdef WIN32
|
{
|
||||||
lastlog (sess, word_eol[3], FALSE);
|
|
||||||
#else
|
|
||||||
lastlog (sess, word_eol[3], TRUE);
|
lastlog (sess, word_eol[3], TRUE);
|
||||||
#endif
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
lastlog (sess, word_eol[2], FALSE);
|
lastlog (sess, word_eol[2], FALSE);
|
||||||
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -700,20 +700,23 @@ fe_beep (void)
|
||||||
gdk_beep ();
|
gdk_beep ();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef WIN32
|
|
||||||
static int
|
static int
|
||||||
lastlog_regex_cmp (char *a, regex_t *reg)
|
lastlog_regex_cmp (char *a, GRegex *reg)
|
||||||
{
|
{
|
||||||
return !regexec (reg, a, 1, NULL, REG_NOTBOL);
|
GMatchInfo *gmi;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
g_regex_match (reg, a, 0, &gmi);
|
||||||
|
ret = (g_match_info_matches (gmi))? TRUE: FALSE;
|
||||||
|
g_match_info_free (gmi);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
void
|
||||||
fe_lastlog (session *sess, session *lastlog_sess, char *sstr, gboolean regexp)
|
fe_lastlog (session *sess, session *lastlog_sess, char *sstr, gboolean regexp)
|
||||||
{
|
{
|
||||||
#ifndef WIN32
|
GRegex *search_re = NULL;
|
||||||
regex_t reg;
|
GError *err = NULL;
|
||||||
#endif
|
|
||||||
|
|
||||||
if (gtk_xtext_is_empty (sess->res->buffer))
|
if (gtk_xtext_is_empty (sess->res->buffer))
|
||||||
{
|
{
|
||||||
|
@ -728,14 +731,18 @@ fe_lastlog (session *sess, session *lastlog_sess, char *sstr, gboolean regexp)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef WIN32
|
/* TODO: add arg 'match' and if it's TRUE don't use G_REGEX_CASELESS
|
||||||
if (regcomp (®, sstr, REG_ICASE | REG_EXTENDED | REG_NOSUB) == 0)
|
* and for that matter don't use nocasesetrstr() above either */
|
||||||
|
search_re = g_regex_new (sstr, G_REGEX_CASELESS, 0, &err);
|
||||||
|
if (err)
|
||||||
{
|
{
|
||||||
gtk_xtext_lastlog (lastlog_sess->res->buffer, sess->res->buffer,
|
PrintText (lastlog_sess, _(err->message));
|
||||||
(void *) lastlog_regex_cmp, ®);
|
return;
|
||||||
regfree (®);
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
gtk_xtext_lastlog (lastlog_sess->res->buffer, sess->res->buffer,
|
||||||
|
(void *) lastlog_regex_cmp, search_re);
|
||||||
|
g_regex_unref (search_re);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue