* [sup-talk] ncurses hack
@ 2009-08-17 19:54 Edward Z. Yang
2009-08-18 2:43 ` William Morgan
0 siblings, 1 reply; 9+ messages in thread
From: Edward Z. Yang @ 2009-08-17 19:54 UTC (permalink / raw)
Today, I decided to throw in the towel and patch my copy of ncurses
to have the appropriate fix for international characters + tabs. Does
anyone know of a list of instructions for carrying this out?
Cheers,
Edward
^ permalink raw reply [flat|nested] 9+ messages in thread
* [sup-talk] ncurses hack
2009-08-17 19:54 [sup-talk] ncurses hack Edward Z. Yang
@ 2009-08-18 2:43 ` William Morgan
2009-08-18 7:42 ` Dusan
0 siblings, 1 reply; 9+ messages in thread
From: William Morgan @ 2009-08-18 2:43 UTC (permalink / raw)
Reformatted excerpts from Edward Z. Yang's message of 2009-08-17:
> Today, I decided to throw in the towel and patch my copy of ncurses to
> have the appropriate fix for international characters + tabs. Does
> anyone know of a list of instructions for carrying this out?
Try http://sup.rubyforge.org/wiki/wiki.pl?UTF8. If you're running Sup
git, I've made a nice branch for this:
$ git branch --track ncursesw origin/ncursesw
$ git checkout ncursesw
$ cd ncurses-0.9.1/
$ ./run-this-for-sup.sh
Which will generate an ncurses.so file in lib/. You can then switch back
to master or next and it should pick it up.
This should fix many wide-character issues but it won't fix all of them,
because there's still no way of determining the display width of a
unicode character (e.g. Chinese characters take two columns to display).
So the display still ends up funny.
Ruby 1.9 has better encoding support but I don't know if it fixes this.
--
William <wmorgan-sup at masanjin.net>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [sup-talk] ncurses hack
2009-08-18 2:43 ` William Morgan
@ 2009-08-18 7:42 ` Dusan
2009-08-18 18:24 ` Benoît PIERRE
0 siblings, 1 reply; 9+ messages in thread
From: Dusan @ 2009-08-18 7:42 UTC (permalink / raw)
Excerpts from William Morgan's message of Tue Aug 18 04:43:18 +0200 2009:
> Reformatted excerpts from Edward Z. Yang's message of 2009-08-17:
> > Today, I decided to throw in the towel and patch my copy of ncurses to
> > have the appropriate fix for international characters + tabs. Does
> > anyone know of a list of instructions for carrying this out?
>
> Try http://sup.rubyforge.org/wiki/wiki.pl?UTF8. If you're running Sup
> git, I've made a nice branch for this:
>
> $ git branch --track ncursesw origin/ncursesw
> $ git checkout ncursesw
> $ cd ncurses-0.9.1/
> $ ./run-this-for-sup.sh
>
> Which will generate an ncurses.so file in lib/. You can then switch back
> to master or next and it should pick it up.
>
> This should fix many wide-character issues but it won't fix all of them,
> because there's still no way of determining the display width of a
> unicode character (e.g. Chinese characters take two columns to display).
> So the display still ends up funny.
>
> Ruby 1.9 has better encoding support but I don't know if it fixes this.
I am new sup user and love it very much.
Not being able to fix search/save and other edits is huge show-stopper.
I do what I read somewhere:
-start search, get garbage results
-kill that buffer with 'x'
-start another search but instead of typing search term again first
repeat: press up, delete search garbage, press up, delete search
garbage, repeat until there is nothing to delete
-type another search term and search now works 100%
This works for searches but edits like save still fail (or save X((%^1X file
so if you can find it you can rename it).
Looks like fixable bug to simulate what I did for searches? Repeat in
code ten times 'up arrow', '50 x delete char'? Sorry if I am wrong.
Using sup and not being able to properly search or save is too wrong.
If there is any config/version I should report to get this fixed just
let me know. Without waiting for new ruby of course -- I do have proper
results when I repeat deleting ritual.
Thanks
^ permalink raw reply [flat|nested] 9+ messages in thread
* [sup-talk] ncurses hack
2009-08-18 7:42 ` Dusan
@ 2009-08-18 18:24 ` Benoît PIERRE
2009-08-18 18:46 ` Dusan
2009-08-18 19:31 ` Jörg-Hendrik Bach
0 siblings, 2 replies; 9+ messages in thread
From: Benoît PIERRE @ 2009-08-18 18:24 UTC (permalink / raw)
Excerpts from Dusan's message of Tue Aug 18 09:42:48 +0200 2009:
>
> [...]
>
> Not being able to fix search/save and other edits is huge show-stopper.
> I do what I read somewhere:
>
> -start search, get garbage results
> -kill that buffer with 'x'
> -start another search but instead of typing search term again first
> repeat: press up, delete search garbage, press up, delete search
> garbage, repeat until there is nothing to delete
> -type another search term and search now works 100%
>
> This works for searches but edits like save still fail (or save X((%^1X file
> so if you can find it you can rename it).
>
> Looks like fixable bug to simulate what I did for searches? Repeat in
> code ten times 'up arrow', '50 x delete char'? Sorry if I am wrong.
>
> Using sup and not being able to properly search or save is too wrong.
>
> If there is any config/version I should report to get this fixed just
> let me know. Without waiting for new ruby of course -- I do have proper
> results when I repeat deleting ritual.
Hi, can you try the following patch and tell me if it fix the problem?
diff --git a/lib/sup/textfield.rb b/lib/sup/textfield.rb
index b8dec59..ccc8533 100644
--- a/lib/sup/textfield.rb
+++ b/lib/sup/textfield.rb
@@ -36,8 +36,9 @@ class TextField
@field = Ncurses::Form.new_field 1, @width - question.length, @y,
@x + question.length, 256, 0
@form = Ncurses::Form.new_form [@field]
@value = default
+ @value ||= ''
Ncurses::Form.post_form @form
- set_cursed_value default if default
+ set_cursed_value @value
end
def position_cursor
--
A: Because it destroys the flow of conversation.
Q: Why is top posting dumb?
^ permalink raw reply [flat|nested] 9+ messages in thread
* [sup-talk] ncurses hack
2009-08-18 18:24 ` Benoît PIERRE
@ 2009-08-18 18:46 ` Dusan
2009-08-18 18:59 ` Benoît PIERRE
2009-08-18 19:31 ` Jörg-Hendrik Bach
1 sibling, 1 reply; 9+ messages in thread
From: Dusan @ 2009-08-18 18:46 UTC (permalink / raw)
Excerpts from Beno?t PIERRE's message of Tue Aug 18 20:24:45 +0200 2009:
> Excerpts from Dusan's message of Tue Aug 18 09:42:48 +0200 2009:
> >
> > [...]
> >
> > Not being able to fix search/save and other edits is huge show-stopper.
> > I do what I read somewhere:
> >
> > -start search, get garbage results
> > -kill that buffer with 'x'
> > -start another search but instead of typing search term again first
> > repeat: press up, delete search garbage, press up, delete search
> > garbage, repeat until there is nothing to delete
> > -type another search term and search now works 100%
> >
> > This works for searches but edits like save still fail (or save X((%^1X file
> > so if you can find it you can rename it).
> >
> > Looks like fixable bug to simulate what I did for searches? Repeat in
> > code ten times 'up arrow', '50 x delete char'? Sorry if I am wrong.
> >
> > Using sup and not being able to properly search or save is too wrong.
> >
> > If there is any config/version I should report to get this fixed just
> > let me know. Without waiting for new ruby of course -- I do have proper
> > results when I repeat deleting ritual.
>
> Hi, can you try the following patch and tell me if it fix the problem?
>
> diff --git a/lib/sup/textfield.rb b/lib/sup/textfield.rb
> index b8dec59..ccc8533 100644
> --- a/lib/sup/textfield.rb
> +++ b/lib/sup/textfield.rb
> @@ -36,8 +36,9 @@ class TextField
> @field = Ncurses::Form.new_field 1, @width - question.length, @y,
> @x + question.length, 256, 0
> @form = Ncurses::Form.new_form [@field]
> @value = default
> + @value ||= ''
> Ncurses::Form.post_form @form
> - set_cursed_value default if default
> + set_cursed_value @value
> end
>
> def position_cursor
I will, just give me day or two. I am using gem version, not svn or git.
I did some stuff with them but never with ruby. Can you give me two
lines help what to install and where? Latest svn?
Sorry I am not _that_ helpful but ruby is new thing to me. I should be
able to test this soon enough with some help.
Thanks,
Dusan
^ permalink raw reply [flat|nested] 9+ messages in thread
* [sup-talk] ncurses hack
2009-08-18 18:46 ` Dusan
@ 2009-08-18 18:59 ` Benoît PIERRE
2009-08-18 19:04 ` Dusan
2009-08-18 19:24 ` Dusan
0 siblings, 2 replies; 9+ messages in thread
From: Benoît PIERRE @ 2009-08-18 18:59 UTC (permalink / raw)
Excerpts from Dusan's message of Tue Aug 18 20:46:52 +0200 2009:
> Excerpts from Beno?t PIERRE's message of Tue Aug 18 20:24:45 +0200 2009:
> > Excerpts from Dusan's message of Tue Aug 18 09:42:48 +0200 2009:
>
> [...]
>
> I will, just give me day or two. I am using gem version, not svn or git.
> I did some stuff with them but never with ruby. Can you give me two
> lines help what to install and where? Latest svn?
You can probably directly patch the sources in the gem. For example on
Ubuntu, the sources should be somewhere in /var/lib/gems/1.8/gems/sup-xxx.
Use 'gem environment' to get the installation directory.
Another option is to follow the wiki to get the latest git version:
http://sup.rubyforge.org/wiki/wiki.pl?Contributing
--
A: Because it destroys the flow of conversation.
Q: Why is top posting dumb?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://rubyforge.org/pipermail/sup-talk/attachments/20090818/302eaeb0/attachment.bin>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [sup-talk] ncurses hack
2009-08-18 18:59 ` Benoît PIERRE
@ 2009-08-18 19:04 ` Dusan
2009-08-18 19:24 ` Dusan
1 sibling, 0 replies; 9+ messages in thread
From: Dusan @ 2009-08-18 19:04 UTC (permalink / raw)
Excerpts from Beno?t PIERRE's message of Tue Aug 18 20:59:20 +0200 2009:
> Excerpts from Dusan's message of Tue Aug 18 20:46:52 +0200 2009:
> > Excerpts from Beno?t PIERRE's message of Tue Aug 18 20:24:45 +0200 2009:
> > > Excerpts from Dusan's message of Tue Aug 18 09:42:48 +0200 2009:
> >
> > [...]
> >
> > I will, just give me day or two. I am using gem version, not svn or git.
> > I did some stuff with them but never with ruby. Can you give me two
> > lines help what to install and where? Latest svn?
>
> You can probably directly patch the sources in the gem. For example on
> Ubuntu, the sources should be somewhere in /var/lib/gems/1.8/gems/sup-xxx.
>
> Use 'gem environment' to get the installation directory.
>
> Another option is to follow the wiki to get the latest git version:
> http://sup.rubyforge.org/wiki/wiki.pl?Contributing
Everything but git, thanks :)
Of course, ruby is interpreter, I keep forgetting that.
I am using ArchLinux and should be fairly skilled to do some changing. Reporting
back tomorrow.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [sup-talk] ncurses hack
2009-08-18 18:59 ` Benoît PIERRE
2009-08-18 19:04 ` Dusan
@ 2009-08-18 19:24 ` Dusan
1 sibling, 0 replies; 9+ messages in thread
From: Dusan @ 2009-08-18 19:24 UTC (permalink / raw)
Excerpts from Beno?t PIERRE's message of Tue Aug 18 20:59:20 +0200 2009:
> Excerpts from Dusan's message of Tue Aug 18 20:46:52 +0200 2009:
> > Excerpts from Beno?t PIERRE's message of Tue Aug 18 20:24:45 +0200 2009:
> > > Excerpts from Dusan's message of Tue Aug 18 09:42:48 +0200 2009:
> >
> > [...]
> >
> > I will, just give me day or two. I am using gem version, not svn or git.
> > I did some stuff with them but never with ruby. Can you give me two
> > lines help what to install and where? Latest svn?
>
> You can probably directly patch the sources in the gem. For example on
> Ubuntu, the sources should be somewhere in /var/lib/gems/1.8/gems/sup-xxx.
>
> Use 'gem environment' to get the installation directory.
>
> Another option is to follow the wiki to get the latest git version:
> http://sup.rubyforge.org/wiki/wiki.pl?Contributing
Bah, I could not wait till tomorrow and it's not _that_ late...
This fix WORKS :) Every time so far. Please include this into release
asap, this is what prevents a lot of people from using sup.
I patched source with vim, diff is too automatic :)
Here is func that works:
activate window, y, x, width, question, default=nil, &block
@w, @y, @x, @width = window, y, x, width
@question = question
@completion_block = block
@field = Ncurses::Form.new_field 1, @width - question.length, @y, @x
+ question.length, 256, 0
@form = Ncurses::Form.new_form [@field]
@value = default
@value ||= ''
Ncurses::Form.post_form @form
# set_cursed_value default if default
set_cursed_value @value
end
Probably @value=default can go too, not sure since I don't know ruby?
Thanks a lot!
^ permalink raw reply [flat|nested] 9+ messages in thread
* [sup-talk] ncurses hack
2009-08-18 18:24 ` Benoît PIERRE
2009-08-18 18:46 ` Dusan
@ 2009-08-18 19:31 ` Jörg-Hendrik Bach
1 sibling, 0 replies; 9+ messages in thread
From: Jörg-Hendrik Bach @ 2009-08-18 19:31 UTC (permalink / raw)
2009/8/18 Beno?t PIERRE <benoit.pierre at gmail.com>:
> Hi, can you try the following patch and tell me if it fix the problem?
>
> diff --git a/lib/sup/textfield.rb b/lib/sup/textfield.rb
> index b8dec59..ccc8533 100644
> --- a/lib/sup/textfield.rb
> +++ b/lib/sup/textfield.rb
> @@ -36,8 +36,9 @@ class TextField
> ? ? @field = Ncurses::Form.new_field 1, @width - question.length, @y,
> @x + question.length, 256, 0
> ? ? @form = Ncurses::Form.new_form [@field]
> ? ? @value = default
> + ? ?@value ||= ''
> ? ? Ncurses::Form.post_form @form
> - ? ?set_cursed_value default if default
> + ? ?set_cursed_value @value
> ? end
>
> ? def position_cursor
Thanks a lot. I don't know what this does exactly, but the first added
line of that patch was sufficient to get searches with utf-8 running
well from startup, without the need to go for a dummy search each time
i restarted sup.
The full patch (including the replacement at line 41) broke searching
altogether, on hitting '\' it throws:
--- TypeError from thread: main
can't convert nil into String
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/textfield.rb:159:in
`set_field_buffer'
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/textfield.rb:159:in
`set_cursed_value'
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/textfield.rb:42:in `activate'
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/buffer.rb:537:in `ask'
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/buffer.rb:26:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/buffer.rb:26:in `sync'
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/buffer.rb:536:in `ask'
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/util.rb:513:in `send'
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/util.rb:513:in `method_missing'
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/bin/sup:268
/usr/bin/sup:19:in `load'
/usr/bin/sup:19
- J?rg-Hendrik
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-08-18 19:31 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-17 19:54 [sup-talk] ncurses hack Edward Z. Yang
2009-08-18 2:43 ` William Morgan
2009-08-18 7:42 ` Dusan
2009-08-18 18:24 ` Benoît PIERRE
2009-08-18 18:46 ` Dusan
2009-08-18 18:59 ` Benoît PIERRE
2009-08-18 19:04 ` Dusan
2009-08-18 19:24 ` Dusan
2009-08-18 19:31 ` Jörg-Hendrik Bach
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox