lkml.org 
[lkml]   [2018]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 17/31] kconfig: add 'filename' and 'lineno' built-in variables
    Date
    The special variables, $(filename) and $(lineno), are expanded to a
    file name and its line number being parsed, respectively.

    Suggested-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    ---

    Changes in v5: None
    Changes in v4:
    - Newly added

    Changes in v3: None
    Changes in v2: None

    scripts/kconfig/preprocess.c | 16 ++++++++++++++++
    1 file changed, 16 insertions(+)

    diff --git a/scripts/kconfig/preprocess.c b/scripts/kconfig/preprocess.c
    index 5ee58ee..0574039 100644
    --- a/scripts/kconfig/preprocess.c
    +++ b/scripts/kconfig/preprocess.c
    @@ -114,6 +114,11 @@ static char *do_error_if(int argc, char *argv[])
    return NULL;
    }

    +static char *do_filename(int argc, char *argv[])
    +{
    + return xstrdup(current_file->name);
    +}
    +
    static char *do_info(int argc, char *argv[])
    {
    printf("%s\n", argv[0]);
    @@ -121,6 +126,15 @@ static char *do_info(int argc, char *argv[])
    return xstrdup("");
    }

    +static char *do_lineno(int argc, char *argv[])
    +{
    + char buf[16];
    +
    + sprintf(buf, "%d", yylineno);
    +
    + return xstrdup(buf);
    +}
    +
    static char *do_shell(int argc, char *argv[])
    {
    FILE *p;
    @@ -173,7 +187,9 @@ static char *do_warning_if(int argc, char *argv[])
    static const struct function function_table[] = {
    /* Name MIN MAX Function */
    { "error-if", 2, 2, do_error_if },
    + { "filename", 0, 0, do_filename },
    { "info", 1, 1, do_info },
    + { "lineno", 0, 0, do_lineno },
    { "shell", 1, 1, do_shell },
    { "warning-if", 2, 2, do_warning_if },
    };
    --
    2.7.4
    \
     
     \ /
      Last update: 2018-05-28 11:30    [W:5.711 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site