create reader_data_t.interruptible flag and infrastructure to make it work.
make the `read` builtin respect ctrl-C
reader_interrupted() should only be called on the main thread. fixes #537
fix comments on #516. Split `reader_interrupted` into a `reader_interrupted` and a `reader_reading_interrupted`
move work out of interrupt handler (which is safer as well)
rename reader_data_t.interruptible to exit_on_interrupt
tweak reader interrupt behavior
implement reader_cancel_thread using __thread thread-local storage
make threadlocal use conditional on configure check. NB: This revision mixes GPLv2-only and GPLv3+ code so should be considered proof of concept.
extra comments
replace compiler-supported TLS with pthread_get/setspecific; remove GPLv3 code from two commits ago
make the casting magic standards compliant and avoid compiler warnings; add error check
Formatting
rename reader_cancel_thread to reader_thread_job_is_stale, update comments
optimize 'alias', fixing bug #486. Also some minor optimizations in 'type'
merge branch 'bug-537' and branch 'bug-read-ctrlC'. This should fix both #537 and #516
remove __warn_unused attribute from exec_subshell
Add an icon to fish.app
Remove some debugging code inadverently left in __fish_complete_cd.fish
Make io_data_t::fd const

In exec(), pipe_{write,read} no longer get reused.