Code

ncmpc.git
15 years agoconfigure.ac: disable color terminal support with --enable-mini
Max Kellermann [Fri, 5 Dec 2008 08:09:34 +0000 (09:09 +0100)]
configure.ac: disable color terminal support with --enable-mini

15 years agoconfigure.ac: disable the artist screen with --enable-mini
Max Kellermann [Fri, 5 Dec 2008 07:59:45 +0000 (08:59 +0100)]
configure.ac: disable the artist screen with --enable-mini

15 years agom4: removed unused scripts
Max Kellermann [Fri, 5 Dec 2008 07:40:53 +0000 (08:40 +0100)]
m4: removed unused scripts

Some of those have become obsolete since we require a C99 build
environment.  Others have been obsoleted by using more of GLib.

15 years agoadded .gitignore
Max Kellermann [Fri, 5 Dec 2008 07:32:18 +0000 (08:32 +0100)]
added .gitignore

15 years agopo: added Hungarian translation
László Áshin [Thu, 4 Dec 2008 21:48:00 +0000 (22:48 +0100)]
po: added Hungarian translation

15 years agoscreen: fixed "screen too small" typo
Max Kellermann [Thu, 4 Dec 2008 21:43:18 +0000 (22:43 +0100)]
screen: fixed "screen too small" typo

The "too" had only one 'o'.  Remove the newline character at the end
to simplify translation.

15 years agolyrics: include the lyrics plugins in the dist tarball
Max Kellermann [Thu, 4 Dec 2008 13:57:52 +0000 (14:57 +0100)]
lyrics: include the lyrics plugins in the dist tarball

Add the lyrics scripts to $(EXTRA_DIST).

15 years agopo: updated Slovak translation
Jozef Riha [Thu, 4 Dec 2008 08:14:04 +0000 (09:14 +0100)]
po: updated Slovak translation

15 years agopo: updated Galician translation
Johám-Luís Miguéns Vila [Wed, 3 Dec 2008 10:48:12 +0000 (11:48 +0100)]
po: updated Galician translation

15 years agopo: updated Spanish translation
Johám-Luís Miguéns Vila [Wed, 3 Dec 2008 10:47:13 +0000 (11:47 +0100)]
po: updated Spanish translation

15 years agopo: regenerated ncmpc.pot
Max Kellermann [Wed, 3 Dec 2008 09:11:09 +0000 (10:11 +0100)]
po: regenerated ncmpc.pot

Only line numbers changed this time.

15 years agopo: updated German translation
Max Kellermann [Tue, 2 Dec 2008 20:11:15 +0000 (21:11 +0100)]
po: updated German translation

Added missing translation and removed "fuzzy" tags.

15 years agom4: imported progtest.m4 from gettext
Max Kellermann [Tue, 2 Dec 2008 19:28:10 +0000 (20:28 +0100)]
m4: imported progtest.m4 from gettext

po.m4 uses the macro AM_PATH_PROG_WITH_TEST which is provided by
progtest.m4.

15 years agopo: fixed C format error in the French translation
Max Kellermann [Tue, 2 Dec 2008 18:58:25 +0000 (19:58 +0100)]
po: fixed C format error in the French translation

15 years agoscreen_play: fix scrolling in auto-center mode
Max Kellermann [Mon, 1 Dec 2008 16:48:13 +0000 (17:48 +0100)]
screen_play: fix scrolling in auto-center mode

Commit cfad0fdf enabled horizontal scrolling, but broke auto-center
mode: regardless of whether the current song has changed, it
re-centered the list.  Moved the options.scroll check to another "if"
branch.

15 years agoscreen_help: added the artist screen hotkey
Max Kellermann [Sun, 30 Nov 2008 19:53:06 +0000 (20:53 +0100)]
screen_help: added the artist screen hotkey

15 years agoscreen_help: added CMD_VIEW
Max Kellermann [Sun, 30 Nov 2008 19:49:35 +0000 (20:49 +0100)]
screen_help: added CMD_VIEW

15 years agoscreen: don't show disabled help screen in screen list
Max Kellermann [Sun, 30 Nov 2008 19:41:01 +0000 (20:41 +0100)]
screen: don't show disabled help screen in screen list

When the help screen was disabled at compile time, it was showed in
the screen list anyway.

15 years agoscreen_search: use filelist_new() instead of g_malloc0()
Max Kellermann [Sun, 30 Nov 2008 16:02:19 +0000 (17:02 +0100)]
screen_search: use filelist_new() instead of g_malloc0()

Using the advanced search led to a segmentation fault, because with
g_malloc0(), the filelist's "entries" array was not allocated.  Use
the "official" filelist constructor instead.

16 years agoncmpc version 0.12~beta2 v0.12_beta2
Max Kellermann [Fri, 28 Nov 2008 14:53:00 +0000 (15:53 +0100)]
ncmpc version 0.12~beta2

16 years agopo: updated French translation
Yann Cézard [Thu, 27 Nov 2008 18:47:31 +0000 (19:47 +0100)]
po: updated French translation

16 years agolist_window: converted "flags" to one "bool" variable
Max Kellermann [Thu, 27 Nov 2008 17:05:28 +0000 (18:05 +0100)]
list_window: converted "flags" to one "bool" variable

Currently, there is only one known list_window flag ("hide_cursor").
Replace the "flags" bit field with a boolean variable.  If we run out
of space some day, we can convert that to bool:1.

16 years agolist_window: use "bool" instead of "int"
Max Kellermann [Thu, 27 Nov 2008 16:56:32 +0000 (17:56 +0100)]
list_window: use "bool" instead of "int"

For flags and return values, use the "bool" data type instead of
"int".

16 years agolist_window: fixed endless loop in non-wrapped search
Max Kellermann [Thu, 27 Nov 2008 15:58:14 +0000 (16:58 +0100)]
list_window: fixed endless loop in non-wrapped search

When the cursor was at the end of a list and the user pressed 'n',
ncmpc would hang in an endless loop forever.  The same bug was fixed
in the backwards search.

16 years agopo: updated Russian translation
Max Arnold [Thu, 27 Nov 2008 15:35:55 +0000 (16:35 +0100)]
po: updated Russian translation

16 years agopo: updated Russian translation
Max Arnold [Wed, 26 Nov 2008 13:52:39 +0000 (14:52 +0100)]
po: updated Russian translation

16 years agopo: added screen_song.c to POTFILES.in
Max Kellermann [Wed, 26 Nov 2008 13:52:33 +0000 (14:52 +0100)]
po: added screen_song.c to POTFILES.in

When I created screen_song.c, I forgot to add it to POTFILES.in, and
thus its string were not part of ncmpc.pot.  Add it and regenerate
ncmpc.pot and all .po files.

16 years agopo: updated Galician translation
Johám-Luís Miguéns Vila [Tue, 25 Nov 2008 21:44:08 +0000 (22:44 +0100)]
po: updated Galician translation

16 years agopo: updated Spanish translation
Johám-Luís Miguéns Vila [Tue, 25 Nov 2008 21:43:57 +0000 (22:43 +0100)]
po: updated Spanish translation

16 years agopo: updated Slovak translation
Jozef Riha [Tue, 25 Nov 2008 21:41:05 +0000 (22:41 +0100)]
po: updated Slovak translation

16 years agoncmpc version 0.12~beta1 v0.12_beta1
Max Kellermann [Tue, 25 Nov 2008 20:35:24 +0000 (21:35 +0100)]
ncmpc version 0.12~beta1

First beta version for the upcoming version 0.12.

16 years agoNEWS update for 0.12~beta1
Max Kellermann [Tue, 25 Nov 2008 20:31:22 +0000 (21:31 +0100)]
NEWS update for 0.12~beta1

16 years agoscreen_artist: fixes for the ncmpc-mini build
Max Kellermann [Tue, 25 Nov 2008 20:14:07 +0000 (21:14 +0100)]
screen_artist: fixes for the ncmpc-mini build

Disable the highlighting code which has slipped out of the NCMPC_MINI
checks.

16 years agoncmpc-mini: disable scrolling
Max Kellermann [Tue, 25 Nov 2008 20:11:23 +0000 (21:11 +0100)]
ncmpc-mini: disable scrolling

The scrolling code broke in the ncmpc-mini build.  Disable it when
--enable-mini was specified.

16 years agopo: updated German translation
Max Kellermann [Tue, 25 Nov 2008 20:04:30 +0000 (21:04 +0100)]
po: updated German translation

16 years agopo: removed translations which are obviously wrong
Max Kellermann [Tue, 25 Nov 2008 20:04:22 +0000 (21:04 +0100)]
po: removed translations which are obviously wrong

Removed fuzzy and non-fuzzy translations which look obviously wrong.
No translation is better than a wrong one.

16 years agopo: merged new strings in all languages
Max Kellermann [Tue, 25 Nov 2008 20:04:13 +0000 (21:04 +0100)]
po: merged new strings in all languages

Removed exclamation marks also from the translated strings.

16 years agopo: enabled Slovakian translation
Max Kellermann [Tue, 25 Nov 2008 20:04:09 +0000 (21:04 +0100)]
po: enabled Slovakian translation

The Slovakian translation was added a while ago, but it was not
enabled in configure.ac.

16 years agopo: regenerated ncmpc.pot
Max Kellermann [Tue, 25 Nov 2008 20:03:46 +0000 (21:03 +0100)]
po: regenerated ncmpc.pot

16 years agopo: improved translatable strings for easier translation
Max Kellermann [Tue, 25 Nov 2008 20:03:28 +0000 (21:03 +0100)]
po: improved translatable strings for easier translation

Remove exclamation marks and other markup from the strings.

16 years agoscreen: simplify screen list strings
Max Kellermann [Tue, 25 Nov 2008 20:03:27 +0000 (21:03 +0100)]
screen: simplify screen list strings

Removed the colon and the spaces from the translatable screen names.
This aims to simplify the translator's job.

16 years agolist_window: reset cursor when list is empty
Max Kellermann [Tue, 25 Nov 2008 17:44:42 +0000 (18:44 +0100)]
list_window: reset cursor when list is empty

Due to a side effect of the old "if" condition, the cursor was never
reset to the origin when the list was cleared.

16 years agoscreen_lyrics: reset cursor when the song changes
Max Kellermann [Tue, 25 Nov 2008 17:37:56 +0000 (18:37 +0100)]
screen_lyrics: reset cursor when the song changes

When the view is changed and a new song is about to be displayed,
reset the list's state and scroll back to the origin.

16 years agoremoved gcc.h
Max Kellermann [Mon, 24 Nov 2008 06:48:46 +0000 (07:48 +0100)]
removed gcc.h

gcc.h has been replaced with GLib's G_GNUC_ macros.

16 years agoscreen_search.c: replaced mpd_unused by G_GNUC_UNUSED
Thomas Jansen [Mon, 24 Nov 2008 02:49:06 +0000 (03:49 +0100)]
screen_search.c: replaced mpd_unused by G_GNUC_UNUSED

16 years agoscreen_play.c: replaced mpd_unused by G_GNUC_UNUSED
Thomas Jansen [Mon, 24 Nov 2008 02:48:38 +0000 (03:48 +0100)]
screen_play.c: replaced mpd_unused by G_GNUC_UNUSED

16 years agoscreen_lyrics.c: replaced mpd_unused by G_GNUC_UNUSED
Thomas Jansen [Mon, 24 Nov 2008 02:48:09 +0000 (03:48 +0100)]
screen_lyrics.c: replaced mpd_unused by G_GNUC_UNUSED

16 years agoscreen_keydef.c: replaced mpd_unused by G_GNUC_UNUSED
Thomas Jansen [Mon, 24 Nov 2008 02:47:46 +0000 (03:47 +0100)]
screen_keydef.c: replaced mpd_unused by G_GNUC_UNUSED

16 years agoscreen_help.c: replaced mpd_unused by G_GNUC_UNUSED
Thomas Jansen [Mon, 24 Nov 2008 02:47:24 +0000 (03:47 +0100)]
screen_help.c: replaced mpd_unused by G_GNUC_UNUSED

16 years agoscreen_file.c: replaced mpd_unused by G_GNUC_UNUSED
Thomas Jansen [Mon, 24 Nov 2008 02:47:05 +0000 (03:47 +0100)]
screen_file.c: replaced mpd_unused by G_GNUC_UNUSED

16 years agoscreen_browser.c: replaced mpd_unused by G_GNUC_UNUSED
Thomas Jansen [Mon, 24 Nov 2008 02:46:40 +0000 (03:46 +0100)]
screen_browser.c: replaced mpd_unused by G_GNUC_UNUSED

16 years agoscreen_artist.c: replaced mpd_unused by G_GNUC_UNUSED
Thomas Jansen [Mon, 24 Nov 2008 02:45:45 +0000 (03:45 +0100)]
screen_artist.c: replaced mpd_unused by G_GNUC_UNUSED

16 years agomain.c: replaced mpd_unused by G_GNUC_UNUSED
Thomas Jansen [Mon, 24 Nov 2008 02:45:17 +0000 (03:45 +0100)]
main.c: replaced mpd_unused by G_GNUC_UNUSED

16 years agolyrics.c: replaced mpd_unused by G_GNUC_UNUSED
Thomas Jansen [Mon, 24 Nov 2008 02:43:47 +0000 (03:43 +0100)]
lyrics.c: replaced mpd_unused by G_GNUC_UNUSED

16 years agolirc: use GLib's G_GNUC_UNUSED instead of mpd_unused
Max Kellermann [Sun, 23 Nov 2008 17:51:32 +0000 (18:51 +0100)]
lirc: use GLib's G_GNUC_UNUSED instead of mpd_unused

The header gcc.h is going to fade away, in favor of GLib's G_GNUC_
macros.

16 years agoscreen_play: scroll long song names in the playlist
Matt Portas [Fri, 21 Nov 2008 15:39:31 +0000 (16:39 +0100)]
screen_play: scroll long song names in the playlist

If the song name under the cursor is too long for the terminal, scroll
it like in the statusbar.

16 years agopo: updated Spanish translation
Monika Brinkert [Wed, 19 Nov 2008 20:42:22 +0000 (21:42 +0100)]
po: updated Spanish translation

16 years agopo: updated German translation
Monika Brinkert [Wed, 19 Nov 2008 20:41:48 +0000 (21:41 +0100)]
po: updated German translation

16 years agopo: updated PO template
Monika Brinkert [Wed, 19 Nov 2008 09:09:05 +0000 (10:09 +0100)]
po: updated PO template

16 years agoscreen_search: don't include ncurses.h directly
Max Kellermann [Wed, 19 Nov 2008 08:45:51 +0000 (09:45 +0100)]
screen_search: don't include ncurses.h directly

screen.h has a check whether to include ncursesw/ncurses.h or
ncurses.h.  screen_search.c doesn't need to include it a second time,
and was missing the check.

16 years agoscreen_song: support CMD_SCREEN_LYRICS
Max Kellermann [Tue, 18 Nov 2008 23:07:02 +0000 (00:07 +0100)]
screen_song: support CMD_SCREEN_LYRICS

Show the lyrics of the song currently being displayed.

16 years agoscreen_song: free the song pointer
Max Kellermann [Tue, 18 Nov 2008 23:06:46 +0000 (00:06 +0100)]
screen_song: free the song pointer

Fix a memory leak.

16 years agoscreen_lyrics: support CMD_VIEW
Max Kellermann [Tue, 18 Nov 2008 23:06:22 +0000 (00:06 +0100)]
screen_lyrics: support CMD_VIEW

Jump to the song viewer screen.

16 years agoscreen_song: include cleanup
Max Kellermann [Tue, 18 Nov 2008 23:06:17 +0000 (00:06 +0100)]
screen_song: include cleanup

16 years agoscreen_song: check CMD_VIEW only if song screen is enabled
Max Kellermann [Tue, 18 Nov 2008 23:06:12 +0000 (00:06 +0100)]
screen_song: check CMD_VIEW only if song screen is enabled

16 years agoscreen_song: new screen which views song information
Max Kellermann [Tue, 18 Nov 2008 22:58:28 +0000 (23:58 +0100)]
screen_song: new screen which views song information

This new screen views all information available on a song: its
location, file name, and tags.

16 years agolibmpdclient: converted MPD_ERROR_ constants to enum
Max Kellermann [Tue, 18 Nov 2008 21:57:36 +0000 (22:57 +0100)]
libmpdclient: converted MPD_ERROR_ constants to enum

16 years agolibmpdclient: convert MPD_ACK_ constants to enum
Max Kellermann [Tue, 18 Nov 2008 21:57:14 +0000 (22:57 +0100)]
libmpdclient: convert MPD_ACK_ constants to enum

16 years agocommand: change 'locate' default hotkey to 'G'
Max Kellermann [Tue, 18 Nov 2008 21:55:24 +0000 (22:55 +0100)]
command: change 'locate' default hotkey to 'G'

Use the same hotkey as ncmpcpp.

16 years agoscreen_browser: always declare variable "entry"
Max Kellermann [Tue, 18 Nov 2008 21:47:40 +0000 (22:47 +0100)]
screen_browser: always declare variable "entry"

The local variable "entry" was only declared when lyrics were enabled,
but it is now used by CMD_LOCATE, too.

16 years agoscreen: method cmd() returns bool
Max Kellermann [Tue, 18 Nov 2008 21:09:23 +0000 (22:09 +0100)]
screen: method cmd() returns bool

Return true/false instead of 1/0.

16 years agoncu: include config.h, fix mouse and color support
Max Kellermann [Tue, 18 Nov 2008 20:57:17 +0000 (21:57 +0100)]
ncu: include config.h, fix mouse and color support

Due to config.h not being included, mouse and color support was always
disabled.

16 years agocommand: added CMD_LOCATE to locate song in database
Max Kellermann [Tue, 18 Nov 2008 20:51:57 +0000 (21:51 +0100)]
command: added CMD_LOCATE to locate song in database

Pressing 'l' switches to the file browser (screen_file) and locates
the previously selected song in the server's database.

16 years agoscreen_lyrics: duplicate current song
Max Kellermann [Tue, 18 Nov 2008 20:51:45 +0000 (21:51 +0100)]
screen_lyrics: duplicate current song

Don't store a pointer to the song passed to screen_lyrics_switch(),
duplicate it instead.  In the long term, it is too unsafe to work with
a foreign pointer.

16 years agoscreen_{file,artist,search}: repaint only if screen is visible
Max Kellermann [Tue, 18 Nov 2008 20:51:40 +0000 (21:51 +0100)]
screen_{file,artist,search}: repaint only if screen is visible

Don't repaint the screen after browser_cmd() if another screen has
been selected meanwhile.

16 years agofilelist: filelist_find_song() returns position instead of pointer
Max Kellermann [Tue, 18 Nov 2008 20:51:28 +0000 (21:51 +0100)]
filelist: filelist_find_song() returns position instead of pointer

Making the function return the index makes it more flexible: those who
want the pointer can use filelist_get(), and the others may use the
index for other purposes.

16 years agoscreen_browser: eliminated local variable "entity"
Max Kellermann [Tue, 18 Nov 2008 20:51:26 +0000 (21:51 +0100)]
screen_browser: eliminated local variable "entity"

"entity" is not being used after its initial assignment.

16 years agoscreen_browser: check if filelist is set
Max Kellermann [Tue, 18 Nov 2008 20:51:07 +0000 (21:51 +0100)]
screen_browser: check if filelist is set

When calling browser_change_directory() before a filelist was set,
ncmpc would crash due to a NULL pointer dereference.  This scenario is
not possible currently, since the open() method allocates the
filelist.

16 years agoscreen_browser: use bool for return values
Max Kellermann [Tue, 18 Nov 2008 20:50:11 +0000 (21:50 +0100)]
screen_browser: use bool for return values

Return true/false instead of 0/-1.

16 years agoscreen_lyrics: added gettext markers
Max Kellermann [Tue, 18 Nov 2008 20:49:34 +0000 (21:49 +0100)]
screen_lyrics: added gettext markers

16 years agopo: updated russian translation
Max Arnold [Tue, 18 Nov 2008 18:37:17 +0000 (19:37 +0100)]
po: updated russian translation

16 years agoncmpc version 0.12~alpha1 v0.12_alpha1
Max Kellermann [Mon, 17 Nov 2008 21:12:16 +0000 (22:12 +0100)]
ncmpc version 0.12~alpha1

First alpha version for the upcoming version 0.12.

16 years agoREADME: updated links, new home page
Max Kellermann [Mon, 17 Nov 2008 21:11:58 +0000 (22:11 +0100)]
README: updated links, new home page

The new home page is in the MPD wiki.

16 years agoconfigure.ac: enable color support by default
Max Kellermann [Mon, 17 Nov 2008 21:08:11 +0000 (22:08 +0100)]
configure.ac: enable color support by default

Many users love colors.  It would be too confusing for them to have
color options in the configuration file, but no color support enabled.

16 years agoMakefile.am: removed superfluous $(docdir) variable
Max Kellermann [Mon, 17 Nov 2008 21:00:35 +0000 (22:00 +0100)]
Makefile.am: removed superfluous $(docdir) variable

16 years agoremoved ChangeLog, added release dates to NEWS
Max Kellermann [Mon, 17 Nov 2008 21:00:31 +0000 (22:00 +0100)]
removed ChangeLog, added release dates to NEWS

The ChangeLog is useless, because it hasn't been updated in a while,
and due to the nature of git, the log will never be lost.

Switch to automake "foreign" mode, because "gnu" mandates the presence
of ChangeLog.

16 years agoREADME, TODO: removed outdated documentation
Max Kellermann [Mon, 17 Nov 2008 21:00:27 +0000 (22:00 +0100)]
README, TODO: removed outdated documentation

Removed the "Upgrading to ncmpc-0.11.0" section from README.  Deleted
the TODO file.

16 years agoINSTALL: mention C99 compiler requirements
Max Kellermann [Mon, 17 Nov 2008 21:00:26 +0000 (22:00 +0100)]
INSTALL: mention C99 compiler requirements

ncmpc uses C99 features.

16 years agoINSTALL: replaced generic instructions
Max Kellermann [Mon, 17 Nov 2008 21:00:03 +0000 (22:00 +0100)]
INSTALL: replaced generic instructions

Removed the generic GNU installation instructions, nobody will ever
bother to read this lengthy document.  Moved installation instructions
from README.

16 years agoNEWS update for 0.12~alpha1
Max Kellermann [Mon, 17 Nov 2008 20:52:46 +0000 (21:52 +0100)]
NEWS update for 0.12~alpha1

16 years agoconfigure.ac: enable artist screen by default
Max Kellermann [Mon, 17 Nov 2008 20:52:34 +0000 (21:52 +0100)]
configure.ac: enable artist screen by default

The artist screen has matured, and everybody should have it by
default.

16 years agoMakefile.am: added screen_play.h to $(ncmpc_headers)
Max Kellermann [Mon, 17 Nov 2008 20:52:00 +0000 (21:52 +0100)]
Makefile.am: added screen_play.h to $(ncmpc_headers)

screen_play.h was missing in the tarball.

16 years agopo: regenerated ncmpc.pot
Max Kellermann [Mon, 17 Nov 2008 20:51:03 +0000 (21:51 +0100)]
po: regenerated ncmpc.pot

16 years agopo: updated POTFILES.in
Max Kellermann [Mon, 17 Nov 2008 19:07:22 +0000 (20:07 +0100)]
po: updated POTFILES.in

Added new sources, removed screen_clock.c.

16 years agopo: improved russian translation
Max Arnold [Mon, 17 Nov 2008 18:03:06 +0000 (19:03 +0100)]
po: improved russian translation

16 years agoscreen_utils: check for NULL password
Max Kellermann [Mon, 17 Nov 2008 17:28:57 +0000 (18:28 +0100)]
screen_utils: check for NULL password

Fix a NULL pointer dereference and a memory leak: check if
screen_read_password() returns NULL, and don't call
mpd_sendPasswordCommand(NULL) in this case.  Free the password
when done.

16 years agolirc: refactored event handler
Thomas Jansen [Mon, 10 Nov 2008 13:13:46 +0000 (14:13 +0100)]
lirc: refactored event handler

 * moved lirc_event to lirc.c and split out the parts that depend on
   variables in main.c into three separate functions
 * changed keyboard_event accordingly to avoid duplicate code
 * merged lirc_event with ncmpc_lirc_get_command

16 years agoconfigure.ac: require autoconf 2.60
Max Kellermann [Fri, 7 Nov 2008 16:13:00 +0000 (17:13 +0100)]
configure.ac: require autoconf 2.60

16 years agompdclient: use g_utf8_collate()
Max Kellermann [Fri, 7 Nov 2008 15:37:32 +0000 (16:37 +0100)]
mpdclient: use g_utf8_collate()

Use one g_utf8_collate() call instead of g_utf8_collate_key() twice
plus strcmp().

16 years agowreadln: return NULL instead of empty string
Max Kellermann [Fri, 7 Nov 2008 15:17:21 +0000 (16:17 +0100)]
wreadln: return NULL instead of empty string

No wreadln() caller cares about an empty string.  Simplify the callers
by returning NULL instead of an allocated empty string.  This fixes
several memory leaks.