lkml.org 
[lkml]   [2004]   [Sep]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Menuconfig search changes - pt. 3
Hi,

On Tue, 14 Sep 2004, Yuval Turgeman wrote:

> +static int regex_match(const char *string, regex_t *re)
> +{
> + int rc;
> +
> + rc = regexec(re, string, (size_t) 0, NULL, 0);
> + if (rc)
> + return 0;
> + return 1;
> +}

I guess, this doesn't has to be a separate function anymore.

> +static void show_expr(struct menu *menu, FILE *fp)
> +{
> + bool hit = false;
> + fprintf(fp, "Depends:\n ");
> + if (menu->prompt->visible.expr) {
> + if (!hit)
> + hit = true;
> + expr_fprint(menu->prompt->visible.expr, fp);
> + }
> + if (!hit)
> + fprintf(fp, "None");
> + if (menu->sym) {
> + struct property *prop;
> + hit = false;
> + fprintf(fp, "\nSelects:\n ");
> + for_all_properties(menu->sym, prop, P_SELECT) {
> + if (!hit)
> + hit = true;
> + expr_fprint(prop->expr, fp);
> + }
> + if (!hit)
> + fprintf(fp, "None");
> + hit = false;
> + fprintf(fp, "\nSelected by:\n ");
> + if (menu->sym->rev_dep.expr) {
> + hit = true;
> + expr_fprint(menu->sym->rev_dep.expr, fp);
> + }
> + if (!hit)
> + fprintf(fp, "None");
> + }
> +}

This still prints duplicate information, look at how
ConfigMainWindow::setHelp() in qconf.cc does it. Your function should have
pretty much the same structure, e.g.

> + for_all_symbols(i, sym) {
> + if (!sym->name)
> + continue;
> + if (!regex_match(sym->name, &re))
> + continue;
> + for_all_prompts(sym, prop) {

here you should iterate over all properties and print the info about it.

> + if (!hit)
> + fprintf(fp, "No matches found.");

You could print the number of found symbols here.

> stat = exec_conf();
> + if (stat == 26) {

Move this into the switch part a few lines below and simply use the next
available number. For this you need to print the currently selected
symbol and the search string from lxdialog, this way you also return to
the same previously selected symbol after exiting the search.

bye, Roman
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:06    [W:1.356 / U:0.000 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site