NEWS
====
+------------------------------------
+0.6.0 (to be announced) "fuzzy flux"
+------------------------------------
+- Support for Mac OS X has been removed.
+- On Linux systems, glibc-2.17 or newer is required to build the
+ source tree.
+
+Downloads:
+[tarball](./releases/paraslash-git.tar.bz2),
+
-------------------------------------
0.5.7 (2016-12-31) "semantic density"
-------------------------------------
+
+Mostly a bug fix release, and a bunch of internal improvements.
+The only user-visible changes are the sanity checks for the touch
+command and the new options to the ls command.
+
- Speedup of the base64 decoder.
- One of the two source browsers has been removed from the web pages.
The doxygen API reference still contains an HTML version of each
* \sa struct afh_info
*/
int (*get_file_info)(char *map, size_t numbytes, int fd,
- struct afh_info *afi);
+ struct afh_info *afhi);
/** Optional, used for header-rewriting. See \ref afh_get_header(). */
void (*get_header)(void *map, size_t mapsize, char **buf, size_t *len);
/**
#include "base64.h"
#include "string.h"
-static const char Base64[] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
static const unsigned char base64_tab[256] = {
255, 255, 255, 255, 255, 255, 255, 255, /* 00-07 */
255, 255, 255, 255, 255, 255, 255, 255, /* 08-0f */
bool caught_sigterm;
Keymap standard_km;
Keymap bare_km;
+ int fd_flags[2];
};
static struct i9e_private i9e_private, *i9ep = &i9e_private;
if (hf)
write_history(hf);
wipe_bottom_line();
+ fcntl(i9ep->ici->fds[0], F_SETFL, i9ep->fd_flags[0]);
+ fcntl(i9ep->ici->fds[1], F_SETFL, i9ep->fd_flags[1]);
}
static void clear_bottom_line(void)
memset(i9ep, 0, sizeof(struct i9e_private));
if (!isatty(ici->fds[0]))
return -E_I9E_SETUPTERM;
+ ret = fcntl(ici->fds[0], F_GETFL);
+ if (ret < 0)
+ return -E_I9E_SETUPTERM;
+ i9ep->fd_flags[0] = ret;
+ ret = fcntl(ici->fds[1], F_GETFL);
+ if (ret < 0)
+ return -E_I9E_SETUPTERM;
+ i9ep->fd_flags[1] = ret;
ret = mark_fd_nonblocking(ici->fds[0]);
if (ret < 0)
return ret;
{
ogg_sync_state oss;
ogg_page op;
- long len = numbytes;
char *buf;
int ret, i, j, frames_per_chunk, ct_size;
long long unsigned num_frames = 0;
ogg_sync_init(&oss);
ret = -E_OGG_SYNC;
- buf = ogg_sync_buffer(&oss, len);
+ buf = ogg_sync_buffer(&oss, numbytes);
if (!buf)
goto out;
- memcpy(buf, map, len);
+ memcpy(buf, map, numbytes);
ret = -E_OGG_SYNC;
- if (ogg_sync_wrote(&oss, len) < 0)
+ if (ogg_sync_wrote(&oss, numbytes) < 0)
goto out;
ret = process_ogg_packets(&oss, afhi, ci);
if (ret < 0)
test_require_objects "oggdec_filter"
missing_objects="$result"
-test_require_executables oggdec sha1sum
+test_require_executables oggdec shasum
missing_executables="$result"
get_audio_file_paths ogg
continue
fi
test_expect_success "${ogg##*/}" "
- $PARA_FILTER -f oggdec < $ogg | sha1sum > filter.sha1 &&
- oggdec --quiet --raw --output - - < $ogg | sha1sum > oggdec.sha1 &&
- diff -u filter.sha1 oggdec.sha1
+ $PARA_FILTER -f oggdec < $ogg | shasum > filter.sha &&
+ oggdec --quiet --raw --output - - < $ogg | shasum > oggdec.sha &&
+ diff -u filter.sha oggdec.sha
"
done
test_done