<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/scripts/kconfig/nconf.gui.c, branch v4.4.93</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>kconfig/nconf: Fix hang when editing symbol with a long prompt</title>
<updated>2017-01-09T07:07:53+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>ben.hutchings@codethink.co.uk</email>
</author>
<published>2016-11-24T22:10:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7fb5a936457dff3616644d1725f28002048819f7'/>
<id>7fb5a936457dff3616644d1725f28002048819f7</id>
<content type='text'>
commit 79e51b5c2deea542b3bb8c66e0d502230b017dde upstream.

Currently it is impossible to edit the value of a config symbol with a
prompt longer than (terminal width - 2) characters.  dialog_inputbox()
calculates a negative x-offset for the input window and newwin() fails
as this is invalid.  It also doesn't check for this failure, so it
busy-loops calling wgetch(NULL) which immediately returns -1.

The additions in the offset calculations also don't match the intended
size of the window.

Limit the window size and calculate the offset similarly to
show_scroll_win().

Fixes: 692d97c380c6 ("kconfig: new configuration interface (nconfig)")
Signed-off-by: Ben Hutchings &lt;ben.hutchings@codethink.co.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 79e51b5c2deea542b3bb8c66e0d502230b017dde upstream.

Currently it is impossible to edit the value of a config symbol with a
prompt longer than (terminal width - 2) characters.  dialog_inputbox()
calculates a negative x-offset for the input window and newwin() fails
as this is invalid.  It also doesn't check for this failure, so it
busy-loops calling wgetch(NULL) which immediately returns -1.

The additions in the offset calculations also don't match the intended
size of the window.

Limit the window size and calculate the offset similarly to
show_scroll_win().

Fixes: 692d97c380c6 ("kconfig: new configuration interface (nconfig)")
Signed-off-by: Ben Hutchings &lt;ben.hutchings@codethink.co.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>nconf: use function calls instead of ncurses' variables LINES and COLS</title>
<updated>2013-06-18T21:58:58+00:00</updated>
<author>
<name>Dirk Gouders</name>
<email>dirk@gouders.net</email>
</author>
<published>2013-05-13T09:23:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e0b42605e685a0833303e1d4dde277c99d9e17b5'/>
<id>e0b42605e685a0833303e1d4dde277c99d9e17b5</id>
<content type='text'>
According to the documentation [1], LINES and COLS are initialized by
initscr(); it does not say anything about the behavior when windows are
resized.

Do not rely on the current implementation of ncurses that updates
these variables on resize, but use the propper function calls or macros
to get window dimensions.

The use of the variables in main() was OK, but for the sake of
consistency it was modified to use the macro getmaxyx().

[1] ncurses(3X)

Signed-off-by: Dirk Gouders &lt;dirk@gouders.net&gt;
Reviewed-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
[yann.morin.1998@free.fr: declare 'lines' and 'columns' on a single line]
Signed-off-by: Yann E. MORIN &lt;yann.morin.1998@free.fr&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
According to the documentation [1], LINES and COLS are initialized by
initscr(); it does not say anything about the behavior when windows are
resized.

Do not rely on the current implementation of ncurses that updates
these variables on resize, but use the propper function calls or macros
to get window dimensions.

The use of the variables in main() was OK, but for the sake of
consistency it was modified to use the macro getmaxyx().

[1] ncurses(3X)

Signed-off-by: Dirk Gouders &lt;dirk@gouders.net&gt;
Reviewed-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
[yann.morin.1998@free.fr: declare 'lines' and 'columns' on a single line]
Signed-off-by: Yann E. MORIN &lt;yann.morin.1998@free.fr&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nconf: function keys line, change background color for better readability</title>
<updated>2013-01-24T10:43:44+00:00</updated>
<author>
<name>Roland Eggner</name>
<email>edvx1@systemanalysen.net</email>
</author>
<published>2012-12-29T22:33:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c5ffa130f3644b51e588a2a6770648b6ea936969'/>
<id>c5ffa130f3644b51e588a2a6770648b6ea936969</id>
<content type='text'>
•  In function keys line descriptions black on darkblue are almost
   impossible to read.  Change colors to black on brown.

Signed-off-by: Roland Eggner &lt;edvx1@systemanalysen.net&gt;
Tested-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
•  In function keys line descriptions black on darkblue are almost
   impossible to read.  Change colors to black on brown.

Signed-off-by: Roland Eggner &lt;edvx1@systemanalysen.net&gt;
Tested-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nconf: add u, d command keys in scroll windows</title>
<updated>2012-07-26T10:20:46+00:00</updated>
<author>
<name>Benjamin Poirier</name>
<email>bpoirier@suse.de</email>
</author>
<published>2012-07-24T20:12:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d68e818bc4d5c962093ced51c4d8341fc6aea30d'/>
<id>d68e818bc4d5c962093ced51c4d8341fc6aea30d</id>
<content type='text'>
They function just like they do in less(1).
Also correct some discrepancy between the help text and the code wrt
function keys.

Signed-off-by: Benjamin Poirier &lt;bpoirier@suse.de&gt;
Signed-off-by: Michal Marek &lt;mmarek@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
They function just like they do in less(1).
Also correct some discrepancy between the help text and the code wrt
function keys.

Signed-off-by: Benjamin Poirier &lt;bpoirier@suse.de&gt;
Signed-off-by: Michal Marek &lt;mmarek@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>scripts/kconfig/nconf: add KEY_HOME / KEY_END for dialog_inputbox</title>
<updated>2011-09-09T12:40:08+00:00</updated>
<author>
<name>Cheng Renquan</name>
<email>crquan@gmail.com</email>
</author>
<published>2011-09-01T17:52:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=93072c3ecafcf188390750cc755185f3150736b9'/>
<id>93072c3ecafcf188390750cc755185f3150736b9</id>
<content type='text'>
to make it easier to locate begin/end when editing long strings;

Signed-off-by: Cheng Renquan &lt;crquan@gmail.com&gt;
Acked By: Nir Tzachar &lt;nir.tzachar@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
to make it easier to locate begin/end when editing long strings;

Signed-off-by: Cheng Renquan &lt;crquan@gmail.com&gt;
Acked By: Nir Tzachar &lt;nir.tzachar@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>scripts/kconfig/nconf: fix editing long strings</title>
<updated>2011-09-09T12:40:08+00:00</updated>
<author>
<name>Cheng Renquan</name>
<email>crquan@gmail.com</email>
</author>
<published>2011-09-01T17:52:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e631a57a19e103c3bb59495b236634ec62e2a850'/>
<id>e631a57a19e103c3bb59495b236634ec62e2a850</id>
<content type='text'>
The original dialog_inputbox doesn't work with longer than prompt_width
strings, here fixed it in this way:
1) add variable cursor_form_win to record cursor of form_win,
   keep its value always between [0, prompt_width-1];
   reuse the original cursor_position as cursor of the string result,
   use (cursor_position-cursor_form_win) as begin offset to show part of
   the string in form_win;

Signed-off-by: Cheng Renquan &lt;crquan@gmail.com&gt;
Cc: Arnaud Lacombe &lt;lacombar@gmail.com&gt;
Cc: Nir Tzachar &lt;nir.tzachar@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The original dialog_inputbox doesn't work with longer than prompt_width
strings, here fixed it in this way:
1) add variable cursor_form_win to record cursor of form_win,
   keep its value always between [0, prompt_width-1];
   reuse the original cursor_position as cursor of the string result,
   use (cursor_position-cursor_form_win) as begin offset to show part of
   the string in form_win;

Signed-off-by: Cheng Renquan &lt;crquan@gmail.com&gt;
Cc: Arnaud Lacombe &lt;lacombar@gmail.com&gt;
Cc: Nir Tzachar &lt;nir.tzachar@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>scripts/kconfig/nconf: dynamically alloc dialog_input_result</title>
<updated>2011-09-09T12:40:08+00:00</updated>
<author>
<name>Cheng Renquan</name>
<email>crquan@gmail.com</email>
</author>
<published>2011-09-01T17:52:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5ea9f64ffc073bf2882f6aa83b0dad3609b1e67a'/>
<id>5ea9f64ffc073bf2882f6aa83b0dad3609b1e67a</id>
<content type='text'>
To support unlimited length string config items;

No check for realloc return value keeps code simple, and to be
consistent with other existing unchecked malloc in kconfig.

Signed-off-by: Cheng Renquan &lt;crquan@gmail.com&gt;
Signed-off-by: Arnaud Lacombe &lt;lacombar@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To support unlimited length string config items;

No check for realloc return value keeps code simple, and to be
consistent with other existing unchecked malloc in kconfig.

Signed-off-by: Cheng Renquan &lt;crquan@gmail.com&gt;
Signed-off-by: Arnaud Lacombe &lt;lacombar@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>scripts/kconfig/nconf: fix memmove's length arg</title>
<updated>2011-09-09T12:40:08+00:00</updated>
<author>
<name>Cheng Renquan</name>
<email>crquan@gmail.com</email>
</author>
<published>2011-09-01T17:52:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cd58a90fa6ff2ec86bcc9e399acfd6dcc97268b3'/>
<id>cd58a90fa6ff2ec86bcc9e399acfd6dcc97268b3</id>
<content type='text'>
In case KEY_BACKSPACE / KEY_DC to delete a char, it memmove only
(len-cursor_position+1) bytes;
the default case is to insert a char, it should also memmove exactly
(len-cursor_position+1) bytes;

the original use of (len+1) is wrong and may access following memory
that doesn't belong to result, may cause SegFault in theory;

	case KEY_BACKSPACE:
		if (cursor_position &gt; 0) {
			memmove(&amp;result[cursor_position-1],
					&amp;result[cursor_position],
					len-cursor_position+1);
			cursor_position--;
		}
		break;
	case KEY_DC:
		if (cursor_position &gt;= 0 &amp;&amp; cursor_position &lt; len) {
			memmove(&amp;result[cursor_position],
					&amp;result[cursor_position+1],
					len-cursor_position+1);
		}
		break;
	default:
		if ((isgraph(res) || isspace(res)) &amp;&amp;
				len-2 &lt; result_len) {
			/* insert the char at the proper position */
			memmove(&amp;result[cursor_position+1],
					&amp;result[cursor_position],
					len-cursor_position+1);
			result[cursor_position] = res;
			cursor_position++;
		}

Signed-off-by: Cheng Renquan &lt;crquan@gmail.com&gt;
Acked-by: Nir Tzachar &lt;nir.tzachar@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In case KEY_BACKSPACE / KEY_DC to delete a char, it memmove only
(len-cursor_position+1) bytes;
the default case is to insert a char, it should also memmove exactly
(len-cursor_position+1) bytes;

the original use of (len+1) is wrong and may access following memory
that doesn't belong to result, may cause SegFault in theory;

	case KEY_BACKSPACE:
		if (cursor_position &gt; 0) {
			memmove(&amp;result[cursor_position-1],
					&amp;result[cursor_position],
					len-cursor_position+1);
			cursor_position--;
		}
		break;
	case KEY_DC:
		if (cursor_position &gt;= 0 &amp;&amp; cursor_position &lt; len) {
			memmove(&amp;result[cursor_position],
					&amp;result[cursor_position+1],
					len-cursor_position+1);
		}
		break;
	default:
		if ((isgraph(res) || isspace(res)) &amp;&amp;
				len-2 &lt; result_len) {
			/* insert the char at the proper position */
			memmove(&amp;result[cursor_position+1],
					&amp;result[cursor_position],
					len-cursor_position+1);
			result[cursor_position] = res;
			cursor_position++;
		}

Signed-off-by: Cheng Renquan &lt;crquan@gmail.com&gt;
Acked-by: Nir Tzachar &lt;nir.tzachar@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>scripts/kconfig/nconf: fix typo: unknow =&gt; unknown</title>
<updated>2011-09-09T12:40:08+00:00</updated>
<author>
<name>Cheng Renquan</name>
<email>crquan@gmail.com</email>
</author>
<published>2011-09-01T17:52:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4e24dbfc26f8b8285c9ed2f92ffddf4eb8ab960a'/>
<id>4e24dbfc26f8b8285c9ed2f92ffddf4eb8ab960a</id>
<content type='text'>
Signed-off-by: Cheng Renquan &lt;crquan@gmail.com&gt;
Acked-by: Arnaud Lacombe &lt;lacombar@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Cheng Renquan &lt;crquan@gmail.com&gt;
Acked-by: Arnaud Lacombe &lt;lacombar@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kbuild: fix typo</title>
<updated>2010-08-17T09:00:43+00:00</updated>
<author>
<name>Arnaud Lacombe</name>
<email>lacombar@gmail.com</email>
</author>
<published>2010-08-16T04:19:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c24035b9edad6164ddc12e88444acea741d5e309'/>
<id>c24035b9edad6164ddc12e88444acea741d5e309</id>
<content type='text'>
Signed-off-by: Arnaud Lacombe &lt;lacombar@gmail.com&gt;
Signed-off-by: Michal Marek &lt;mmarek@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Arnaud Lacombe &lt;lacombar@gmail.com&gt;
Signed-off-by: Michal Marek &lt;mmarek@suse.cz&gt;
</pre>
</div>
</content>
</entry>
</feed>
