diff options
author | rxg <rxg@pkgsrc.org> | 2011-04-05 05:22:52 +0000 |
---|---|---|
committer | rxg <rxg@pkgsrc.org> | 2011-04-05 05:22:52 +0000 |
commit | 3c2405f9eade3bc23da660eec1fcd543683a508c (patch) | |
tree | 6c3a4623c53643e20b4b77e04e90e13cbc22639f /audio/xmp | |
parent | 3280a8b8a28b549dcf9b60006ed1c39bfdf9edef (diff) | |
download | pkgsrc-3c2405f9eade3bc23da660eec1fcd543683a508c.tar.gz |
Updated xmp to 3.3.0. This version includes buffer-overflow bugs fix.
Oked by wiz.
3.3.0 (20101002):
- change MED BPM mode tempo setting (reported by Lorence Lombardo)
- fix OSS driver fragment setting
- add interactive loop toggle (requested by Emanuel Haupt)
- add filter to prevent loading NoiseRunner modules as Protracker
- add NoiseRunner loader (requested by Johan Samuelsson)
- add improved Impulse Tracker fingerprinting (from Schism Tracker)
- add Archimedes Tracker StasisMod effects support (Tom Hargreaves)
- add tarball decompressor (Tom Hargreaves)
- limit uncompression recursion (Tom Hargreaves)
- fix Tracker Packer 3 loader (Tom Hargreaves)
- fix load issue with BoobieSqueezer XMs (reported by Null Vista)
- fix modinfo tempo/bpm setting
- fix Zip file detection (Tom Hargreaves)
- fix Archimedes Tracker effects (Tom Hargreaves)
- update Audacious plugin to API 16
- code cleanup
3.2.0 (20100530):
- Digital Symphony fixes by Tom Hargreaves
- Archimedes Tracker fixes by Tom Hargreaves
- add shared logarithmic volume table for Archimedes formats
- fix default Archimedes formats pan (RLLR instead of LRRL)
- add Coconizer file loader
- portability fixes for BeOS and Haiku
- code cleanup and optimizations
- Android port using NDK
- fix time echoback event for MED
- fix module time count not reseting at new module
- make zipfile detection stricter (by Solomon Peachy)
- fix DSMI loader volume event (by Solomon Peachy)
- initialize formats only once
- fix build with Audacious plugin API 13
- fix seek in Audacious plugin
3.1.0 (20100107):
- implement MED4 instrument transposition
- fix build with MSVC++ 2008
- fix bogus information in winamp plugin file info display
- fix Audacious plugin dialog stacking order (by Michael Schwendt)
- add Titanics Player prowizard loader
- add SKYT Packer prowizard loader
- add Novotrade Packer prowizard loader
- add Hornet Packer prowizard loader
- fix empty instruments in Digital Illusions loader
- fix silent Liquid Tracker module bug
- add Magnetic Fields Packer loader
- add The Player 6.1a prowizard loader
- add StoneCracker S404 decompressor (from amigadepacker)
- add extra Funktracker file tests to prevent false positives
- add Polly Tracker module loader
- code cleanup and optimizations
3.0.1 (20091221):
- better handling of corrupted modules
- load Real Tracker RTMM 1.12 modules (tested with odyssey.rtm)
- fix tuning of Real Tracker modules
- fix Real Tracker patern decoding
- fix segfault in modules with 0 orders or 0 channels
- fix loading of MED4 module patterns with less than 32 lines
- fix memory leak when loading corrupt MED4 files
3.0.0 (20091210): 13 years after the 0.09b release
- allow parallel build (R.I.P. 1996 buildsystem)
- implement the long postponed open player loop
- generate win32 project files when packaging distfile
- remove callback driver
- split unified flags/quirks into separate variables
- add elapsed time echoback event
- add option to display elapsed and remaining time
- implement IT volume column fine effects quirk (Storlek test #6)
- fix bmp plugin build
- fix FreeBSD build (by swell k)
- fix terminal handling in Cygwin (by daniel åkerud)
- add OpenMPT id to S3M loader
- add Epic MegaGames MUSE data decompression
- add Galaxy Music System (Jazz Jackrabbit 2 J2B) module loader
- fix parsing of driver-specific parameters
- fix GDM length, number of patterns and number of samples
- fix memory access error in MDL sample depacker
- fix ProRunner1 samples size
- OSS driver resets the DSP device on exit (by Andrew Church)
- fix handling of PT portamento+vslide effect (by Andrew Church)
- move driver init from player core to main application or plugin
- Epic MegaGames MASI loader fixes
- add Amiga TuneNet plugin (by Chris Young)
- fix Module Protector loader
- fix lha depacking in Amiga (reported by Chris Young)
- fix clang build (by swell k)
- add support for xz decompressor (by swell k)
- add built-in LZX decompressor
- remove pause-related functions from player core
- fix build in Solaris 10 and Sun Studio 12 Update 1 C++ compiler
(reported by Douglas Carmichael)
- fix plugin to work with Audacious 2.2 (reported by Götz Waschk)
- fix invalid and uninitialized data accesses reported by Valgrind
- fix memory leaks reported by Valgrind
2.7.1 (20090718):
- fix -l option in manpage (debian bug #442147)
- fix endianism in MDL sample depacking (reported by Gürkan Sengün)
- fix loading of MOD2XM 1.0 modules (reported by Gürkan Sengün)
- add some sanity checks in XM module loading
- fix IT note cut and delay (Storlek test #22)
- increase period resolution for better tuning (reported by Mirko
Buffoni and Gürkan Sengün)
- allow lower BPM settings (fixes Lemmings 2 circus music)
2.7.0 (20090711):
- add StarTrekker packer loader (untested, need samples)
- extended key range to IT octave 9 (fixes beek-my_eleventh_year.it,
reported by Mirko Buffoni)
- ignore tempo/bpm settings to 0 in module scan (fixes albacore.it,
reported by Storlek)
- implement IT T0x and T1x tempo slides
- process effects in IT muted channels (Storlek test #10)
- generalized delayed event support (Storlek test #8)
- emulate "always store instrument" IT bug (Storlek test #8)
- add extra click removal step in mixer routines
- fix loop size in GMC loader (reported by Mirko Buffoni)
- GMC loader code cleanup
- store in-file comments
- apply amplification in the final downmix
- set sample format to unsigned on 8-bit wav file output
- attempt to handle BPM-based MED tempos a bit better
- add option to use the IT LPF as a click/noise filter
- deprecate $HOME/.xmprc, use $HOME/.xmp/xmp.conf instead
- reintroduce modules.conf, move SYSCONFDIR back to /etc/xmp
- display checksum for platforms where cksum(1) not readily available
- add filter quirk for rn-alone.it
- reintroduce manual setting for vblank timing in Amiga modules
- add vblank quirk for mod.siedler ii (by Daniel Åkerud)
- don't crash if SoundSmith instruments not found
2.6.2 (20090630):
- Promizer 1.8a loader code cleanup
- fix portamento to skip first frame of each row
- fix periods in instruments with finetune
2.6.1 (20090627):
- fix XMMS plugin build (reported by Götz Waschk)
- add Chibi Tracker fingerprint to IT loader (info by Storlek)
- add Schism Tracker fingerprint to S3M loader (info by Storlek)
- fix Modplug Tracker/OpenMPT identification in IT loader
- IT instrument and sample modes use same quirks (Storlek test #9)
- transposed period scale base down one semitone (Storlek test #1)
- remove previous portamento in SpaceDebris.mod fix
- add unified pitch slide/portamento memory (Storlek test #3)
- no Amiga limits for multichannel mods (fixes Bending CD61)
2.6.0 (20090625):
- cleanup: remove rarely used Unix IPC code that difficults porting
- cleanup: remove per-module configuration that nobody uses
- cleanup: moved Prowizard depacking to loader section
- don't abort loading if IT sample magic not found (fixes loading
of use-brdg.it and use-funk.it, reported by Mirko Buffoni)
- multichannel mods written with Scream Tracker don't use Amiga note
limits (fixes Earth Mountains, reported by Samuli Sorvakko)
- fix start option in DeusEx's .umx files (by erlk ozlr)
- add OpenBSD sndio driver (by Thomas Pfaff)
- fix memory leak: free extra pattern allocated by the XM loader
- fix memory leak: free temporary pointer arrays in the IT loader
- fix memory leak: free temporary pointer arrays in the S3M loader
- fix memory leak: free header and filename when file is invalid
- fix memory leak: free temporary buffer in MDL loader
- fix memory leak: move UNIC check to test section of mod loader
- fix memory leak: free Digital Symphony extra empty track
- fix memory leak: free Music Module Compressor buffers
- fix memory access violation freeing list nodes using list_for_each
- fix memory access violation in MDL track allocation
- fix memory access violation in MDL sample decompression
- fix memory access violation in LIQ pattern loading
- fix memory access violation in P18A format test
- fix free of unallocated block in IT sample-only mode
- fix buffer overflow in OXM/DTT loaders (reported by Luigi Auriemma)
- rename oss_mix driver to oss and alsa_mix to alsa
- restrict MMD0/MMD1 non-synth instrument note range to 3 octaves
(reported by Daniel Åkerud and Mirko Buffoni)
- assume wav driver if output filename ends in .wav
- fix volume slides with 00 parameter (by Mirko Buffoni)
- fix crash when S3M C2spd is zero (by Mirko Buffoni)
- merged Mirko Buffoni's Windows Visual C++ port
- don't process tone portamento in first frame of each row, fixes
Space Debris.mod (by Mirko Buffoni)
- add amplification factor option (by Mirko Buffoni)
- improved Winamp plugin (by Mirko Buffoni)
- don't unlink open files (for Windows port, by Mirko Buffoni)
- add experimental DxF/DFx handling with volume slides in all frames
- add better Archimedes .arc compressed file test
- reverted to older YM3812 emulator for license compliance
- fix byte swap error in HSC to SBI Adlib OPL2 instrument conversion
- fix Reality Adlib tracker loader
- implement Adlib OPL2 synth volume setting
- improve tempo, tuning and envelope of HSC modules
- fix scanning of patterns containing short tracks
- don't play notes outside the valid 8 octave note range
- enable The Player 5.0A loader (tested with Full Moon mods)
- enable ProPacker 2.1 loader (tested with Cool World mods)
- fix endianism issues in The Player 5.0 and 6.0 loaders
- fix AMF track remapping error
- enable instrument retriggering quirk in IT loader
- configuration file moved back to /etc
- fix estimated tempo for S3M/IT modules with BPM changes
Diffstat (limited to 'audio/xmp')
-rw-r--r-- | audio/xmp/Makefile | 19 | ||||
-rw-r--r-- | audio/xmp/PLIST | 5 | ||||
-rw-r--r-- | audio/xmp/distinfo | 15 | ||||
-rw-r--r-- | audio/xmp/options.mk | 50 | ||||
-rw-r--r-- | audio/xmp/patches/patch-ac | 14 | ||||
-rw-r--r-- | audio/xmp/patches/patch-ag | 12 | ||||
-rw-r--r-- | audio/xmp/patches/patch-ah | 13 | ||||
-rw-r--r-- | audio/xmp/patches/patch-al | 13 | ||||
-rw-r--r-- | audio/xmp/patches/patch-am | 16 | ||||
-rw-r--r-- | audio/xmp/patches/patch-etc_Makefile | 19 | ||||
-rw-r--r-- | audio/xmp/patches/patch-src_drivers_netbsd.c | 13 |
11 files changed, 91 insertions, 98 deletions
diff --git a/audio/xmp/Makefile b/audio/xmp/Makefile index bd56c396b90..831e7132c09 100644 --- a/audio/xmp/Makefile +++ b/audio/xmp/Makefile @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.24 2010/11/20 18:09:15 shattered Exp $ +# $NetBSD: Makefile,v 1.25 2011/04/05 05:22:52 rxg Exp $ -DISTNAME= xmp-2.5.1 +DISTNAME= xmp-3.3.0 CATEGORIES= audio MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=xmp/} @@ -13,27 +13,18 @@ PKG_DESTDIR_SUPPORT= user-destdir MAKE_JOBS_SAFE= no GNU_CONFIGURE= yes -CONFIGURE_ARGS+=--disable-alsa \ - --disable-oss \ - --disable-xmms \ - --sysconfdir=${PKG_SYSCONFDIR} +CONFIGURE_ARGS+=--sysconfdir=${PKG_SYSCONFDIR} USE_TOOLS+= gmake pkg-config EGDIR= ${PREFIX}/share/examples/xmp -CONF_FILES= ${EGDIR}/xmp-modules.conf ${PKG_SYSCONFDIR}/xmp-modules.conf -CONF_FILES+= ${EGDIR}/xmp.conf ${PKG_SYSCONFDIR}/xmp.conf +CONF_FILES= ${EGDIR}/modules.conf ${PKG_SYSCONFDIR}/xmp/modules.conf +CONF_FILES+= ${EGDIR}/xmp.conf ${PKG_SYSCONFDIR}/xmp/xmp.conf INSTALLATION_DIRS= bin ${PKGMANDIR}/man1 ${EGDIR} INSTALL_MAKE_FLAGS+= INSTALL=${INSTALL:Q} .include "options.mk" -.include "../../mk/bsd.prefs.mk" - -.if ${OPSYS} == "Darwin" || ${OPSYS} == "Interix" -# No native support for these OS's, so use esound for audio output -.include "../../audio/esound/buildlink3.mk" -.endif .include "../../mk/bsd.pkg.mk" diff --git a/audio/xmp/PLIST b/audio/xmp/PLIST index a6080867fc3..772d1974345 100644 --- a/audio/xmp/PLIST +++ b/audio/xmp/PLIST @@ -1,5 +1,6 @@ -@comment $NetBSD: PLIST,v 1.4 2009/06/14 17:32:26 joerg Exp $ +@comment $NetBSD: PLIST,v 1.5 2011/04/05 05:22:52 rxg Exp $ bin/xmp man/man1/xmp.1 -share/examples/xmp/xmp-modules.conf +share/examples/xmp/modules.conf share/examples/xmp/xmp.conf +@pkgdir etc/xmp diff --git a/audio/xmp/distinfo b/audio/xmp/distinfo index 0888394b412..1bf0aab07fc 100644 --- a/audio/xmp/distinfo +++ b/audio/xmp/distinfo @@ -1,10 +1,7 @@ -$NetBSD: distinfo,v 1.11 2009/02/07 21:10:48 joerg Exp $ +$NetBSD: distinfo,v 1.12 2011/04/05 05:22:52 rxg Exp $ -SHA1 (xmp-2.5.1.tar.gz) = 20ce22f453e49adb590b3cbd3ae3e812eb7de4ee -RMD160 (xmp-2.5.1.tar.gz) = 5fcd7f62b34424e5848806244485d5960a068cc8 -Size (xmp-2.5.1.tar.gz) = 772595 bytes -SHA1 (patch-ac) = 5831f36e9b13c9e658c7e204b3fdb33f08e560d0 -SHA1 (patch-ag) = 813d3c73334cb025b2900d398fb8be8ec2b42d22 -SHA1 (patch-ah) = 0807af0d328f578cacf121d12370cd59841d9924 -SHA1 (patch-al) = d909468c772325acf3d5e16daeaf7e62a36c7582 -SHA1 (patch-am) = d22d3310225f070327ec891046bd5113b6352251 +SHA1 (xmp-3.3.0.tar.gz) = 78dee859903d0accd6d8a0f6373a95bf50d023db +RMD160 (xmp-3.3.0.tar.gz) = 60e7f43a13cfee3afcc312f79453b709782a2596 +Size (xmp-3.3.0.tar.gz) = 848652 bytes +SHA1 (patch-etc_Makefile) = 86844aab3f490f857c92096e088df9463c2617d6 +SHA1 (patch-src_drivers_netbsd.c) = 39196154d1a52d3962540e6f2d175f0e9280449c diff --git a/audio/xmp/options.mk b/audio/xmp/options.mk index ccb511db06a..69d492af057 100644 --- a/audio/xmp/options.mk +++ b/audio/xmp/options.mk @@ -1,15 +1,55 @@ -# $NetBSD: options.mk,v 1.1 2009/01/10 09:41:05 shattered Exp $ +# $NetBSD: options.mk,v 1.2 2011/04/05 05:22:52 rxg Exp $ PKG_OPTIONS_VAR= PKG_OPTIONS.xmp -PKG_SUPPORTED_OPTIONS= pulseaudio -PKG_SUGGESTED_OPTIONS= pulseaudio +PKG_SUPPORTED_OPTIONS= alsa arts esound nas oss pulseaudio + +.include "../../mk/bsd.prefs.mk" + +.if ${OPSYS} == "Linux" +PKG_SUGGESTED_OPTIONS= alsa +.elif ${OPSYS} == "Darwin" || ${OPSYS} == "Interix" +# No native support for these OS's, so use esound for audio output +PKG_SUGGESTED_OPTIONS= esound +.endif +PKG_SUGGESTED_OPTIONS+= pulseaudio .include "../../mk/bsd.options.mk" +# Alsa support +.if !empty(PKG_OPTIONS:Malsa) +. include "../../audio/alsa-lib/buildlink3.mk" +.else +CONFIGURE_ARGS+=--disable-alsa +.endif + +# Arts support +.if !empty(PKG_OPTIONS:Marts) +CONFIGURE_ARGS+=--enable-arts +. include "../../audio/arts/buildlink3.mk" +.endif + +# Esd support +.if !empty(PKG_OPTIONS:Mesound) +CONFIGURE_ARGS+=--enable-esd +. include "../../audio/esound/buildlink3.mk" +.endif + +# Nas support +.if !empty(PKG_OPTIONS:Mnas) +CONFIGURE_ARGS+=--enable-nas +. include "../../audio/nas/buildlink3.mk" +.endif + +# Oss support +.if !empty(PKG_OPTIONS:Moss) +# empty +.else +CONFIGURE_ARGS+=--disable-oss +CONFIGURE_ARGS+=--disable-oss-sequencer +.endif + # Pulseaudio support .if !empty(PKG_OPTIONS:Mpulseaudio) CONFIGURE_ARGS+=--enable-pulseaudio . include "../../audio/pulseaudio/buildlink3.mk" -.else -CONFIGURE_ARGS+=--disable-pulseaudio .endif diff --git a/audio/xmp/patches/patch-ac b/audio/xmp/patches/patch-ac deleted file mode 100644 index 60724dade43..00000000000 --- a/audio/xmp/patches/patch-ac +++ /dev/null @@ -1,14 +0,0 @@ -$NetBSD: patch-ac,v 1.5 2009/02/07 21:10:48 joerg Exp $ - ---- etc/Makefile.orig 2007-10-23 11:28:30.000000000 +0000 -+++ etc/Makefile -@@ -14,7 +14,6 @@ subdist:: all - include $(TOPDIR)/Makefile.rules - - install:: -- @echo Installing xmp.conf and xmp-modules.conf in $(SYSCONFDIR)... -- @[ -d $(DESTDIR)$(SYSCONFDIR) ] || mkdir -p $(DESTDIR)$(SYSCONFDIR) -- $(INSTALL) -m644 xmp.conf xmp-modules.conf $(DESTDIR)$(SYSCONFDIR)/ -+ @echo Installing xmp.conf and xmp-modules.conf in ${DESTDIR}$(datarootdir)/examples/xmp... -+ $(INSTALL) -m644 xmp.conf xmp-modules.conf ${DESTDIR}$(datarootdir)/examples/xmp - diff --git a/audio/xmp/patches/patch-ag b/audio/xmp/patches/patch-ag deleted file mode 100644 index 292dd0fe0c2..00000000000 --- a/audio/xmp/patches/patch-ag +++ /dev/null @@ -1,12 +0,0 @@ -$NetBSD: patch-ag,v 1.2 2009/01/09 20:43:53 shattered Exp $ - ---- configure.orig 2007-12-03 00:32:25.000000000 +0000 -+++ configure -@@ -1851,7 +1851,6 @@ CINCS="${CPPFLAGS}" - PLUGINS="" - - --LDFLAGS="" - - - DRIVERS="" diff --git a/audio/xmp/patches/patch-ah b/audio/xmp/patches/patch-ah deleted file mode 100644 index 93a7ddfbd2e..00000000000 --- a/audio/xmp/patches/patch-ah +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-ah,v 1.2 2009/01/09 20:43:53 shattered Exp $ - ---- src/Makefile.orig 2007-10-21 12:59:15.000000000 +0000 -+++ src/Makefile -@@ -4,7 +4,7 @@ - TOPDIR = ../ - DFILES = Makefile - _DIRS = drivers include loaders prowizard player misc main plugin --DDIRS = $(_DIRS) os2 -+DDIRS = $(_DIRS) - CFILES = - DCFILES = - diff --git a/audio/xmp/patches/patch-al b/audio/xmp/patches/patch-al deleted file mode 100644 index ad781d60a0e..00000000000 --- a/audio/xmp/patches/patch-al +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-al,v 1.2 2009/01/09 20:43:53 shattered Exp $ - ---- src/drivers/netbsd.c.orig 2007-11-11 16:06:52.000000000 +0000 -+++ src/drivers/netbsd.c -@@ -182,7 +182,7 @@ static void bufdump(struct xmp_context * - while (i) { - if ((j = write (audio_fd, b, i)) > 0) { - i -= j; -- (char *)b += j; -+ b = (char *)b + j; - } else - break; - } diff --git a/audio/xmp/patches/patch-am b/audio/xmp/patches/patch-am deleted file mode 100644 index 68ed675042f..00000000000 --- a/audio/xmp/patches/patch-am +++ /dev/null @@ -1,16 +0,0 @@ -$NetBSD: patch-am,v 1.2 2009/01/09 20:43:53 shattered Exp $ - ---- src/loaders/mdl_load.c.orig 2007-11-12 22:12:40.000000000 +0000 -+++ src/loaders/mdl_load.c -@@ -181,8 +181,9 @@ static unsigned int get_bits(char i, uin - unsigned int x; - - if (i == 0) { -- b = *((uint32 *)(*buf)); -- *buf += 4; *len -= 4; -+ (void)memcpy(&b, *buf, sizeof(b)); -+ *buf += sizeof(b); -+ *len -= sizeof(b); - n = 32; - return 0; - } diff --git a/audio/xmp/patches/patch-etc_Makefile b/audio/xmp/patches/patch-etc_Makefile new file mode 100644 index 00000000000..260af7ad06d --- /dev/null +++ b/audio/xmp/patches/patch-etc_Makefile @@ -0,0 +1,19 @@ +$NetBSD: patch-etc_Makefile,v 1.1 2011/04/05 05:22:52 rxg Exp $ + +--- etc/Makefile.orig 2010-01-09 22:34:20.000000000 +0000 ++++ etc/Makefile +@@ -4,10 +4,10 @@ ETC_PATH = etc + + install-etc: + @[ -d $(DESTDIR)$(SYSCONFDIR) ] || mkdir -p $(DESTDIR)$(SYSCONFDIR) +- @echo "Installing xmp.conf in $(SYSCONFDIR)" +- @$(INSTALL_DATA) $(ETC_PATH)/xmp.conf $(DESTDIR)$(SYSCONFDIR)/ +- @echo "Installing modules.conf in $(SYSCONFDIR)" +- @$(INSTALL_DATA) $(ETC_PATH)/modules.conf $(DESTDIR)$(SYSCONFDIR)/ ++ @echo "Installing xmp.conf in ${DESTDIR}$(datarootdir)/examples/xmp" ++ @$(INSTALL_DATA) $(ETC_PATH)/xmp.conf $(DESTDIR)$(datarootdir)/examples/xmp/ ++ @echo "Installing modules.conf in ${DESTDIR}$(datarootdir)/examples/xmp" ++ @$(INSTALL_DATA) $(ETC_PATH)/modules.conf $(DESTDIR)$(datarootdir)/examples/xmp/ + + dist-etc: + mkdir -p $(DIST)/$(ETC_PATH) diff --git a/audio/xmp/patches/patch-src_drivers_netbsd.c b/audio/xmp/patches/patch-src_drivers_netbsd.c new file mode 100644 index 00000000000..36b7565d878 --- /dev/null +++ b/audio/xmp/patches/patch-src_drivers_netbsd.c @@ -0,0 +1,13 @@ +$NetBSD: patch-src_drivers_netbsd.c,v 1.1 2011/04/05 05:22:52 rxg Exp $ + +--- src/drivers/netbsd.c.orig 2010-01-09 22:34:20.000000000 +0000 ++++ src/drivers/netbsd.c +@@ -174,7 +174,7 @@ static void bufdump(struct xmp_context * + while (i) { + if ((j = write(audio_fd, b, i)) > 0) { + i -= j; +- (char *)b += j; ++ b = (char *)b + j; + } else + break; + } |