Bug#757000: [PATCH] Fix re-enabling of cursor with slang also after pressing Ctrl-C
According to curs_set(0) in ui_init() I think curs_set(1) belongs into ui_end with in die_on_signal() also gets called on SIGINT or SIGTERM. This should complete the fix made by Andreas in commit 4f4daf8f. I could not yet test the fix as building current git fails with: /usr/bin/ld: sys-utils/swapoff-swapon-common.o: undefined reference to symbol 'blkid_probe_lookup_value@@BLKID_2.15' //home/martin/Linux/util-linux/util-linux/.libs/libblkid.so.1: error adding symbols: DSO missing from command line Will test as soon as I found out how to fix this build issue. Benno reported it already on mailing list. Addresses-Debian-Bug: #757000 BCC´d there for reference. --- disk-utils/cfdisk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/disk-utils/cfdisk.c b/disk-utils/cfdisk.c index dfdaaf0..536132a 100644 --- a/disk-utils/cfdisk.c +++ b/disk-utils/cfdisk.c @@ -525,6 +525,7 @@ static int ui_end(void) #else mvcur(0, COLS - 1, LINES-1, 0); #endif + curs_set(1); nl(); endwin(); printf(\n); @@ -1966,7 +1967,6 @@ static int ui_run(struct cfdisk *cf) menu_pop(cf); - curs_set(1); DBG(FRONTEND, ul_debug(ui: end)); return 0; -- 2.0.1 Thanks, -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7 signature.asc Description: This is a digitally signed message part.
Bug#757000: [PATCH] Fix re-enabling of cursor with slang also after pressing Ctrl-C
Am Montag, 4. August 2014, 13:28:11 schrieben Sie: According to curs_set(0) in ui_init() I think curs_set(1) belongs into ui_end with in die_on_signal() also gets called on SIGINT or SIGTERM. This should complete the fix made by Andreas in commit 4f4daf8f. I could not yet test the fix as building current git fails with: /usr/bin/ld: sys-utils/swapoff-swapon-common.o: undefined reference to symbol 'blkid_probe_lookup_value@@BLKID_2.15' //home/martin/Linux/util-linux/util-linux/.libs/libblkid.so.1: error adding symbols: DSO missing from command line Will test as soon as I found out how to fix this build issue. Benno reported it already on mailing list. Addresses-Debian-Bug: #757000 BCC´d there for reference. Scratch that. Fix doesn´t work. Cursor is displayed on regular end, but not on Ctrl-C. Don´t get why tough. -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7 signature.asc Description: This is a digitally signed message part.
Bug#757000: [PATCH] Fix re-enabling of cursor with slang also after pressing Ctrl-C
Am Montag, 4. August 2014, 13:53:34 schrieb Martin Steigerwald: Am Montag, 4. August 2014, 13:28:11 schrieben Sie: According to curs_set(0) in ui_init() I think curs_set(1) belongs into ui_end with in die_on_signal() also gets called on SIGINT or SIGTERM. This should complete the fix made by Andreas in commit 4f4daf8f. I could not yet test the fix as building current git fails with: /usr/bin/ld: sys-utils/swapoff-swapon-common.o: undefined reference to symbol 'blkid_probe_lookup_value@@BLKID_2.15' //home/martin/Linux/util-linux/util-linux/.libs/libblkid.so.1: error adding symbols: DSO missing from command line Will test as soon as I found out how to fix this build issue. Benno reported it already on mailing list. Addresses-Debian-Bug: #757000 BCC´d there for reference. Scratch that. Fix doesn´t work. Cursor is displayed on regular end, but not on Ctrl-C. Don´t get why tough. Patch may still be correct, but SIGINT handler is broke: martin@merkaba:~/Linux/util-linux/util-linux sudo ./cfdisk [quitted] regularily] ui_end called! martin@merkaba:~/Linux/util-linux/util-linux sudo ./cfdisk [Ctrl-C] martin@merkaba:~/Linux/util-linux/util-linux#2 Its supposed to call ui_end(); but doesnt as above example demonstrates. 785 static int ui_init(struct cfdisk *cf __attribute__((__unused__))) 786 { 787 »···struct sigaction sa; 788 789 »···DBG(FRONTEND, ul_debug(ui: init)); 790 791 »···/* setup SIGCHLD handler */ 792 »···sigemptyset(sa.sa_mask); 793 »···sa.sa_flags = 0; 794 »···sa.sa_handler = die_on_signal; 795 »···sigaction(SIGINT, sa, NULL); 796 »···sigaction(SIGTERM, sa, NULL); 662 static void die_on_signal(int dummy __attribute__((__unused__))) 663 { 664 »···DBG(FRONTEND, ul_debug(die on signal.)); 665 »···ui_end(); 666 »···exit(EXIT_FAILURE); 667 } 517 static int ui_end(void) 518 { 519 »···if (!ui_enabled) 520 »···»···return -EINVAL; 521 522 #if defined(HAVE_SLCURSES_H) || defined(HAVE_SLANG_SLCURSES_H) 523 »···SLsmg_gotorc(LINES - 1, 0); 524 »···SLsmg_refresh(); 525 #else 526 »···mvcur(0, COLS - 1, LINES-1, 0); 527 #endif 528 »···printf(ui_end called!); 529 »···curs_set(1); 530 »···nl(); 531 »···endwin(); 532 »···printf(\n); 533 »···ui_enabled = 0; 534 »···return 0; 535 } Thanks, -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7 signature.asc Description: This is a digitally signed message part.