diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-01 11:55:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-01 11:55:52 -0400 |
commit | 1f73897861b8ef0be64ff4b801f8d6f830f683b5 (patch) | |
tree | b4bae8f12e1422113910d8cb00a19d010dc4a52f /scripts/kconfig/expr.c | |
parent | b904d7131d116900524bd36ec170dcd97846bfd3 (diff) | |
parent | 64ffc9ff424c65adcffe7d590018cc75e2d5d42a (diff) |
Merge branch 'for-35' of git://repo.or.cz/linux-kbuild
* 'for-35' of git://repo.or.cz/linux-kbuild: (81 commits)
kbuild: Revert part of e8d400a to resolve a conflict
kbuild: Fix checking of scm-identifier variable
gconfig: add support to show hidden options that have prompts
menuconfig: add support to show hidden options which have prompts
gconfig: remove show_debug option
gconfig: remove dbg_print_ptype() and dbg_print_stype()
kconfig: fix zconfdump()
kconfig: some small fixes
add random binaries to .gitignore
kbuild: Include gen_initramfs_list.sh and the file list in the .d file
kconfig: recalc symbol value before showing search results
.gitignore: ignore *.lzo files
headerdep: perlcritic warning
scripts/Makefile.lib: Align the output of LZO
kbuild: Generate modules.builtin in make modules_install
Revert "kbuild: specify absolute paths for cscope"
kbuild: Do not unnecessarily regenerate modules.builtin
headers_install: use local file handles
headers_check: fix perl warnings
export_report: fix perl warnings
...
Diffstat (limited to 'scripts/kconfig/expr.c')
-rw-r--r-- | scripts/kconfig/expr.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/scripts/kconfig/expr.c b/scripts/kconfig/expr.c index edd3f39a080a..d83f2322893a 100644 --- a/scripts/kconfig/expr.c +++ b/scripts/kconfig/expr.c | |||
@@ -1097,9 +1097,32 @@ void expr_fprint(struct expr *e, FILE *out) | |||
1097 | 1097 | ||
1098 | static void expr_print_gstr_helper(void *data, struct symbol *sym, const char *str) | 1098 | static void expr_print_gstr_helper(void *data, struct symbol *sym, const char *str) |
1099 | { | 1099 | { |
1100 | str_append((struct gstr*)data, str); | 1100 | struct gstr *gs = (struct gstr*)data; |
1101 | const char *sym_str = NULL; | ||
1102 | |||
1103 | if (sym) | ||
1104 | sym_str = sym_get_string_value(sym); | ||
1105 | |||
1106 | if (gs->max_width) { | ||
1107 | unsigned extra_length = strlen(str); | ||
1108 | const char *last_cr = strrchr(gs->s, '\n'); | ||
1109 | unsigned last_line_length; | ||
1110 | |||
1111 | if (sym_str) | ||
1112 | extra_length += 4 + strlen(sym_str); | ||
1113 | |||
1114 | if (!last_cr) | ||
1115 | last_cr = gs->s; | ||
1116 | |||
1117 | last_line_length = strlen(gs->s) - (last_cr - gs->s); | ||
1118 | |||
1119 | if ((last_line_length + extra_length) > gs->max_width) | ||
1120 | str_append(gs, "\\\n"); | ||
1121 | } | ||
1122 | |||
1123 | str_append(gs, str); | ||
1101 | if (sym) | 1124 | if (sym) |
1102 | str_printf((struct gstr*)data, " [=%s]", sym_get_string_value(sym)); | 1125 | str_printf(gs, " [=%s]", sym_str); |
1103 | } | 1126 | } |
1104 | 1127 | ||
1105 | void expr_gstr_print(struct expr *e, struct gstr *gs) | 1128 | void expr_gstr_print(struct expr *e, struct gstr *gs) |