15 years Fix some silly typos.
Andre Noll [Tue, 23 Oct 2007 01:35:05 +0000 (03:35 +0200)] Fix some silly typos.

15 years agoRemove para_dbadm.
Andre Noll [Tue, 23 Oct 2007 00:35:16 +0000 (02:35 +0200)]
Remove para_dbadm.

The same can be easily done with a shell-script. And libmenu sucks.

15 years agoRemove old audio file selector code.
Andre Noll [Tue, 23 Oct 2007 00:23:28 +0000 (02:23 +0200)]
Remove old audio file selector code.

15 years agoRemove users of the old audio file selector code.
Andre Noll [Mon, 22 Oct 2007 23:48:45 +0000 (01:48 +0200)]
Remove users of the old audio file selector code.

15 years agovss.c: Kill unused int audio_file.
Andre Noll [Mon, 22 Oct 2007 23:23:17 +0000 (01:23 +0200)]
vss.c: Kill unused int audio_file.

15 years agoMove afh_init() call from vss.c to server.c.
Andre Noll [Mon, 22 Oct 2007 23:14:32 +0000 (01:14 +0200)]
Move afh_init() call from vss.c to server.c.

15 years agoMove common audio format handler functions to new afh_common.c.
Andre Noll [Mon, 22 Oct 2007 22:50:47 +0000 (00:50 +0200)]
Move common audio format handler functions to new afh_common.c.

15 years agovss.c: Isolate afh_init().
Andre Noll [Mon, 22 Oct 2007 22:22:39 +0000 (00:22 +0200)]
vss.c: Isolate afh_init().

As a first step to separate the audio format handlers from the vss.

15 years agovss.c: Use audio_format_name() where possible.
Andre Noll [Mon, 22 Oct 2007 22:14:36 +0000 (00:14 +0200)]
vss.c: Use audio_format_name() where possible.

15 years agovss.c: Kill an unused variable.
Andre Noll [Mon, 22 Oct 2007 21:59:35 +0000 (23:59 +0200)]
vss.c: Kill an unused variable.

15 years agovss.c: Small simplifications.
Andre Noll [Mon, 22 Oct 2007 21:55:50 +0000 (23:55 +0200)]
vss.c: Small simplifications.

15 years agoFix off-by-one bug in chunktable saving.
Andre Noll [Mon, 22 Oct 2007 21:53:53 +0000 (23:53 +0200)]
Fix off-by-one bug in chunktable saving.

Chunk table indices go from 0 to num_chunks, so the size is
(num_chunks + 1) * 4.

15 years agoChange chunktable array type from size_t to uint32_t.
Andre Noll [Mon, 22 Oct 2007 21:53:01 +0000 (23:53 +0200)]
Change chunktable array type from size_t to uint32_t.

It's better to have a fixed size here.

15 years agovss.c: Remove some unused code.
Andre Noll [Mon, 22 Oct 2007 20:30:05 +0000 (22:30 +0200)]
vss.c: Remove some unused code.

15 years agoSwitch to the new afs.
Andre Noll [Mon, 22 Oct 2007 20:23:31 +0000 (22:23 +0200)]
Switch to the new afs.

This obsoletes get_audio_file() of vss.c. It is being replaced
by a call to the afs layer from vss_post_select() which requests
a struct audio_format_data for the next audio file.

The afd struct, the chunk table and the path of the new audio file are
stored in a shared memory area. The id of that area is sent through
the afs-server socket. An open fd for the underlying audio file is
send to the server process as well using usual socket magic.

The vss task of the server process attaches the shared memory area
and mmaps the open fd to start audio streaming.

The code is still quite buggy, but let's do bug fixes and removal of
the old audio file selectors in susequent patches.

15 years agoMove mmap_full_file from osl.c to fd.c.
Andre Noll [Sun, 21 Oct 2007 13:25:55 +0000 (15:25 +0200)]
Move mmap_full_file from osl.c to fd.c.

To make it independent from osl.c, we must not pass
a pointer to struct osl_data. Replace it by void *, size_t *
pointers. Also add new int *fd_ptr parameter. If it's non-NULL
the file is not closed after mmap, and the open fd is returned
in fd_ptr.

15 years agoaft.c: Remove special case code for playlist mode.
Andre Noll [Sun, 21 Oct 2007 12:59:20 +0000 (14:59 +0200)]
aft.c: Remove special case code for playlist mode.

15 years agoAdd 3 byte reserved space to the afs info.
Andre Noll [Sun, 21 Oct 2007 12:40:27 +0000 (14:40 +0200)]
Add 3 byte reserved space to the afs info.

15 years agoaft: Add missing add event.
Andre Noll [Sun, 21 Oct 2007 12:24:19 +0000 (14:24 +0200)]
aft: Add missing add event.

15 years agoComplete afs event handling.
Andre Noll [Sun, 21 Oct 2007 11:43:22 +0000 (13:43 +0200)]
Complete afs event handling.

Add blob event handling. This definitely needs some
more fine-tuning, but that can be changed gradually
thanks to the generic event handling code.

In playlist mode there's nothing to do, as we're
not interested in any blob events. So install only
a dummy handler for the scoring system and decide
whether to reload the score table in mood.c.

15 years agoImplement afs events.
Andre Noll [Thu, 18 Oct 2007 20:00:16 +0000 (22:00 +0200)]
Implement afs events.

15 years agoReplace struct table_info by struct afs_table.
Andre Noll [Sat, 13 Oct 2007 16:30:33 +0000 (18:30 +0200)]
Replace struct table_info by struct afs_table.

This is a much cleaner approach and it simplifies afs.c a bit.

15 years agoRefuse to add invalid attibute names.
Andre Noll [Thu, 11 Oct 2007 18:06:46 +0000 (20:06 +0200)]
Refuse to add invalid attibute names.

And tell the client rather than the log file about any errors.

15 years agofd.c: Remove unused label change_to_orig_dir.
Andre Noll [Thu, 11 Oct 2007 17:07:29 +0000 (19:07 +0200)]
fd.c: Remove unused label change_to_orig_dir.

15 years agoMerge commit 'remotes/fml/v0.3' into v0.3
Andre Noll [Thu, 11 Oct 2007 16:59:36 +0000 (18:59 +0200)]
Merge commit 'remotes/fml/v0.3' into v0.3

15 years agoAdd --gc-sections to LDFLAGS.
Andre Noll [Thu, 11 Oct 2007 12:35:28 +0000 (14:35 +0200)]
Add --gc-sections to LDFLAGS.

This, together with -fdata-sections and -ffunction-sections brought
nice size reductions. Before:

-rwxr-xr-x 1 maan fml  29K Oct 11 14:32 para_audioc*
-rwxr-xr-x 1 maan fml  42K Oct 11 14:32 para_client*
-rwxr-xr-x 1 maan fml  33K Oct 11 14:32 para_fade*
-rwxr-xr-x 1 maan fml  38K Oct 11 14:32 para_filter*
-rwxr-xr-x 1 maan fml  54K Oct 11 14:32 para_fsck*
-rwxr-xr-x 1 maan fml  52K Oct 11 14:32 para_gui*
-rwxr-xr-x 1 maan fml  42K Oct 11 14:32 para_recv*
-rwxr-xr-x 1 maan fml 216K Oct 11 14:32 para_server*
-rwxr-xr-x 1 maan fml  38K Oct 11 14:32 para_write*


-rwxr-xr-x 1 maan fml  21K Oct 11 14:31 para_audioc*
-rwxr-xr-x 1 maan fml  33K Oct 11 14:31 para_client*
-rwxr-xr-x 1 maan fml  29K Oct 11 14:31 para_fade*
-rwxr-xr-x 1 maan fml  29K Oct 11 14:31 para_filter*
-rwxr-xr-x 1 maan fml  45K Oct 11 14:31 para_fsck*
-rwxr-xr-x 1 maan fml  47K Oct 11 14:31 para_gui*
-rwxr-xr-x 1 maan fml  30K Oct 11 14:31 para_recv*
-rwxr-xr-x 1 maan fml 208K Oct 11 14:31 para_server*
-rwxr-xr-x 1 maan fml  29K Oct 11 14:31 para_write*

15 years agoGet rid of E_WAITPID.
Andre Noll [Wed, 10 Oct 2007 18:19:26 +0000 (20:19 +0200)]
Get rid of E_WAITPID.

15 years agoGet rid of E_SIGNAL_PIPE.
Andre Noll [Wed, 10 Oct 2007 18:04:03 +0000 (20:04 +0200)]
Get rid of E_SIGNAL_PIPE.

If creation of the signal pipe fails, we abort anyway. So print
the errno in the fatal log message instead of the fact that the create

15 years agofd.c: Cosmetics.
Andre Noll [Wed, 10 Oct 2007 17:55:04 +0000 (19:55 +0200)]
fd.c: Cosmetics.

15 years agoGet rid of E_FCHDIR.
Andre Noll [Wed, 10 Oct 2007 17:50:12 +0000 (19:50 +0200)]
Get rid of E_FCHDIR.

Return the system error code instead.

15 years agoGet rid of E_OPENDIR.
Andre Noll [Wed, 10 Oct 2007 17:45:45 +0000 (19:45 +0200)]
Get rid of E_OPENDIR.

Return the system error instead.

15 years agopara_select(): Return a proper error code on errors.
Andre Noll [Wed, 10 Oct 2007 17:38:41 +0000 (19:38 +0200)]
para_select(): Return a proper error code on errors.

15 years agoRemove some system errors from errno.h
Andre Noll [Tue, 9 Oct 2007 19:11:05 +0000 (21:11 +0200)]
Remove some system errors from errno.h

No need to have system errors duplicated in error.h. Just return
-ERRNO_TO_PARA_ERROR(errno) in these cases.

15 years agoGet rid of -E_F_GETFL and -E_F_SETFL.
Andre Noll [Tue, 9 Oct 2007 18:10:22 +0000 (20:10 +0200)]
Get rid of -E_F_GETFL and -E_F_SETFL.

Return the proper errno instead, using the new ERRNO_TO_PARA_ERROR macro..

15 years agoerror.h: Add more helper macros.
Andre Noll [Tue, 9 Oct 2007 18:05:16 +0000 (20:05 +0200)]
error.h: Add more helper macros.

15 years ago.ico Version of the fancy new logo.
Andre Noll [Mon, 8 Oct 2007 16:22:30 +0000 (18:22 +0200)]
.ico Version of the fancy new logo.

15 years agoerror.h: Make PARA_STRERROR understand system errors.
Andre Noll [Sun, 7 Oct 2007 19:52:47 +0000 (21:52 +0200)]
error.h: Make PARA_STRERROR understand system errors.

15 years agoerror.h: Remove some unused errors.
Andre Noll [Sun, 7 Oct 2007 19:28:44 +0000 (21:28 +0200)]
error.h: Remove some unused errors.

15 years agoOnly declare error codes that are safe to use.
Andre Noll [Sun, 7 Oct 2007 19:03:54 +0000 (21:03 +0200)]
Only declare error codes that are safe to use.

The following type of bug occurred frequently since the introduction
of error.h: An error code was defined for some file a.c and was used
in another file b.c. This is all good if each executable that contains
b.o also contains a.o.

If this is not the case, i.e. if there is an executable that contains
b.o but _not_ a.o, the error texts of all errors defined for a.c are
not included in the executable. This results in a segmentation fault
at runtime if PARA_STRERROR() is used for such an error code.

Unfortunately, this was hard to spot because all error codes were
visible everywhere. This patch gets rid of this flaw by making
only those error codes visible for b.c which are safe to use.

According to the above, the set of error codes which are safe to use
in b.c can be defined as follows. Let E_1, ... E_n be the set of
executables that contain b.o and let, for j=1,...n,  S_j be the
set of files those files contained in E_j. Then, all errors defined
in the intersection

S_1 \cap S_2 \cap ... \cap S_n

are safe to use in b.c. The patch adds a function to
That computes this intersection. Unfortunately, it is rather expensive.

The good news is that this simplifies error.h a bit and that it
already revealed a couple of bugs which are also fixed in the patch:

- afs.c used E_SIGNAL_CAUGHT which was only defined in audiod.
  Introduce E_AFS_SIGNAL and change afs.c accordingly.
- audiod uses E_RECV_SYNTAX, which belonged to recv which is
  not contained in audiod. Move it to recv_common instead.
  This bug is also present in v0.2.x and needs a similar fix.
- E_NOTDIR was used in fd.c, but was defined in osl.c. Not all
  executables that include fd.o also include osl.o. Move E_NOTDIR
  to the set of errors for fd.

15 years agoINSTALL: Update to v0.3.
Andre Noll [Sat, 6 Oct 2007 23:50:06 +0000 (01:50 +0200)]
INSTALL: Update to v0.3.

Still needs more work.

15 years agomood.c: Fix comment for the scoring function.
Andre Noll [Sat, 6 Oct 2007 22:05:22 +0000 (00:05 +0200)]
mood.c: Fix comment for the scoring function.

15 years agoAdd more documentation.
Andre Noll [Sat, 6 Oct 2007 17:00:24 +0000 (19:00 +0200)]
Add more documentation.

15 years Fix man page format.
Andre Noll [Sat, 6 Oct 2007 10:47:23 +0000 (12:47 +0200)] Fix man page format.

It really looked ugly as it were. Remove leading tabs in help texts.

15 years agoafs.cmd: Beautify help texts.
Andre Noll [Sat, 6 Oct 2007 10:46:19 +0000 (12:46 +0200)]
afs.cmd: Beautify help texts.

15 years agocom_add(): Write messages to the client rather than to the log.
Andre Noll [Sat, 6 Oct 2007 09:18:47 +0000 (11:18 +0200)]
com_add(): Write messages to the client rather than to the log.

15 years agoafs: Handle SIGHUP.
Andre Noll [Fri, 5 Oct 2007 20:16:43 +0000 (22:16 +0200)]
afs: Handle SIGHUP.

This required moving around some functions but was otherwise
straight forward.

15 years agocom_add(): Only accept absolute paths.
Andre Noll [Fri, 5 Oct 2007 19:50:51 +0000 (21:50 +0200)]
com_add(): Only accept absolute paths.

15 years agoosx_write.c: Add two missing headers.
Andre Noll [Fri, 5 Oct 2007 18:20:00 +0000 (20:20 +0200)]
osx_write.c: Add two missing headers.

15 years agoSwitch from inet_aton() to inet_pton().
Andre Noll [Fri, 5 Oct 2007 18:19:43 +0000 (20:19 +0200)]
Switch from inet_aton() to inet_pton().

Solaris doesn't have inet_aton().

15 years agoMake it compile on Solaris.
Andre Noll [Fri, 5 Oct 2007 18:18:22 +0000 (20:18 +0200)]
Make it compile on Solaris.

This required a bit of work as Solaris has  gethostbyname() and
socket-related functions not in libc but in libsocket and libnsl.
So add corresponding checks to

Moreover, make para_gui optional and add configure options for
specifying the directory containing the curses headers and curses

15 years agoREADME: Mention dependence on gnu make.
Andre Noll [Thu, 4 Oct 2007 21:37:59 +0000 (23:37 +0200)]
README: Mention dependence on gnu make.

Solaris make fails miserably.

15 years agoFEATURES: Update.
Andre Noll [Thu, 4 Oct 2007 21:37:20 +0000 (23:37 +0200)]

15 years agoaudioc: Get rid of the temporary socket file.
Andre Noll [Thu, 4 Oct 2007 18:48:35 +0000 (20:48 +0200)]
audioc: Get rid of the temporary socket file.

This allows to kill the --tmpdir option as well.

15 years agoafs.c: Remove some dead code.
Andre Noll [Thu, 4 Oct 2007 14:41:39 +0000 (16:41 +0200)]
afs.c: Remove some dead code.

15 years agoAdd command line options --mood and --playlist.
Andre Noll [Thu, 4 Oct 2007 14:41:05 +0000 (16:41 +0200)]
Add command line options --mood and --playlist.

And replace the temporary strings which were hardcoded
in afs.c.

15 years agoafs.c: Introduce client list for afs (fixes dosable bug).
Andre Noll [Thu, 4 Oct 2007 14:11:59 +0000 (16:11 +0200)]
afs.c: Introduce client list for afs (fixes dosable bug).

With the old code, a malicious local user could easily cause a DOS
by connecting to the local afs socket but never sending any data
through that socket. This caused afs to block on the read() from the
new client fd.

This patch fixes this flaw by introducing a doubly liked list of
connected clients.  Each entry in this list contains an open file
descriptor and the time the client connected.

In command_pre_select() we add each fd in the list to the set of
fds to be checked for readability. In command_post_select() we loop
through that list and check each fd again. Whenever the fd for a
client is readable we read from that fd and execute an afs command
if the client sent the valid magic cookie.

However, if the fd is not ready, we close the connection if more than
AFS_CLIENT_TIMEOUT seconds (default: 3) have passed since the client
connected. This hopefully avoids another possible DOS: A malicious
user could try to flood us with connections until the limit of open
fds is reached.

15 years agoMake it compile on FreeBSD.
Andre Noll [Tue, 2 Oct 2007 13:56:10 +0000 (15:56 +0200)]
Make it compile on FreeBSD.

This was easier than expected. Only two items needed fixing:

- signal.h has to be included for several files that use signals.
- The __used and __packed macros are already defined on FreeBSD which
  leads to an error at compile time. Fortunately paraslash doesn't use
  these macros at all, so we can simply remove them.

15 years agogcc-compat.h: Remove compatibility code for gcc-2.
Andre Noll [Tue, 2 Oct 2007 12:44:36 +0000 (14:44 +0200)]
gcc-compat.h: Remove compatibility code for gcc-2.

gcc-2 is not supported any longer.

15 years agofsck.c: Fix several bugs in dump mode.
Andre Noll [Tue, 2 Oct 2007 12:04:46 +0000 (14:04 +0200)]
fsck.c: Fix several bugs in dump mode.

- Don't abort if a  directory can't be created because it already exists.
- Use correct variable for the disk storage name column.
- If more than one table is to be dumped, use a directory for each table.
- Remove __a_unused for main()'s argc which _is_ being used.

15 years agoImplement com_cpsi().
Andre Noll [Tue, 2 Oct 2007 09:56:35 +0000 (11:56 +0200)]
Implement com_cpsi().

15 years agoMerge commit 'remotes/meins/v0.3' into v0.3
Andre Noll [Tue, 2 Oct 2007 08:20:45 +0000 (10:20 +0200)]
Merge commit 'remotes/meins/v0.3' into v0.3

15 years agocom_add(): Always check the return value of send_va_buffer().
Andre Noll [Mon, 1 Oct 2007 21:34:39 +0000 (23:34 +0200)]
com_add(): Always check the return value of send_va_buffer().

And abort on send errors.

15 years agofor_each_file_in_dir(): Ignore permission errors for subdirectories.
Andre Noll [Mon, 1 Oct 2007 21:33:03 +0000 (23:33 +0200)]
for_each_file_in_dir(): Ignore permission errors for subdirectories.

15 years agoerror.h: Add CHDIR_PERM error code.
Andre Noll [Mon, 1 Oct 2007 21:31:31 +0000 (23:31 +0200)]
error.h: Add CHDIR_PERM error code.

15 years agofd.h: Add declaration of para_chdir().
Andre Noll [Mon, 1 Oct 2007 21:31:00 +0000 (23:31 +0200)]
fd.h: Add declaration of para_chdir().

15 years agofd.c: Introduce para_chdir().
Andre Noll [Mon, 1 Oct 2007 21:30:33 +0000 (23:30 +0200)]
fd.c: Introduce para_chdir().

Also, fix a bug in para_open() which would return -1 instead of
a proper error code.

15 years agoImplement add -a (add all audio files).
Andre Noll [Mon, 1 Oct 2007 20:23:39 +0000 (22:23 +0200)]
Implement add -a (add all audio files).

15 years agomood.c: Remove debug log message.
Andre Noll [Mon, 1 Oct 2007 08:19:59 +0000 (10:19 +0200)]
mood.c: Remove debug log message.

15 years agoImplement mailbox output format for ls.
Andre Noll [Sun, 30 Sep 2007 23:24:54 +0000 (01:24 +0200)]
Implement mailbox output format for ls.

Alos, fix a bug in com_lsblob_callback() which caused incorrect
detection of the given options.

Andre Noll [Sat, 29 Sep 2007 13:32:12 +0000 (15:32 +0200)]

This simplifies the definition of the mood_methods array.

15 years agoattribute.c: Fix com_rmatt().
Andre Noll [Sat, 29 Sep 2007 13:31:35 +0000 (15:31 +0200)]
attribute.c: Fix com_rmatt().

We have to get the bit number _before_ we remove the row.

15 years agocom_ls: Don't use FNM_PATHNAME.
Andre Noll [Sat, 29 Sep 2007 13:30:06 +0000 (15:30 +0200)]
com_ls: Don't use FNM_PATHNAME.

It's just annoying.

15 years agoafs.cmd: Fix typo in setatt help.
Andre Noll [Sat, 29 Sep 2007 13:29:26 +0000 (15:29 +0200)]
afs.cmd: Fix typo in setatt help.

15 years agoattribute.c: Clear attribute bits already at remove time.
Andre Noll [Sat, 29 Sep 2007 12:00:14 +0000 (14:00 +0200)]
attribute.c: Clear attribute bits already at remove time.

If an attribute gets removed, the old code deferred clearing the
corresponding attribute bit in the afsi of all audio files until
that bit got reclaimed by add_att.  This is problematic because of
the new no_attribute_set mood method.

So clear the bit already in the rmatt callback.

15 years agomood.c: Add no_attributes_set mood method.
Andre Noll [Sat, 29 Sep 2007 11:39:34 +0000 (13:39 +0200)]
mood.c: Add no_attributes_set mood method.

Also fix a bug in mm_played_rarely_parser(): If no arg was
specified in the mood definition, a NULL pointer is passed to that
function, so it must not blindly dereference that pointer.

15 years agoSpeed up mood loading.
Andre Noll [Sat, 29 Sep 2007 11:13:50 +0000 (13:13 +0200)]
Speed up mood loading.

The old code passed a pointer to the row of the audio file table to the
mood scoring functions. The scoring functions had to obtain the afsi,
afhi, path from that row pointer. Thus, at mood load time, the afsi,
afhi, path was extracted N times for each audio file if there are N
mood lines that used this info.

This patch changes the mood scoring functions so that they take
three pointers to afsi, afhi, path instead of the row pointer.
add_item_score(), the single caller of the mood scoring functions,
provides these pointers, i.e. they get extracted from the row pointer
only once per audio file.

This is still not optimal as most scoring functions use only one of
the three pointers. But let's not over-engineer the thing.

15 years agomood.c: Switch to fnmatch() in mood method name_like.
Andre Noll [Sat, 29 Sep 2007 10:22:52 +0000 (12:22 +0200)]
mood.c: Switch to fnmatch() in mood method name_like.

Also, change doxygen documentation to the new style.

15 years agograb_client.c: Change doxygen comments to the new style.
Andre Noll [Fri, 28 Sep 2007 22:07:29 +0000 (00:07 +0200)]
grab_client.c: Change doxygen comments to the new style.

15 years agoEven more typo fixes.
Andre Noll [Fri, 28 Sep 2007 21:54:59 +0000 (23:54 +0200)]
Even more typo fixes.

15 years agoStill more typo fixes.
Andre Noll [Fri, 28 Sep 2007 21:46:36 +0000 (23:46 +0200)]
Still more typo fixes.

15 years agoFEATURES, INSTALL: Fix some more typos.
Andre Noll [Fri, 28 Sep 2007 21:46:24 +0000 (23:46 +0200)]
FEATURES, INSTALL: Fix some more typos.

15 years agoREADME,INSTALL: Fix some spelling errors.
Andre Noll [Fri, 28 Sep 2007 21:31:21 +0000 (23:31 +0200)]
README,INSTALL: Fix some spelling errors.

15 years agoMake com_lsblob() and com_lsatt() more similar to each other.
Andre Noll [Fri, 28 Sep 2007 19:54:23 +0000 (21:54 +0200)]
Make com_lsblob() and com_lsatt() more similar to each other.

15 years agoafs.cmd: Update help output.
Andre Noll [Fri, 28 Sep 2007 19:53:01 +0000 (21:53 +0200)]
afs.cmd: Update help output.

15 years agoImplement pattern matching for com_lsatt().
Andre Noll [Fri, 28 Sep 2007 17:55:17 +0000 (19:55 +0200)]
Implement pattern matching for com_lsatt().

15 years agoattribute.c: Implement pattern matching for com_rmatt().
Andre Noll [Fri, 28 Sep 2007 17:14:43 +0000 (19:14 +0200)]
attribute.c: Implement pattern matching for com_rmatt().

A straight forward task with the infrastructure already in place.

15 years agoImplement pattern matching for com_touch().
Andre Noll [Thu, 27 Sep 2007 15:47:46 +0000 (17:47 +0200)]
Implement pattern matching for com_touch().

Also, add -p and -v options and fix converting the last played
time which is a 64 bit intger, so strtol() will fail do it on 32
bit machines after 2039 ;)

To fix this, introduce para_atoi64() which calls strtoll() which
is 64 bit even on 32 bit machines and define para_atoi32() which
calls para_atoi64() and checks the boundaries.

15 years agocom_afs_rm(): Implement pattern matching and add -v, -p, -f flags.
Andre Noll [Thu, 27 Sep 2007 13:22:39 +0000 (15:22 +0200)]
com_afs_rm(): Implement pattern matching and add -v, -p, -f flags.

The -r flag is still to be implemented though..

15 years agoGerneralize for_each_matching_blob().
Andre Noll [Thu, 27 Sep 2007 10:25:05 +0000 (12:25 +0200)]
Gerneralize for_each_matching_blob().

It's not only useful for blobs. For instance the rm and the touch
commands might also want to use something similar. So move it to
afs.c and call it for_each_matching_row().

15 years agosha1.h: Typo.
Andre Noll [Thu, 27 Sep 2007 07:29:51 +0000 (09:29 +0200)]
sha1.h: Typo.

15 years agoattribute.c: Add doxygen file comment.
Andre Noll [Thu, 27 Sep 2007 07:29:33 +0000 (09:29 +0200)]
attribute.c: Add doxygen file comment.

15 years agoMove enum ls_sorting_method from afs.h to aft.c and add documentation.
Andre Noll [Wed, 26 Sep 2007 15:13:55 +0000 (17:13 +0200)]
Move enum ls_sorting_method from afs.h to aft.c and add documentation.

15 years agoAdd documentation of enum blob_table_columns.
Andre Noll [Wed, 26 Sep 2007 14:51:29 +0000 (16:51 +0200)]
Add documentation of enum blob_table_columns.

15 years agoFix table init.
Andre Noll [Wed, 26 Sep 2007 14:37:00 +0000 (16:37 +0200)]
Fix table init.

The previous patch introduced two instances of a bug which weren't noticed by
the compiler because attribute_table and score_table were declared as void *
pointers. Change that to struct osl_table *, and add the missing '&' operator.

void * pointers a evil.

15 years agoGet rid of the "table" member in struct table_info.
Andre Noll [Wed, 26 Sep 2007 14:31:00 +0000 (16:31 +0200)]
Get rid of the "table" member in struct table_info.

afs.c has no busyness in dealing with the table, so do not
expose it to afs.c.

15 years agoaddblob: Overwrite existing blobs.
Andre Noll [Wed, 26 Sep 2007 09:29:07 +0000 (11:29 +0200)]
addblob: Overwrite existing blobs.

Previously, an attempt to add a blob with a name of an already
existing blob failed (siltenly). Just replace the existing blob
with the new contents instead.

15 years agoafs ls -lv: Also print the tag info.
Andre Noll [Tue, 25 Sep 2007 19:37:31 +0000 (21:37 +0200)]
afs ls -lv: Also print the tag info.

15 years agocom_check(): Implement mood checking.
Andre Noll [Tue, 25 Sep 2007 12:57:09 +0000 (14:57 +0200)]
com_check(): Implement mood checking.

15 years agomake get_playlist_data() generic.
Andre Noll [Tue, 25 Sep 2007 12:16:14 +0000 (14:16 +0200)]
make get_playlist_data() generic.

Other blob types might use an analogous function as well, so introduce
blob_get_name_and_def_by_row() in blob.c, and use some preprocessor
magic to define such a function for each blob type.

Change all users of get_playlist_data() to use the new
pl_blob_get_name_and_def_by_row() and remove get_playlist_data().

15 years agomood.c: Rename mood_loop() to load_mood_loop_func().
Andre Noll [Tue, 25 Sep 2007 11:02:26 +0000 (13:02 +0200)]
mood.c: Rename mood_loop() to load_mood_loop_func().

And add a comment that describes why this function returns negative on success,
and positive on errors.