GithubHelp home page GithubHelp logo

sup-heliotrope / sup Goto Github PK

View Code? Open in Web Editor NEW
886.0 886.0 96.0 6.5 MB

A curses threads-with-tags style email client (mailing list: [email protected])

Home Page: http://sup-heliotrope.github.io

License: GNU General Public License v2.0

Ruby 90.82% Shell 2.06% Nix 7.12%
email mua ruby tui

sup's People

Contributors

5long avatar alexmv avatar avtobiff avatar benoit-pierre avatar bloovis avatar bonds avatar cworth-gh avatar damienleone avatar danc86 avatar dato avatar decklin avatar ericweikl avatar ezyang avatar foobacca avatar gaudenz avatar gauteh avatar granth avatar hyperbolist avatar iht avatar ipv2 avatar kalbasit avatar michitux avatar mklinik avatar np avatar rlane avatar silbe avatar stapelberg avatar terotil avatar timonv avatar zjvandeweg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sup's Issues

Syntax error after git pull

I have a strange problem after pulling from the master revision

./bin/sup: line 5: syntax error near unexpected token (' ./bin/sup: line 5:$:.unshift File.join(File.dirname(FILE), *%w[.. lib])'

Running on ruby 1.9.3p194 (2012-04-20 revision 35410) [i486-linux]

That particular line is within code from (or at least, that is the last entry and it is shown in git diff HEAD^ HEAD):

commit 455f28f
Merge: b424243 08ebfc4
Author: Gaute Hope [email protected]
Date: Sun Aug 11 11:54:40 2013 +0200

Sup Crash on startup

joey@warthog:~$ sup
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead.
[2013-07-01 15:56:47 -0600] WARNING: can't find character set by using locale, defaulting to utf-8
[2013-07-01 15:56:47 -0600] No 'gpgme' gem detected. Install it for email encryption, decryption and signatures.

[2013-07-01 15:56:48 -0600] ERROR: oh crap, an exception

We are very sorry. It seems that an error occurred in Sup. Please
accept our sincere apologies. Please submit the contents of
/home/joey/.sup/exception-log.txt and a brief report of the
circumstances to https://github.com/sup-heliotrope/sup/issues so that
we might address this problem. Thank you!

Sincerely,

The Sup Developers

--- NoMethodError from thread: main
undefined method []' for nil:NilClass /var/lib/gems/1.9.1/gems/sup-0.13.2/lib/sup/account.rb:38:ininitialize'
/var/lib/gems/1.9.1/gems/sup-0.13.2/lib/sup/util.rb:577:in new' /var/lib/gems/1.9.1/gems/sup-0.13.2/lib/sup/util.rb:577:ininit'
/var/lib/gems/1.9.1/gems/sup-0.13.2/lib/sup.rb:168:in start' /var/lib/gems/1.9.1/gems/sup-0.13.2/bin/sup:155:inmodule:Redwood'
/var/lib/gems/1.9.1/gems/sup-0.13.2/bin/sup:74:in <top (required)>' /usr/local/bin/sup:23:inload'
/usr/local/bin/sup:23:in `

'

Handle HTML-only mail

Some mail senders (rushed-out in-house services, accessibility-unaware tech startups not using 3rd-party mail services) only send email in HTML format without providing plain-text alternative.

Sup might need to handle this for a better user experience. If so, a few things come to mind:

  • Still prefer plain-text if possible
  • Parse and strip HTML tag soup for indexing
  • Parse and strip HTML tag soup for displaying
    • Is there a good way to display <a>? The href attribute is no doubt important. But how to present it to user?
    • What about <img>? <table>? Shall we implement an HTML render engine? (short answer: probably no.)
  • An HTML parser is needed. In the Ruby world this might imply Nokogiri, which requires libxml and friends as new dependencies.

ncurses textfield issue

Refiled this issue from previous issue #69. Still having ncurses issue when entering anything into the textfield in sup. For instance, when trying global search

--- NoMethodError from thread: main
undefined method `unpost_form' for nil:NilClass
~/tmp/sup/lib/sup/textfield.rb:57:in `deactivate'
~/tmp/sup/lib/sup/buffer.rb:622:in `block in ask'
<internal:prelude>:10:in `synchronize'
~/tmp/sup/lib/sup/buffer.rb:27:in `sync'
~/tmp/sup/lib/sup/buffer.rb:621:in `ask'
~/tmp/sup/lib/sup/util.rb:573:in `method_missing'
~/tmp/sup/lib/sup/modes/scroll_mode.rb:82:in `search_in_buffer'
~/tmp/sup/lib/sup/mode.rb:59:in `handle_input'
~/sup/lib/sup/buffer.rb:274:in `handle_input'
bin/sup:266:in `<module:Redwood>'
bin/sup:74:in `<main>'

brew doctor shows that the ncurses package has been linked and running ncursesw5-config shows the homebrew installed ncurses.

ncursesw5-config --prefix
/usr/local/Cellar/ncurses/5.9

Reinstalling ncursesw-sup gem also did not help. Thanks for the help.

Dependency `ncurses` missing.

I've got an advice that these steps would help me fixup gem install sup fail:

brew install ncurses
brew doctor
brew link ncurses # might require a --force

But, this is what I got:

~ % brew install ncurses
Error: No available formula for ncurses
~ % brew doctor
Your system is ready to brew.

Is there something wrong with ncurse source in brew? So wierd.

Usability issue of account selector

From #65 (comment):

By the way, I question the usability of the horizontal bar as it is implemented now; I have 7+ different alternates, and my terminal is usually too narrow to display them all. A solution would be to make the
selector scrollable, or maybe implement some kind of pulldown selection when selecting the From address.

Personally I'm +1 with this. Looping highlight selection is only good when number of options <= 3. Tab-completion / Fuzzy matching might solve this problem better though, I guess.

Besides there're more usability issues I've found while testing #66:

  • When editing From field with hotkey e, the tab-completion candidates are contacts, not user's accounts.
  • When setting :account_selector: false, user can't even edit From field with hotkey e. It's unclear that this options means "I need a menu-like account selector" or "I use multiple account so allow me to choose".

Looks like a redisgn for account selector is around the corner. Probably around or post 0.14 release.

Batch removing label doesn't work

Just set up sup on my working laptop today.

Steps

  • Import a bunch of mails from a maildir downloaded by offlineimap
  • Launch sup and press ~ to drop into console
  • type in remove_labels('is:inbox', 'Inbox') and press enter key.

Result

Got

NoMethodError: undefined method `save' for #<Redwood::Message:0x007f303031ad50>

Will look into this later today. Removing inbox labels would be the first thing to do for new users. And I just didn't know that sup-sync has an option of --archive. Looks worth fixing for me.

Sup screen won't refresh correctly on small screen size.

In the sup index when the cursor is over a message with a subject that is too long to fit on screen, sup spans the subject to cover two rows.

This is cool but in my terminal (Konsole) moving the cursor in fast succession (e.g. holding down/up keys) does not correctly refreshes the screen resulting in a mess shown in the attached screenshot:

sup

Refreshing the terminal with CTRL-L fixes this but is annoying to have to do this everytime.

Crash on global search with non-ASCII caracters.

Using latest develop branch of sup a global search (F) for any Japanese text (e.g. テスト, 生活) causes sup to crash.

--- Encoding::CompatibilityError from thread: main
incompatible character encodings: UTF-8 and ASCII-8BIT
/home/ryujin/Apps/sup-git/lib/sup/modes/text_mode.rb:49:in `<<'
/home/ryujin/Apps/sup-git/lib/sup/modes/log_mode.rb:38:in `block in <<'
/home/ryujin/Apps/sup-git/lib/sup/modes/log_mode.rb:38:in `each'
/home/ryujin/Apps/sup-git/lib/sup/modes/log_mode.rb:38:in `<<'
/home/ryujin/Apps/sup-git/lib/sup/logger.rb:64:in `block (2 levels) in send_message'
/home/ryujin/Apps/sup-git/lib/sup/logger.rb:63:in `each'
/home/ryujin/Apps/sup-git/lib/sup/logger.rb:63:in `block in send_message'
<internal:prelude>:10:in `synchronize'
/home/ryujin/Apps/sup-git/lib/sup/logger.rb:62:in `send_message'
/home/ryujin/Apps/sup-git/lib/sup/logger.rb:40:in `block (2 levels) in <class:Logger>'
/home/ryujin/Apps/sup-git/lib/sup/logger.rb:74:in `block (2 levels) in <module:LogsStuff>'
/home/ryujin/Apps/sup-git/lib/sup/index.rb:451:in `parse_query'
/home/ryujin/Apps/sup-git/lib/sup/util.rb:637:in `method_missing'
/home/ryujin/Apps/sup-git/lib/sup/modes/search_results_mode.rb:43:in `spawn_from_query'
bin/sup:300:in `<module:Redwood>'
bin/sup:74:in `<main>'

The following patch seems to fix the issue but I am not sure if it is the correct way to do this. Specially if we want to keep ruby1.8 compatibility:

diff --git a/lib/sup/modes/text_mode.rb b/lib/sup/modes/text_mode.rb
index 39706d3..3a92d8c 100644
--- a/lib/sup/modes/text_mode.rb
+++ b/lib/sup/modes/text_mode.rb
@@ -46,7 +46,7 @@ class TextMode < ScrollMode

   def << line
     @lines = [0] if @text.empty?
-    @text << line
+    @text << line.force_encoding("UTF-8")
     @lines << @text.length
     if buffer
       ensure_mode_validity

Release 0.13.0.0

I guess it's time.

And, we could use a 4-digit version scheme for 0.13. The leading part 0.13 should stay the same. The 2 trailing digits could work like semver's minor and patch version incase we backport user-visible features to 0.13.

What do you think? Are there any more tasks should be done before releasing?

installation error re: uuid.h during xapian build

sudo gem1.9 install sup
...
configure: error: uuid.h found, but uuid_create() not found.  You probably wants to install libuuid from util-linux-ng or e2fsprogs (you may need to install the uuid-dev, libuuid-devel or e2fsprogs-devel package)
rake aborted!
...
Gem files will remain installed in /usr/local/share/gems1.9/gems/xapian-full-alaveteli-1.2.9.5 for inspection.
Results logged to /usr/local/share/gems1.9/gems/xapian-full-alaveteli-1.2.9.5/./gem_make.out

I'm on
Amazon Linux AMI release 2013.03

I've installed e2fsprogs-devel uuid-devel xapian-core and xapian-bindings system packages but I still get this same error message.

Respect SIGWINCH

Although I almost never resize the terminal running sup, it'd be better to redraw after resize happens since every good ncurses application does this.

Missing consideration of Gmail i18n in wiki

~/.offlineimaprc example has a hardcode [Gmail]/All Mail. But I just found that offlineimap --info verbose like [Gmail]/&g0l6Pw- (disabled) instead of the name of [Gmail]/All Mail. That why I always got these output:

~ % offlineimap
OfflineIMAP 6.5.4
  Licensed under the GNU GPL v2+ (v2 or any later version)
Account sync personal:
 *** Processing account personal
 Establishing connection to imap.gmail.com:993
 *** Finished account 'personal' in 0:03

After changing display language in gmail setting from 中文简体 to English(US), offlineimap worked.

I think wiki shall remind user that this filter must adjust to user's gmail language setting.

configuration option for "snippet length"

This is a feature request for a configuration option for "snippet length." It would be nice to have more than 80 chars for using sup fullscreen on a wide monitor.

Migrate to Psych

Umbrella issue for migrating to Psych (available in both 1.8 and 1.9) as opposed to Syck which is on the way out. Syck and Psych might create incompatible configuation/YAML files so existing files either need to be migrated on the fly (which should not be a problem untill Syck is dropped) or some documented script.

Psych needs to be required conditionally for Ruby <1.9.2.

Issues #16 and #3 are preliminary hacks to fix these issues.

colors: message body is always in terminal default colors

Hi!

I'm writing a color scheme for sup, based on vim's wombat http://dengmao.wordpress.com/2007/01/22/vim-color-scheme-wombat/ and I noticed that certain widgets, like the system log and message bodies always use the console default colors.

Instead, these should use the colors for normal text.

Attached is the color scheme so far. It is supposed to be used with a 256 color terminal, I'm using rxvt-unicode-256color.

I would like to attach the file, but github doesn't let me. So here it is inline. Sorry for that.


---

# ======================================
# globals

:status:
  :fg: 230
  :bg: 238
  :attrs:
  - bold

:twiddle:
  :fg: 241
  :bg: 232

:text:
  :highlight: default_highlight
  :fg: 252
  :bg: 234

# convenience
:default_highlight:
  :fg: 252
  :bg: 239

# ======================================
# thread-index-mode

:date:
  :highlight: default_highlight
  :fg: 252
  :bg: 234

:to_me:
  :highlight: to_me_highlight
  :fg: 113
  :bg: 234
:to_me_highlight:
  :fg: 113
  :bg: 239

:size_widget:
  :highlight: default_highlight
  :fg: 252
  :bg: 234

:index_old:
  :highlight: default_highlight
  :fg: 252
  :bg: 234

:index_new:
  :highlight: index_new_highlight
  :fg: 11
  :bg: 234
:index_new_highlight:
  :fg: 11
  :bg: 239

:snippet:
  :highlight: snippet_highlight
  :fg: 113
  :bg: 234
:snippet_highlight:
  :fg: 113
  :bg: 239

:label:
  :highlight: label_highlight
  :fg: 111
  :bg: 234
:label_highlight:
  :fg: 111
  :bg: 239

:tagged:
  :highlight: tagged_highlight
  :fg: 11
  :bg: 234
  :attrs:
  - bold
:tagged_highlight:
  :fg: 11
  :bg: 239
  :attrs:
  - bold

# the one-character widget '*'
:starred:
  :highlight: starred_highlight
  :fg: 11
  :bg: 234
  :attrs:
  - bold
:starred_highlight:
  :fg: 11
  :bg: 239
  :attrs:
  - bold

# subject of a starred message
:index_starred:
  :highlight: index_starred_highlight
  :fg: 11
  :bg: 234
  :attrs:
  - bold
:index_starred_highlight:
  :fg: 11
  :bg: 239
  :attrs:
  - bold

# ======================================
# thread-view-mode

:message_patina: # message header
  :highlight: default_highlight
  :fg: 234
  :bg: c030

:alternate_patina: # message header
  :highlight: default_highlight
  :fg: 234
  :bg: 110

:quote:
  :highlight: quote_highlight
  :fg: 113
  :bg: 234
:quote_highlight:
  :fg: 113
  :bg: 239

:quote_patina:
  :highlight: quote_patina_highlight
  :fg: 113
  :bg: 234
:quote_patina_highlight:
  :fg: 113
  :bg: 239

:sig:
  :highlight: sig_highlight
  :fg: 113
  :bg: 234
:sig_highlight:
  :fg: 113
  :bg: 239

:sig_patina:
  :highlight: sig_patina_highlight
  :fg: 113
  :bg: 234
:sig_patina_highlight:
  :fg: 113
  :bg: 239

:attachment:
  :highlight: attachment_highlight
  :fg: 111
  :bg: 234
:attachment_highlight:
  :fg: 111
  :bg: 239


:cryptosig_valid:
  :highlight: cryptosig_valid_highlight
  :fg: 11
  :bg: 234
:cryptosig_valid_highlight:
  :fg: 11
  :bg: 239

:cryptosig_unknown:
  :highlight: cryptosig_unknown_highlight
  :fg: 113
  :bg: 234
:cryptosig_unknown_highlight:
  :fg: 113
  :bg: 239

:cryptosig_invalid:
  :fg: yellow
  :bg: red
  :attrs:
  - bold

# ======================================
# label list

:labellist_new:
  :fg: black
  :bg: red
  :attrs:
  - bold

:labellist_old:
  :highlight: default_highlight
  :fg: 252
  :bg: 234

:labellist_new:
  :highlight: labellist_new_highlight
  :fg: 11
  :bg: 234
:labellist_new_highlight:
  :fg: 11
  :bg: 239

# ======================================
# misc

:regular_buf:
  :highlight: default_highlight
  :fg: 252
  :bg: 234

:system_buf:
  :highlight: default_highlight
  :fg: 252
  :bg: 234

:modified_buffer:
  :highlight: default_highlight
  :fg: 252
  :bg: 234

:search_highlight:
  :highlight: search_highlight_highlight
  :fg: black
  :bg: 11
:search_highlight_highlight:
  :fg: black
  :bg: 11

# ======================================
# reply-mode

:horizontal_selector_selected:
  :highlight: horizontal_selector_selected_highlight
  :fg: 11
  :bg: 234
  :attrs:
  - bold
:horizontal_selector_selected_highlight:
  :fg: 11
  :bg: 239
  :attrs:
  - bold

:horizontal_selector_unselected:
  :highlight: horizontal_selector_unselected_highlight
  :fg: 252
  :bg: 234
:horizontal_selector_unselected_highlight:
  :fg: 252
  :bg: 239

# ======================================
# completion-mode

:completion_character:
  :fg: 252
  :bg: 53

# ======================================
# TODO

:draft_notification:
  :fg: black
  :bg: red
  :attrs:
  - bold

:missing_message:
  :fg: black
  :bg: red

:starred_patina:
  :fg: black
  :bg: red
  :attrs:
  - bold

:alternate_starred_patina:
  :fg: black
  :bg: red
  :attrs:
  - bold

:generic_notice_patina:
  :fg: cyan
  :bg: 234

:option:
  :fg: 252
  :bg: 234

:index_draft:
  :fg: red
  :bg: 234
  :attrs:
  - bold

sup-config YAMLing email & name as Highling::String on Ubuntu

When testing ncurses-ruby on Ubuntu w/ Ruby 1.8.7-p352 I found that ~/.sup/config.yaml looks like:

# excerpt
:accounts:
  :default:
    :name: !str:HighLine::String Whyme Lyu
    :email: !str:HighLine::String <email here>

and running sup later would produce a backtrace:

[Tue Apr 30 03:08:58 +0800 2013] No 'gpgme' gem detected. Install it for email encryption, decryption and signatures.
./lib/sup/util.rb:557:in `method_missing': no Redwood::HookManager instance defined in method call to run! (RuntimeError)
        from bin/sup:372

which doesn't explain the problem at all since the actual exception was already caught and this new exception comes from the corresponding rescue block.

Meanwhile on Arch Ruby 1.8.7-p371, ~/.sup/config looks like:

# excerpt
:accounts:
  :default:
    :name: Whyme Lyu

and everything just goes smoothly.

Documentation <-> Wiki: Sync from wiki and keep everything there

After a short discussion on #sup with @5long; it would be nice to keep all the documentation in the wiki in markdown format and merge a few selected pages, FAQ, UserGuide, etc. into the repository at release time. Then use a similar script like npm (https://github.com/isaacs/npm/blob/master/scripts/doc-build.sh) to build the documentation for shipping with the release.

At this point we got some documentation both in the repo and in the wiki, its not a big deal now since the next release is mostly bugfixes, but later changes will probably result in things getting out of sync and hard to maintain.

Global search does not work with Japanese (CJK) text without explicit subject: or body: query.

I have emails in English, Spanish and Japanese indexed by sup. If I do a global search (F) and enter any English or Spanish string I get all matching messages with those strings in the subject or body. The issue is that Japanese strings do not match anything unless I explicitly add "subject:" or "body:" to the query.

For example the string "テスト” matches nothing even tough I do have messages with that string in the subject. But the string "subject:テスト" does correctly matches those messages.

I do have the latest develop branch that has CJK tokenization enabled.

Windows support and Mac installer

As an enhancement: Windows support would be nice. A Mac installer was also requested by some users, but I am not sure if it is a good idea since you can easily do 'gem' stuff from mac already.

RMail has invalid byte sequence

/home/gaute/.gem/ruby/2.0.0/gems/rmail-1.0.0/lib/rmail/address.rb:694: invalid multibyte escape: /\A[\200-\377\w!$%&\'*+\/=?^_\`{\}|~#-]+/m
/home/gaute/.gem/ruby/2.0.0/gems/rmail-1.0.0/lib/rmail.rb:41:in `<top (required)>'
/home/gaute/dev/ruby/sup/lib/sup.rb:8:in `<top (required)>'
/home/gaute/dev/ruby/sup/sup-version.rb:9:in `<top (required)>'
/home/gaute/dev/ruby/sup/Rakefile:49:in `require_relative'
/home/gaute/dev/ruby/sup/Rakefile:49:in `<top (required)>'

Crash while resizing terminal window.

I run sup inside TMUX pane and I was simply resizing the pane when I got a crash:

/home/ryujin/Apps/sup-git/lib/sup/util.rb:122: warning: already initialized constant EXTRACT_FIELD_NAME_RE
[2013-06-28 12:13:53 +0900] No 'gpgme' gem detected. Install it for email encryption, decryption and signatures.
[2013-06-28 12:17:51 +0900] ERROR: oh crap, an exception
----------------------------------------------------------------
We are very sorry. It seems that an error occurred in Sup. Please
accept our sincere apologies. Please submit the contents of
/home/ryujin/.sup/exception-log.txt and a brief report of the
circumstances to https://github.com/sup-heliotrope/sup/issues so that 
we might address this problem. Thank you!

Sincerely,
The Sup Developers
----------------------------------------------------------------
--- ThreadError from thread: main
deadlock; recursive locking
<internal:prelude>:8:in `lock'
<internal:prelude>:8:in `synchronize'
/home/ryujin/Apps/sup-git/lib/sup/buffer.rb:218:in `sigwinch_happened!'
(eval):1:in `sigwinch_happened!'
bin/sup:161:in `block in <module:Redwood>'
<internal:prelude>:8:in `call'
<internal:prelude>:8:in `synchronize'
/home/ryujin/Apps/sup-git/lib/sup/buffer.rb:218:in `sigwinch_happened!'
(eval):1:in `sigwinch_happened!'
bin/sup:161:in `block in <module:Redwood>'
/var/lib/gems/1.9.1/gems/ncursesw-sup-1.3.1.3/lib/ncurses_sugar.rb:70:in `call'
/var/lib/gems/1.9.1/gems/ncursesw-sup-1.3.1.3/lib/ncurses_sugar.rb:70:in `method_missing'
/home/ryujin/Apps/sup-git/lib/sup/buffer.rb:126:in `write'
/home/ryujin/Apps/sup-git/lib/sup/modes/scroll_mode.rb:238:in `block in draw_line_from_array'
/home/ryujin/Apps/sup-git/lib/sup/modes/scroll_mode.rb:224:in `each'
/home/ryujin/Apps/sup-git/lib/sup/modes/scroll_mode.rb:224:in `each_with_index'
/home/ryujin/Apps/sup-git/lib/sup/modes/scroll_mode.rb:224:in `draw_line_from_array'
/home/ryujin/Apps/sup-git/lib/sup/modes/scroll_mode.rb:199:in `draw_line'
/home/ryujin/Apps/sup-git/lib/sup/modes/line_cursor_mode.rb:52:in `draw_line'
/home/ryujin/Apps/sup-git/lib/sup/modes/scroll_mode.rb:46:in `block in draw'
/home/ryujin/Apps/sup-git/lib/sup/modes/scroll_mode.rb:46:in `each'
/home/ryujin/Apps/sup-git/lib/sup/modes/scroll_mode.rb:46:in `draw'
/home/ryujin/Apps/sup-git/lib/sup/modes/line_cursor_mode.rb:37:in `draw'
/home/ryujin/Apps/sup-git/lib/sup/buffer.rb:116:in `draw'
/home/ryujin/Apps/sup-git/lib/sup/buffer.rb:336:in `draw_screen'
/home/ryujin/Apps/sup-git/lib/sup/buffer.rb:302:in `block in completely_redraw_screen'
<internal:prelude>:10:in `synchronize'
/home/ryujin/Apps/sup-git/lib/sup/buffer.rb:27:in `sync'
/home/ryujin/Apps/sup-git/lib/sup/buffer.rb:299:in `completely_redraw_screen'
(eval):1:in `completely_redraw_screen'
bin/sup:245:in `<module:Redwood>'
bin/sup:74:in `<main>'

Configurable block quote pattern(s) ?

The current block quote pattern is hardcoded and only matches the english outlook verison. Would a configurable list of block quote regexps be appreciated, and if so, any ideas on how to configure this? Should this be configured sup-wide, or on a per account basis?

Mac OS X 10.8.3 build issue

after installing and relinking the homebrew ncurses following the previous instructions,

brew install ncurses
brew doctor
brew link --force ncurses

i run gem i sup, which succeeds. however, on execution, there seems to be a load error in the ncursesw library

~/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': dlopen(/Users/stbose/.rvm/gems/ruby-1.9.3-p392/gems/ncursesw-sup-1.3.1.1/lib/ncursesw_bin.bundle, 9): Symbol not found: _TYPE_ALNUM (LoadError)

I'd appreciate any insight that you can give.

unexpected encoding ASCII-8BIT

Just tried to install (via gem) and run it via rbenv under ruby
1.9.3-p327 and 1.9.3-p392. With both I have the problem that characters
like Umlauts are not show correctly. For example: "ä" becomes "\xe4".

When setting $SUP_LOG_LEVEL to debug I get several of those lines:

couldn't transcode text from ASCII (ASCII) to UTF8 ("<20130523193529.GB30"...): got String::CheckError (unexpected encoding ASCII-8BIT)

I'm almost sure this is related to my encoding problems. Any of those
lines seem to be referencing to header lines.

Hope this helps. I was long enough without sup so I can wait for the
compatibility with ruby 2.0.0 so don't bother if this will be gone by then
anyway. Just filed this issue bacuase I was advised so on sup-talk. Of course
I'd prefer to sup again sooner. ;)

Thread unsafety with winch

Using ruby 2.0, this bug happens a lot:

We are very sorry. It seems that an error occurred in Sup. Please
accept our sincere apologies. Please submit the contents of
/home/rakoo/.sup/exception-log.txt and a brief report of the
circumstances to https://github.com/sup-heliotrope/sup/issues so that 
we might address this problem. Thank you!

Sincerely,
The Sup Developers
----------------------------------------------------------------
--- ThreadError from thread: main
can't be called from trap context
/home/rakoo/.gem/ruby/2.0.0/gems/sup-0.13.0/lib/sup/buffer.rb:218:in `synchronize'
/home/rakoo/.gem/ruby/2.0.0/gems/sup-0.13.0/lib/sup/buffer.rb:218:in `sigwinch_happened!'
/home/rakoo/.gem/ruby/2.0.0/gems/sup-0.13.0/lib/sup/util.rb:573:in `method_missing'
/home/rakoo/.gem/ruby/2.0.0/gems/sup-0.13.0/bin/sup:163:in `block in <module:Redwood>'
/home/rakoo/.gem/ruby/2.0.0/gems/sup-0.13.0/lib/sup/buffer.rb:36:in `call'
/home/rakoo/.gem/ruby/2.0.0/gems/sup-0.13.0/lib/sup/buffer.rb:36:in `select'
/home/rakoo/.gem/ruby/2.0.0/gems/sup-0.13.0/lib/sup/buffer.rb:36:in `nonblocking_getch'
/home/rakoo/.gem/ruby/2.0.0/gems/sup-0.13.0/bin/sup:237:in `<module:Redwood>'
/home/rakoo/.gem/ruby/2.0.0/gems/sup-0.13.0/bin/sup:72:in `<top (required)>'
/home/rakoo/.gem/ruby/1.9.1/bin/sup:23:in `load'
/home/rakoo/.gem/ruby/1.9.1/bin/sup:23:in `<main>'

A quick googling seems to say that trap is not thread-safe, so we cannot do thread-related stuff inside a trap: see bug 7917.

I've been playing recently with celluloid, a framework for using actor logic (such as in Erlang) inside ruby; this makes all thread-related stuff put in the background and allows a dev to use standard ruby objects without ever bothering with concurrency. Maybe a faraway goal for sup ?

Crash when setting From email address when returning from edit new message

sup v0.13.0

Start new mail, edit in vi, save and exit editor, and sup crasehs on me with:

----------------------------------------------------------------
We are very sorry. It seems that an error occurred in Sup. Please
accept our sincere apologies. Please submit the contents of
/home/ico/.sup/exception-log.txt and a brief report of the
circumstances to https://github.com/sup-heliotrope/sup/issues so that 
we might address this problem. Thank you!

Sincerely,
The Sup Developers
----------------------------------------------------------------
a--- TypeError from thread: main
no implicit conversion from nil to integer
/usr/lib/ruby/gems/1.8/gems/sup-0.13.0/lib/sup/horizontal-selector.rb:18:in `[]'
/usr/lib/ruby/gems/1.8/gems/sup-0.13.0/lib/sup/horizontal-selector.rb:18:in `val'
/usr/lib/ruby/gems/1.8/gems/sup-0.13.0/lib/sup/modes/edit-message-mode.rb:383:in `update'
/usr/lib/ruby/gems/1.8/gems/sup-0.13.0/lib/sup/modes/edit-message-mode.rb:245:in `edit_message'
/usr/lib/ruby/gems/1.8/gems/sup-0.13.0/lib/sup/mode.rb:59:in `send'
/usr/lib/ruby/gems/1.8/gems/sup-0.13.0/lib/sup/mode.rb:59:in `handle_input'
/usr/lib/ruby/gems/1.8/gems/sup-0.13.0/lib/sup/buffer.rb:274:in `handle_input'
/usr/lib/ruby/gems/1.8/gems/sup-0.13.0/bin/sup:264
/usr/bin/sup:19:in `load'
/usr/bin/sup:19
You have mail in /home/ico/Maildir

Error when starting sup after running sup-config

If I change any of the first 5 options in sup-config, I won't be able to run neither sup nor sup-config.
The errors are:
[bitraten@perseus ~]$ sup-sync /usr/lib/ruby/1.8/yaml.rb:133:in transfer': invalid subclass (TypeError)
from /usr/lib/ruby/1.8/yaml.rb:133:in node_import' from /usr/lib/ruby/1.8/yaml.rb:133:in load'
from /usr/lib/ruby/1.8/yaml.rb:133:in load' from /usr/lib/ruby/1.8/yaml.rb:144:in load_file'
from /usr/lib/ruby/1.8/yaml.rb:143:in open' from /usr/lib/ruby/1.8/yaml.rb:143:in load_file'
from /home/bitraten/.gem/ruby/1.8/gems/sup-0.12.1/lib/sup.rb:136:in load_yaml_obj' from /home/bitraten/.gem/ruby/1.8/gems/sup-0.12.1/lib/sup.rb:266:in load_config'
from /home/bitraten/.gem/ruby/1.8/gems/sup-0.12.1/lib/sup.rb:157:in start' from /home/bitraten/.gem/ruby/1.8/gems/sup-0.12.1/bin/sup-sync:80
and
[bitraten@perseus ~]$ sup /home/bitraten/.gem/ruby/1.8/gems/sup-0.12.1/lib/sup/util.rb:601:in method_missing': no Redwood::HookManager instance defined in method call to run! (RuntimeError)
from /home/bitraten/.gem/ruby/1.8/gems/sup-0.12.1/bin/sup:370`

Versions:

  • ruby 1.8.7
  • sup v0.12.1

Release 0.14

We should try to get sup 0.14 out soon with all the new stuff in 'develop', what we need to do:

  • merge the remaining pull requests that are nearly ready (#103, #89, #92)
  • do some migration testing (syck / psych)

this release should only support ruby >1.9.3. Please add other 'critical' requirements, it wouldn't be very nice if this release crashed things totally. Downgrading to 0.13* should be possible.

rake gem fails on ruby 1.9.3 (possibly related to version of bundler) because of syck

rake gem fails with:

** Execute pkg/sup-999.gem
cd pkg/sup-999
rake aborted!
undefined method `write' for #<Syck::Emitter:0x00000001f30b00>
/home/gaute/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/emitter.rb:20:in `end_document'

more error: https://gist.github.com/gauteh/5488890

adding require 'psych' in the Rakefile fixes the issue for me, but probably breaks 1.8 (and 1.9.1). Conditional require... ?

This should only affect people who build the gem, perhaps its not necessary to support that on 1.8? Especially since 1.8 being deprecated in a month or so anyway..

Regards, gaute

option for "always use async"

It would be great to have a configuration option to automatically use async mode and the associated hook when composing and replying.

List all mail

Could previously just do 'F' and search blank. Now only works with search hacks like before:tomorrow or label: or similar.. great for listing recent all mail.

Can no longer assign CJK labels to emails.

With the latest changes I cannot add CJK labels to my emails. Adding a label like テスト to the email results in garbage being displayed on terminal. See screenshot
sup

Allow thread index view to sort oldest first

This could be valuable when there's quite a few mails in inbox, and the user would want to view oldest threads first.

A rough cut is #79 (see the comments for why it didn't get merged), which is a patch from sup-talk circa 2009.

Issues installing ncursesw-sup on Mac OS X 10.8.3

I installed ncurses 5.9 manually as I was getting an error while trying to install ncursesw-sup. After installing ncurses 5.9 I am now getting build errors like the below.

I miss sup and would like to get back to using it again. Will I be able to run it on my Mac?

make
compiling form_wrap.c
form_wrap.c:624:11: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
int n = rbncurs_array_length(arg3);
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
form_wrap.c:701:40: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
return INT2NUM(set_field_fore(field, NUM2ULONG(attr)));
~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~
/usr/local/Cellar/ruby/2.0.0-p0/include/ruby-2.0.0/ruby/ruby.h:601:22: note: expanded from macro 'NUM2ULONG'

define NUM2ULONG(x) rb_num2ulong_inline(x)

                 ^~~~~~~~~~~~~~~~~~~~~~

/usr/local/Cellar/ruby/2.0.0-p0/include/ruby-2.0.0/ruby/ruby.h:1167:35: note: expanded from macro 'INT2NUM'

define INT2NUM(v) INT2FIX((int)(v))

                              ^

/usr/local/Cellar/ruby/2.0.0-p0/include/ruby-2.0.0/ruby/ruby.h:241:45: note: expanded from macro 'INT2FIX'

define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))

Unable to add sources

I am using sup-config to add sources and after adding them I get the following errors:

/usr/lib/ruby/vendor_ruby/sup/account.rb:38:in `initialize': undefined method `[]' for nil:NilClass (NoMethodError)
    from /usr/lib/ruby/vendor_ruby/sup/util.rb:576:in `new'
    from /usr/lib/ruby/vendor_ruby/sup/util.rb:576:in `init'
from /usr/lib/ruby/vendor_ruby/sup.rb:166:in `start'
    from /usr/bin/sup-add:78:in `<main>'

When I try to run sup-sync I get the same error (except the call originates in sup-sync on line 80 instead of sup-add on line 78.

This is using the 0.12..1+git20120407.aaa852f version in the Ubuntu 12.10 (quantal) repo.

So, I tried to use the one from "gem install sup" instead and then I get this error as soon as I run sup-config and it immediately exits:

/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': superclass mismatch for class Iconv (TypeError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /var/lib/gems/1.9.1/gems/sup-0.12.1/lib/sup/rfc2047.rb:19:in `<top (required)>'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /var/lib/gems/1.9.1/gems/sup-0.12.1/lib/sup/source.rb:1:in `<top (required)>'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /var/lib/gems/1.9.1/gems/sup-0.12.1/lib/sup.rb:351:in `<top (required)>'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /var/lib/gems/1.9.1/gems/sup-0.12.1/bin/sup-config:7:in `<top (required)>'
    from /usr/local/bin/sup-config:23:in `load'
    from /usr/local/bin/sup-config:23:in `<main>'

The version of the iconv gem I have is 1.0.3.

Hooks and theming system

As was mentioned in #101 by @5long we should get a better setup for distributing hooks and themes, either submitted by users or a managed list of semi-supported hooks + themes.

Currently we are using the wiki, but that doesn't scale very well. Perhaps a git based repository with a web ui? We keep a official repository and users can fork their own.. and we keep some sort of main list. Is this overkill?

Configuration setups could also be put in there.

Sent Messages Truncated in INBOX

When I reply to a message and the thread is still in my inbox the message I just sent in that thread is truncated to a line or two and then this error is shown:

          ***********************************************************************
           An error occurred while loading this message.
          ***********************************************************************

If I archive the thread the message displays correctly if I go view it there.

Allow custom thread index formating

It would be nice to have control over how threads are displayed in the index mode. For example, I'd like to have the flags and subject display immediately after the names on a row by row basis. Themes, like those available in alot (for notmuch) would be great and allow these kinds of customizations.

Crash doing global find

Another crash, when doing a global find () :

[Fri May 24 12:36:30 +0200 2013] ERROR: oh crap, an exception
----------------------------------------------------------------
We are very sorry. It seems that an error occurred in Sup. Please
accept our sincere apologies. Please submit the contents of
/home/ico/.sup/exception-log.txt and a brief report of the
circumstances to https://github.com/sup-heliotrope/sup/issues so that 
we might address this problem. Thank you!

Sincerely,
The Sup Developers
----------------------------------------------------------------
--- RuntimeError from thread: load threads for thread-index-mode

./bin/../lib/sup/index.rb:557:in `find_docid'
./bin/../lib/sup/index.rb:562:in `find_doc'
./bin/../lib/sup/index.rb:572:in `get_entry'
./bin/../lib/sup/index.rb:197:in `build_message'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
./bin/../lib/sup/index.rb:581:in `synchronize'
./bin/../lib/sup/index.rb:197:in `build_message'
./bin/../lib/sup/index.rb:191:in `each_message_in_thread_for'
./bin/../lib/sup/thread.rb:349:in `call'
./bin/../lib/sup/thread.rb:349:in `load_thread_for_message'
./bin/../lib/sup/index.rb:191:in `each_message_in_thread_for'
./bin/../lib/sup/index.rb:191:in `each'
./bin/../lib/sup/index.rb:191:in `each_message_in_thread_for'
./bin/../lib/sup/thread.rb:347:in `load_thread_for_message'
./bin/../lib/sup/thread.rb:339:in `load_n_threads'
./bin/../lib/sup/index.rb:152:in `each_id_by_date'
./bin/../lib/sup/index.rb:249:in `each_id'
./bin/../lib/sup/index.rb:249:in `each'
./bin/../lib/sup/index.rb:249:in `each_id'
./bin/../lib/sup/index.rb:152:in `each_id_by_date'
./bin/../lib/sup/thread.rb:334:in `load_n_threads'
./bin/../lib/sup/modes/thread_index_mode.rb:654:in `__unprotected_load_n_threads'
(eval):12:in `load_n_threads'
./bin/../lib/sup/modes/thread_index_mode.rb:638:in `load_n_threads_background'
./bin/../lib/sup.rb:82:in `reporting_thread'
./bin/../lib/sup.rb:80:in `initialize'
./bin/../lib/sup.rb:80:in `new'
./bin/../lib/sup.rb:80:in `reporting_thread'
./bin/../lib/sup/modes/thread_index_mode.rb:637:in `load_n_threads_background'
./bin/../lib/sup/modes/thread_index_mode.rb:708:in `__unprotected_load_threads'
(eval):12:in `load_threads'
./bin/../lib/sup/modes/search_results_mode.rb:48:in `spawn_from_query'
bin/sup:304

This is the assert which fails:

    fail unless docids.size <= 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.