From d0740d4c682660c3064411edbbcf0b3289c7bdc6 Mon Sep 17 00:00:00 2001 From: dsainty Date: Tue, 13 Jun 2006 13:24:35 +0000 Subject: Update Xbeeb to 0.4.1: - Support TrueColor displays - Better sound - .inf file attributes - Simplified NetBSD sound support with OSS compatibility - Provided a working MASTER_SITES - Took maintainership --- emulators/xbeeb/MESSAGE | 12 +++- emulators/xbeeb/Makefile | 50 +++++++++++---- emulators/xbeeb/PLIST | 7 +- emulators/xbeeb/distinfo | 14 ++-- emulators/xbeeb/files/xbeeb.1 | 4 +- emulators/xbeeb/patches/patch-ab | 135 ++++----------------------------------- emulators/xbeeb/patches/patch-ad | 37 +++++++---- emulators/xbeeb/patches/patch-ae | 32 ++++++++++ emulators/xbeeb/patches/patch-af | 39 +++++++++++ 9 files changed, 171 insertions(+), 159 deletions(-) create mode 100644 emulators/xbeeb/patches/patch-ae create mode 100644 emulators/xbeeb/patches/patch-af diff --git a/emulators/xbeeb/MESSAGE b/emulators/xbeeb/MESSAGE index 51bac34a622..685105663e3 100644 --- a/emulators/xbeeb/MESSAGE +++ b/emulators/xbeeb/MESSAGE @@ -1,5 +1,5 @@ =========================================================================== -$NetBSD: MESSAGE,v 1.3 2003/05/06 17:41:11 jmmv Exp $ +$NetBSD: MESSAGE,v 1.4 2006/06/13 13:24:35 dsainty Exp $ You must copy the BBC "BASIC2" ROM image to @@ -9,6 +9,16 @@ and the BBC "OS1.2" ROM image to ${PREFIX}/${XBEEBROOT}/roms/OS1.2.rom +As an alternative to extracting these ROM images from your own BBC hardware, +archives of these ROM images may also be found at: + + http://bbc.nvg.org/rom/Acorn/lang/BASIC2.rom + http://bbc.nvg.org/rom/Acorn/os/OS-1.2.rom + +The emulator expects files in the chosen directory to have matching +.inf files containing the BBC file attributes. This is the style +that many archives found on the Internet use. + You also need to ensure that your X session can access the fonts needed. This can be done with: diff --git a/emulators/xbeeb/Makefile b/emulators/xbeeb/Makefile index 99fd12269fa..8cfd454c62c 100644 --- a/emulators/xbeeb/Makefile +++ b/emulators/xbeeb/Makefile @@ -1,19 +1,16 @@ -# $NetBSD: Makefile,v 1.17 2006/02/17 19:27:33 wiz Exp $ +# $NetBSD: Makefile,v 1.18 2006/06/13 13:24:35 dsainty Exp $ # -DISTNAME= xbeeb-0.3.6 -PKGREVISION= 2 +DISTNAME= xbeeb-0.4.1 CATEGORIES= emulators x11 -MASTER_SITES= ftp://ftp.netcom.net.uk/pub/Micros/BBC/Emulators/Xbeeb/ -# for 0.4.1 -#MASTER_SITES= http://www.getafile.com/cgi-bin/merlot/get/james/xbeeb/ +MASTER_SITES= http://bbc.nvg.org/emul/Xbeeb/ \ + http://www.getafile.com/cgi-bin/merlot/get/james/xbeeb/ EXTRACT_SUFX= .tgz -MAINTAINER= skrll@NetBSD.org +MAINTAINER= dsainty@NetBSD.org HOMEPAGE= http://www.cloud9.co.uk/james/BBCMicro/Xbeeb/ COMMENT= Acorn BBC Micro emulator with an X based interface -WRKSRC= ${WRKDIR}/xbeeb USE_IMAKE= yes MAN_PAGE= ${WRKDIR}/xbeeb.1 @@ -26,14 +23,39 @@ REQD_DIRS= ${PREFIX}/lib/X11/fonts/xbeeb INSTALLATION_DIRS= bin man/man1 +PKG_OPTIONS_VAR= PKG_OPTIONS.xbeeb +PKG_SUPPORTED_OPTIONS= mitshm +PKG_SUGGESTED_OPTIONS= + +.include "../../mk/bsd.options.mk" + +# The emulator can be compiled either to use MIT-SHM, or to not. +# Unfortunately it doesn't support both at once. +.if empty(PKG_OPTIONS:Mmitshm) +SUBST_CLASSES+= nomitshm +SUBST_STAGE.nomitshm= post-patch +SUBST_MESSAGE.nomitshm= Disabling MIT-SHM +SUBST_FILES.nomitshm= src/Config.h +SUBST_SED.nomitshm= -e "s|\#define *MITSHM|\#undef MITSHM|" +.endif + +SUBST_CLASSES+= dsp +SUBST_STAGE.dsp= post-patch +SUBST_MESSAGE.dsp= Adjusting sound device path. +SUBST_FILES.dsp= src/SoundOSS.c +SUBST_SED.dsp= -e "s|\"/dev/dsp\"|\"${DEVOSSAUDIO}\"|" + +SUBST_CLASSES+= beebroot +SUBST_STAGE.beebroot= post-patch +SUBST_MESSAGE.beebroot= Adjusting XBEEBROOT path. +SUBST_FILES.beebroot= src/Config.h +SUBST_SED.beebroot= -e "s|^\(\#define[ ]*XBEEBROOT[ ]*\)[^ ].*$$|\1\"${PREFIX}/${XBEEBROOT}/\"|" + # xbeeb build starts in the source directory do-configure: - cd ${WRKSRC}/src && ${XMKMF} + cd ${WRKSRC}/src && ${XMKMF_CMD} post-patch: - (cd ${WRKSRC}/src && \ - ${MV} Config.h Config.h.dist && \ - ${SED} 's+^\(#define[ ]*XBEEBROOT[ ]*\)[^ ].*$$+\1"${PREFIX}/${XBEEBROOT}/"+' Config.h.dist > Config.h) ${SED} -e 's+@XBEEBROOT@+${XBEEBROOT}+g' \ -e 's+@PREFIX@+${PREFIX}+g' \ ${FILESDIR}/xbeeb.1 > ${MAN_PAGE} @@ -53,11 +75,13 @@ do-install: ${INSTALL_DATA_DIR} ${PREFIX}/${XBEEBROOT}/roms ${INSTALL_DATA_DIR} ${PREFIX}/${XBEEBROOT}/docs ${INSTALL_DATA_DIR} ${PREFIX}/lib/X11/fonts/xbeeb - ${INSTALL_DATA} ${WRKSRC}/roms/xdfs0.70.rom ${PREFIX}/${XBEEBROOT}/roms/xdfs0.70.rom + ${INSTALL_DATA} ${WRKSRC}/roms/xdfs0.90.rom ${PREFIX}/${XBEEBROOT}/roms/xdfs0.90.rom for docfile in ${WRKSRC}/doc/*; do \ ${INSTALL_DATA} $$docfile ${PREFIX}/${XBEEBROOT}/docs; \ done ${CP} ${WRKSRC}/fonts/*.pcf ${PREFIX}/lib/X11/fonts/xbeeb mkfontdir ${PREFIX}/lib/X11/fonts/xbeeb +.include "../../mk/oss.buildlink3.mk" +.include "../../mk/x11.buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/emulators/xbeeb/PLIST b/emulators/xbeeb/PLIST index e29098b9bdf..281a106aca1 100644 --- a/emulators/xbeeb/PLIST +++ b/emulators/xbeeb/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.2 2006/02/17 19:27:33 wiz Exp $ +@comment $NetBSD: PLIST,v 1.3 2006/06/13 13:24:35 dsainty Exp $ bin/xbeeb lib/X11/fonts/xbeeb/ttext-grc-ldh.pcf lib/X11/fonts/xbeeb/ttext-std-udh.pcf @@ -10,8 +10,10 @@ lib/X11/fonts/xbeeb/ttext-grc.pcf lib/X11/fonts/xbeeb/ttext-grc-udh.pcf lib/X11/fonts/xbeeb/ttext-std.pcf man/man1/xbeeb.1 -${XBEEBROOT}/roms/xdfs0.70.rom +${XBEEBROOT}/roms/xdfs0.90.rom ${XBEEBROOT}/docs/64doc +${XBEEBROOT}/docs/Changes-v0.3 +${XBEEBROOT}/docs/Changes-v0.4 ${XBEEBROOT}/docs/Configuration ${XBEEBROOT}/docs/DataXfer ${XBEEBROOT}/docs/DiskEmulation @@ -25,7 +27,6 @@ ${XBEEBROOT}/docs/RomPatches ${XBEEBROOT}/docs/SnapshotFormat ${XBEEBROOT}/docs/Thanks ${XBEEBROOT}/docs/WWWSites -${XBEEBROOT}/docs/WorkingSoftware @dirrm ${XBEEBROOT}/docs @dirrm ${XBEEBROOT}/roms @dirrm ${XBEEBROOT} diff --git a/emulators/xbeeb/distinfo b/emulators/xbeeb/distinfo index 998b8df8905..4014e02aceb 100644 --- a/emulators/xbeeb/distinfo +++ b/emulators/xbeeb/distinfo @@ -1,9 +1,11 @@ -$NetBSD: distinfo,v 1.3 2005/02/23 18:49:22 agc Exp $ +$NetBSD: distinfo,v 1.4 2006/06/13 13:24:35 dsainty Exp $ -SHA1 (xbeeb-0.3.6.tgz) = 233f9a3bacfdcb4b6e17ee8e22c712a1c05983d6 -RMD160 (xbeeb-0.3.6.tgz) = 8dfe86613f1e678ad257134c4fdf3d17a0e0a378 -Size (xbeeb-0.3.6.tgz) = 270231 bytes +SHA1 (xbeeb-0.4.1.tgz) = 5e2fccfabd0aa5a656758b2ea0536570a790dabe +RMD160 (xbeeb-0.4.1.tgz) = 67dba3262f7e5886a86e5656288d807fea540d9b +Size (xbeeb-0.4.1.tgz) = 351715 bytes SHA1 (patch-aa) = 68b91908397147aecf1e1644f597802d6380aa96 -SHA1 (patch-ab) = 96ad3aa048ed224757ca51e0abe43baeaaceacdb +SHA1 (patch-ab) = 7bcdfb9b15e8ef2349325bf2b23a662cba914a5c SHA1 (patch-ac) = 72622acf9671ac0f72bd9b8271fc17f25d3655f1 -SHA1 (patch-ad) = 120be917d8b0ffa83c537e7a4b9a86f354e46886 +SHA1 (patch-ad) = 733916029e94e65ee7702778ce344468ab3cf658 +SHA1 (patch-ae) = 00906d13e5dd9ec03f011053e7399fac581efc3d +SHA1 (patch-af) = 62c888cc324742142d7a95c9db55067daba4dacd diff --git a/emulators/xbeeb/files/xbeeb.1 b/emulators/xbeeb/files/xbeeb.1 index a5baea47a16..b791445f2a6 100644 --- a/emulators/xbeeb/files/xbeeb.1 +++ b/emulators/xbeeb/files/xbeeb.1 @@ -1,4 +1,4 @@ -.\" $NetBSD: xbeeb.1,v 1.3 2004/02/01 00:15:04 snj Exp $ +.\" $NetBSD: xbeeb.1,v 1.4 2006/06/13 13:24:35 dsainty Exp $ .\" .Dd May 27, 2000 .Dt XBEEB 1 @@ -136,7 +136,7 @@ The sectory number is unused in this emulation - it's there for the sake of completeness and maybe used in the future. .Sh FILES -.Bl -tag -width @PREFIX@/@XBEEBROOT@/roms/xdfs0.70.rom -compact +.Bl -tag -width @PREFIX@/@XBEEBROOT@/roms/xdfs0.90.rom -compact .It Pa @PREFIX@/@XBEEBROOT@/roms/OS1.2.rom the Operating System rom image .It Pa @PREFIX@/@XBEEBROOT@/roms/BASIC2.rom diff --git a/emulators/xbeeb/patches/patch-ab b/emulators/xbeeb/patches/patch-ab index b4aa7f2e3c9..54802f55617 100644 --- a/emulators/xbeeb/patches/patch-ab +++ b/emulators/xbeeb/patches/patch-ab @@ -1,123 +1,16 @@ -$NetBSD: patch-ab,v 1.1.1.1 2000/05/22 22:13:12 skrll Exp $ +$NetBSD: patch-ab,v 1.2 2006/06/13 13:24:36 dsainty Exp $ ---- src/VoxWare.c Fri Oct 11 10:53:13 1996 -+++ src/VoxWare.c Sat Apr 29 18:29:53 2000 -@@ -51,6 +51,7 @@ - - #include - #include -+#include - #include - - #include "Config.h" -@@ -60,7 +61,73 @@ - #include - #include - #include --#include -+#include -+ -+/* Pseudo controllers (not midi compatible) */ -+#define CTRL_PITCH_BENDER 255 -+#define CTRL_PITCH_BENDER_RANGE 254 -+#define CTL_PAN 0x0a -+ -+/* Linux -> NetBSD */ -+#define EV_CHN_COMMON SEQ_CHN_COMMON -+#define EV_CHN_VOICE SEQ_CHN_VOICE -+#define SEQ_CONTROLLER SEQOLD_CONTROLLER -+#define SEQ_EXTENDED SEQOLD_EXTENDED -+ -+/* Missing soundcard.h definitions */ -+#define SEQ_PGM_CHANGE(dev, chn, patch) \ -+ _CHN_COMMON(dev, MIDI_PGM_CHANGE, chn, patch, 0, 0) -+#define SEQ_SET_PATCH SEQ_PGM_CHANGE -+ -+#define _CHN_COMMON(dev, event, chn, p1, p2, w14) \ -+ {_SEQ_NEEDBUF(8);\ -+ _seqbuf[_seqbufptr] = EV_CHN_COMMON;\ -+ _seqbuf[_seqbufptr+1] = (dev);\ -+ _seqbuf[_seqbufptr+2] = (event);\ -+ _seqbuf[_seqbufptr+3] = (chn);\ -+ _seqbuf[_seqbufptr+4] = (p1);\ -+ _seqbuf[_seqbufptr+5] = (p2);\ -+ *(short *)&_seqbuf[_seqbufptr+6] = (w14);\ -+ _SEQ_ADVBUF(8);} -+#define SEQ_V2_X_CONTROL(dev, voice, controller, value) {_SEQ_NEEDBUF(8);\ -+ _seqbuf[_seqbufptr] = SEQ_EXTENDED;\ -+ _seqbuf[_seqbufptr+1] = SEQ_CONTROLLER;\ -+ _seqbuf[_seqbufptr+2] = (dev);\ -+ _seqbuf[_seqbufptr+3] = (voice);\ -+ _seqbuf[_seqbufptr+4] = (controller);\ -+ _seqbuf[_seqbufptr+5] = ((value)&0xff);\ -+ _seqbuf[_seqbufptr+6] = ((value>>8)&0xff);\ -+ _seqbuf[_seqbufptr+7] = 0;\ -+ _SEQ_ADVBUF(8);} -+#define _CHN_VOICE(dev, event, chn, note, parm) \ -+ {_SEQ_NEEDBUF(8);\ -+ _seqbuf[_seqbufptr] = EV_CHN_VOICE;\ -+ _seqbuf[_seqbufptr+1] = (dev);\ -+ _seqbuf[_seqbufptr+2] = (event);\ -+ _seqbuf[_seqbufptr+3] = (chn);\ -+ _seqbuf[_seqbufptr+4] = (note);\ -+ _seqbuf[_seqbufptr+5] = (parm);\ -+ _seqbuf[_seqbufptr+6] = (0);\ -+ _seqbuf[_seqbufptr+7] = 0;\ -+ _SEQ_ADVBUF(8);} -+ -+#define SEQ_START_NOTE(dev, chn, note, vol) \ -+ _CHN_VOICE(dev, MIDI_NOTEON, chn, note, vol) -+ -+#define SEQ_STOP_NOTE(dev, chn, note, vol) \ -+ _CHN_VOICE(dev, MIDI_NOTEOFF, chn, note, vol) -+ -+#define SEQ_PITCHBEND(dev, voice, value) SEQ_V2_X_CONTROL(dev, voice, CTRL_PITCH_BENDER, value) -+#define SEQ_BENDER_RANGE(dev, voice, value) SEQ_V2_X_CONTROL(dev, voice, CTRL_PITCH_BENDER_RANGE, value) -+#define SEQ_CONTROL(dev, chn, controller, value) \ -+ _CHN_COMMON(dev, MIDI_CTL_CHANGE, chn, controller, 0, value) -+#define SEQ_PANNING(dev, voice, pos) SEQ_CONTROL(dev, voice, CTL_PAN, (pos+128) / 2) -+#define SEQ_DEFINEBUF(len) unsigned char _seqbuf[len]; int _seqbuflen = len;int _seqbufptr = 0 -+#define _SEQ_ADVBUF(len) _seqbufptr += len -+#define _SEQ_NEEDBUF(len) if ((_seqbufptr+(len)) > _seqbuflen) seqbuf_dump() -+#define SEQ_DUMPBUF seqbuf_dump -+ -+void seqbuf_dump(); - - #include "VoxWare.h" - -@@ -152,7 +219,7 @@ - * check to see if any synth devices are available - */ - -- ioctl ( SequencerFD, SNDCTL_SEQ_NRSYNTHS, &NoDevs ); -+ ioctl ( SequencerFD, SEQUENCER_NRSYNTHS, &NoDevs ); - if ( !NoDevs ) - { - fprintf( stderr, "No synth devices available, disabling sound.\n"); -@@ -170,7 +237,7 @@ - for ( i = 0; i < NoDevs; i++ ) - { - info.device = i; -- ioctl ( SequencerFD, SNDCTL_SYNTH_INFO, &info ); -+ ioctl ( SequencerFD, SEQUENCER_INFO, &info ); - if ( info.synth_type == SYNTH_TYPE_FM ) - SynthDevNo = i; - break; -@@ -185,7 +252,7 @@ - SoundEnabled = 1; - - info.device = SynthDevNo; -- ioctl ( SequencerFD, SNDCTL_SYNTH_INFO, &info ); -+ ioctl ( SequencerFD, SEQUENCER_INFO, &info ); +Make sure ioctl() gets a third dummy argument, for the three argument macro +defined in the NetBSD OSS emulation soundcard.h. + +--- src/SoundOSS.c.orig 2002-01-16 04:46:43.000000000 +1300 ++++ src/SoundOSS.c 2006-06-03 18:25:08.000000000 +1200 +@@ -106,7 +106,7 @@ + return; + } - #ifdef SOUND_DEBUG - printf ( "Synth device %d info:\n", SynthDevNo ); -@@ -199,7 +266,7 @@ - for ( j = 0; j < 4; j++ ) - { - Instr.channel = j; -- Instr.key = FM_PATCH; -+ Instr.key = SBI_FM_PATCH; - Instr.device = SynthDevNo; - for ( i = 0; i < 16; i++ ) - { +- if ( ioctl ( SoundFD, SNDCTL_DSP_RESET ) < 0 ) { ++ if ( ioctl ( SoundFD, SNDCTL_DSP_RESET, &dummy ) < 0 ) { + fprintf ( stderr, "Can't reset sound device\n" ); + return; + } diff --git a/emulators/xbeeb/patches/patch-ad b/emulators/xbeeb/patches/patch-ad index 71af80291c8..f6fb5de5ffb 100644 --- a/emulators/xbeeb/patches/patch-ad +++ b/emulators/xbeeb/patches/patch-ad @@ -1,17 +1,28 @@ -$NetBSD: patch-ad,v 1.1.1.1 2000/05/22 22:13:12 skrll Exp $ +$NetBSD: patch-ad,v 1.2 2006/06/13 13:24:36 dsainty Exp $ ---- src/Config.h.orig Thu Oct 10 00:19:08 1996 -+++ src/Config.h Sun May 21 21:18:55 2000 -@@ -256,7 +256,7 @@ +The R65C02 is a generally more capable processor than the M6502, and a BBC B +can run almost all software with a R65C02 replacing its standard CPU. In +addition, the R65C02 allows running some software intended for the Master +series of microcomputer, making the R65C02 the more interesting CPU to +emulate. + +Since patch-ac modifies the OS1.2.rom on the fly, it is no longer necessary to +patch the ROM externally for EMUL_FS, so keep OS_ROM the same. + +--- src/Config.h.orig 2002-01-16 04:46:43.000000000 +1300 ++++ src/Config.h 2006-06-04 12:44:23.000000000 +1200 +@@ -290,8 +290,8 @@ + * Processor type */ - #ifndef XBEEBROOT --#define XBEEBROOT "/home/james/beeb/" -+#define XBEEBROOT "/usr/X11R6/share/xbeeb/" - #endif - #define XBEEBROMS XBEEBROOT"roms/" - #define XBEEBSNAPS XBEEBROOT"snaps/" -@@ -282,11 +282,7 @@ +-#define M6502 +-#undef R65C02 ++#undef M6502 ++#define R65C02 + #undef R65C12 + + /* +@@ -344,11 +344,7 @@ * Names of ROMs to load by default */ @@ -20,6 +31,6 @@ $NetBSD: patch-ad,v 1.1.1.1 2000/05/22 22:13:12 skrll Exp $ -#else #define OS_ROM "OS1.2.rom" -#endif - #define LANG_ROM "BASIC2.rom" - #ifdef XDFS + #ifdef M6502 + #define LANG_ROM "BASIC2.rom" diff --git a/emulators/xbeeb/patches/patch-ae b/emulators/xbeeb/patches/patch-ae new file mode 100644 index 00000000000..5a9cba86ed1 --- /dev/null +++ b/emulators/xbeeb/patches/patch-ae @@ -0,0 +1,32 @@ +$NetBSD: patch-ae,v 1.1 2006/06/13 13:24:36 dsainty Exp $ + +Don't fail if the display has multiple visuals. Just default to the default +one and don't concern ourselves with the others. + +Check if MIT-SHM is available before trying XShmQueryVersion(), since +XShmQueryVersion() will abort outright if MIT-SHM isn't available. + +--- src/Screen.c.orig 2002-01-16 04:46:43.000000000 +1300 ++++ src/Screen.c 2006-06-03 19:08:48.000000000 +1200 +@@ -286,11 +286,6 @@ + VisualTmpl.depth = DefDepth; + MyVisual = XGetVisualInfo ( dpy, VisualScreenMask | VisualDepthMask, + &VisualTmpl, &visuals ); +- if ( visuals != 1 ) { +- fprintf ( stderr, "can't handle default screen with multiple " +- "visuals\n" ); +- exit ( 1 ); +- } + VisualClass = MyVisual->class; + XFree ( MyVisual ); + +@@ -381,7 +376,8 @@ + * See if we can use shared memory + */ + +- if ( XShmQueryVersion ( dpy, &dummy, &dummy, &SharedPixmapSupport )) ++ if ( XShmQueryExtension ( dpy ) && ++ XShmQueryVersion ( dpy, &dummy, &dummy, &SharedPixmapSupport )) + { + if ( SharedPixmapSupport ) + { diff --git a/emulators/xbeeb/patches/patch-af b/emulators/xbeeb/patches/patch-af new file mode 100644 index 00000000000..28876f767bf --- /dev/null +++ b/emulators/xbeeb/patches/patch-af @@ -0,0 +1,39 @@ +$NetBSD: patch-af,v 1.1 2006/06/13 13:24:36 dsainty Exp $ + +Remove use of non-standard "a" modifier in scanf format. Under non-Linux +systems it is more likely to just core. + +--- src/InfFS.c.orig 2002-01-16 04:46:43.000000000 +1300 ++++ src/InfFS.c 2006-06-04 13:36:52.000000000 +1200 +@@ -1516,24 +1516,23 @@ + if ( !access ( beebfile, R_OK ) && + ( cat_fp = fopen ( entry->d_name, "r" ))) { + if ( fgets ( buff, 79, cat_fp ) > 0 ) { ++ char locked[10]; + /* + * FIX ME + * Check for errors from malloc and sscanf + */ + p = malloc ( sizeof ( FileInfoL )); +- sscanf ( buff, "%*s %X %X %as", +- &(p->info.LoadAddress), &(p->info.ExeAddress), &lock ); ++ locked[0] = '\0'; ++ sscanf ( buff, "%*s %X %X %9s", ++ &(p->info.LoadAddress), &(p->info.ExeAddress), locked); + p->info.StartSector = 0; + stat ( beebfile, &sb ); + p->info.FileLength = sb.st_size; +- if ( lock ) { + #ifdef XDFS +- if ( !strncmp ( lock, "Locked", 6 )) { +- p->info.LockFlag = 'L'; +- } +-#endif +- free ( lock ); ++ if ( !strncmp ( locked, "Locked", 6 )) { ++ p->info.LockFlag = 'L'; + } ++#endif + /* + * Filenames are right-padded with spaces initially. + */ -- cgit v1.2.3