Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

When I try something like

php -i | less

Less is not responding to hotkeys, but prints them like pressing "q" results in statusline

:q

PageDown

:^[[6~

Pressing ENTER like "executes" the keycode and less perfoems the action.

Piping trivial small stuff work however...

OS: Fedora 14

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

php -i is doing something weird with stdin. Try this:

php -i </dev/null | less
share|improve this answer
    
Great suggestion, thanks. –  SnakeSurgeon Mar 15 '11 at 6:32
    
Actually, it's less that does the "something weird". It changes to non-canonical mode input processing. Of course php may well be doing something as well, but this is simply a specific case of the more general don't have two programs simultaneously interacting with the terminal that employ different terminal input modes and expect things to work. –  JdeBP Mar 17 '11 at 20:29
    
@JdeBP: less may very well be doing something weird, but this is from strace php -i without less: ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 –  Dennis Williamson Mar 17 '11 at 21:00
    
Setting canonical mode input processing (icanon) is not "something weird". Canonical mode is the norm. Hence its name. –  JdeBP Mar 18 '11 at 13:44
1  
@JdeBP: Well, I don't know what's hidden behind the ... and perhaps the clue lies elsewhere. But why is php -i opening stdin at all? It does this same odd behavior with more (which is not a symlink or alias on my system), but, interestingly, not pg or (inconsistently) most. PHP also does this with php -r 'for ($i = 1; $i <= 100; $i++) { print "$i\n"; }' | less. AWK, Perl, Python, etc., don't exhibit this weirdness. Conclusion: PHP is broken. –  Dennis Williamson Mar 18 '11 at 14:42
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.