Page 1 of 1

Apostrophes and Accented Characters

PostPosted: Sun Aug 14, 2016 6:55 pm
by icottrell
Is there a fix or a workaround for apostrophes and accented characters in file names under Windows (Win7)? I'm a new users of Serviio, running Win 7 x64 Ultimate and a lot of my filenames contain one or more of the above. I read the FAQ on this, but it referenced Linux only. Any help would be appreciated , since I really don't want to rename all the files, nor have them unavailable through Seriio. TIA.........................Ian

Re: Apostrophes and Accented Characters

PostPosted: Sun Aug 14, 2016 8:40 pm
by zip
So what is the problem actually? Are the files not added to the library, or just not being able to play? Are they on a local filesytem or remote drive?

Can you post detailed log of adding a file like that? I have files with apostrophies and don't see problems on Windows.

Re: Apostrophes and Accented Characters

PostPosted: Mon Aug 15, 2016 1:32 am
by icottrell
>So what is the problem actually? Are the files not added to the library, or just not being able to play? Are they on a local filesytem or remote drive?

>Can you post detailed log of adding a file like that? I have files with apostrophies and don't see problems on Windows.

The files are not being added to the library. They are on a local filesystem. The log entries look like this:

2016-08-13 15:19:56,557 DEBUG [PlaylistMaintainerWorker] Found playlist item that has not been added yet: E:\Music\MP3\Beatles\Beatles - All I�ve Got To Do.mp3
2016-08-13 15:19:56,557 DEBUG [MediaItemDAOImpl] Looking up a media item for file path: E:\Music\MP3\Beatles\Beatles - All I�ve Got To Do.mp3, ignore case: true
2016-08-13 15:19:56,558 DEBUG [PlaylistMaintainerWorker] Item 'E:\Music\MP3\Beatles\Beatles - All I�ve Got To Do.mp3' cannot be resolved to an entity in the Serviio library, will try again later
2016-08-13 15:19:56,558 DEBUG [PlaylistMaintainerWorker] Found playlist item that has not been added yet: E:\Music\MP3\Beatles\Beatles - Don�t Bother Me.mp3
2016-08-13 15:19:56,558 DEBUG [MediaItemDAOImpl] Looking up a media item for file path: E:\Music\MP3\Beatles\Beatles - Don�t Bother Me.mp3, ignore case: true
2016-08-13 15:19:56,558 DEBUG [PlaylistMaintainerWorker] Item 'E:\Music\MP3\Beatles\Beatles - Don�t Bother Me.mp3' cannot be resolved to an entity in the Serviio library, will try again later

Everything else works so well, it's a shame to miss these songs. I hope that this is what you need.....................Ian

Re: Apostrophes and Accented Characters

PostPosted: Tue Aug 16, 2016 12:44 pm
by zip
What is your locale in Windows? Are you using NTFS? Can you post the beginning of the serviio.log file?

Re: Apostrophes and Accented Characters

PostPosted: Wed Aug 17, 2016 1:45 am
by icottrell
> What is your locale in Windows? Are you using NTFS? Can you post the beginning of the serviio.log file?

My locale is English (Canada) and yes, it is an NTFS local volume (4 TB). I've just restarted the sevice and below is the start of the new log.

Thanks for this, Zip. I appreciate the help.......................Ian


2016-08-16 21:39:16,101 INFO [MediaServer] ------------------------------------------------------------------------
2016-08-16 21:39:16,101 INFO [MediaServer] Serviio DLNA media streaming server v 1.6.1 (rev. 34f326d2b259)
2016-08-16 21:39:16,101 INFO [MediaServer] Petr Nejedly 2009-2015
2016-08-16 21:39:16,101 INFO [MediaServer] http://www.serviio.org
2016-08-16 21:39:16,101 INFO [MediaServer]
2016-08-16 21:39:16,101 INFO [MediaServer] Java 1.8.0_40-Oracle Corporation x86
2016-08-16 21:39:16,101 INFO [MediaServer] OS Windows 7 6.1
2016-08-16 21:39:16,101 INFO [MediaServer] File encoding: windows-1252
2016-08-16 21:39:16,101 INFO [MediaServer] Headless mode enabled: true
2016-08-16 21:39:16,101 INFO [MediaServer] User: COTTRELL$
2016-08-16 21:39:16,101 INFO [MediaServer] User home dir: C:\Windows\system32\config\systemprofile
2016-08-16 21:39:16,101 INFO [MediaServer] Temp dir: C:\Windows\TEMP\
2016-08-16 21:39:16,101 INFO [MediaServer] ------------------------------------------------------------------------
2016-08-16 21:39:16,116 INFO [DBSchemaUpdateExecutor] Checking if DB schema needs to be updated
2016-08-16 21:39:16,163 INFO [DatabaseManager] Using DERBY database language
2016-08-16 21:39:16,896 INFO [WebServer] Socket buffer set to 65535 bytes
2016-08-16 21:39:16,896 INFO [RestletServer] Starting HTTP/1.1 Restlet server (/console) exposed on port 23423
2016-08-16 21:39:16,896 INFO [RestletServer] Starting HTTP/1.1 Restlet server (/rest) exposed on port 23423
2016-08-16 21:39:16,912 INFO [RestletServer] Starting HTTPS/1.1 Restlet server (/console) exposed on port 23523
2016-08-16 21:39:16,912 INFO [RestletServer] Starting HTTPS/1.1 Restlet server (/rest) exposed on port 23523
2016-08-16 21:39:17,255 INFO [RestletServer] Starting HTTP/1.1 Restlet server (/cds) exposed on port 23424
2016-08-16 21:39:17,255 INFO [RestletServer] Starting HTTP/1.1 Restlet server (/mediabrowser) exposed on port 23424
2016-08-16 21:39:17,255 INFO [RestletServer] Starting HTTPS/1.1 Restlet server (/cds) exposed on port 23524
2016-08-16 21:39:17,255 INFO [RestletServer] Starting HTTPS/1.1 Restlet server (/mediabrowser) exposed on port 23524
2016-08-16 21:39:17,349 INFO [MediaServer] ------------------------------------------------------------------------
2016-08-16 21:39:17,349 INFO [MediaServer] License: PRO (EVALUATION, id: 11111111-1111-1111-1111-111111111113)
2016-08-16 21:39:17,349 INFO [MediaServer] ------------------------------------------------------------------------
2016-08-16 21:39:17,832 INFO [Device] Created UPnP Device with UUID: d0559e82-f24d-30c8-9535-cba5ac2caffd, bound address: 192.168.53.1
2016-08-16 21:39:18,098 INFO [ProfilesDefinitionParser] Parsing Profiles definition
2016-08-16 21:39:18,144 INFO [ProfilesDefinitionParser] Added profile 'Generic DLNA profile' (id=1)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Samsung TV (B-series)' (id=2)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Xbox 360' (id=3)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Playstation 3' (id=4)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Playstation 4' (id=ps4)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Samsung TV (A-series)' (id=5)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'DirecTV HD-DVR' (id=6)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Samsung TV / player (H-series)' (id=sam_h)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Samsung TV / player (J-series)' (id=sam_j)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Samsung TV / player (E/F-series)' (id=sam_ef)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Samsung TV / player (C/D-series)' (id=7)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'LG TV / player' (id=8)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2012)' (id=sony2012)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2013/14)' (id=sony2013)
2016-08-16 21:39:18,160 INFO [ProfilesDefinitionParser] Added profile 'Sony BDP-Sx100 (2013)' (id=bdp2013)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sony BDP-Sx90 (2012)' (id=bdp2012)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sony BDP-Sx70/SMP-N100 (2010)' (id=bdp2010)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sony BDP-Sx70/SMP-N100 (2010) - US' (id=bdp2010us)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sony BDP-Sx80/SMP-N200 (2011)' (id=bdp2011)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Toshiba REGZA' (id=13)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Toshiba REGZA 2012-' (id=tosh2012)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'WDTV Live' (id=14)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'LaCie LaCinema Media Player' (id=15)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Manta WIFI Centre' (id=16)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Pure Flow' (id=17)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sharp Aquos' (id=18)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2011)' (id=sony2011)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2010)' (id=sony2010)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Philips (2010-)' (id=plps2010)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Philips (2009)' (id=20)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2009)' (id=sony2009)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Denon AVR' (id=22)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Panasonic Viera (2013)' (id=viera2013)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Panasonic Viera G/GT/DT/UT/VT (2011/2012)' (id=viera2011a)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Panasonic Viera E/S/ST/VT (2011)' (id=viera2011)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Panasonic Viera (2010)' (id=viera2010)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Panasonic Viera (2009)' (id=viera2009)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2012) - US' (id=sony2012us)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2011) - US' (id=sony2011us)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sony AVReceiver STR' (id=SonySTR)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Sony Audio CMT' (id=SonyCMT)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Vizio TV' (id=viziotv)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Windows 8/RT' (id=win8metro)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Panasonic BD player' (id=panasonicBDT220)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Philips NP Streamium' (id=philips_streamium)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Chaneru' (id=roku)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Roku Media Player' (id=RokuMPApp)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Yamaha BD-A1020/BD-A1010' (id=YamBD)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Telenet Yelo TV' (id=TNDC)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Xbox One' (id=xbox_one)
2016-08-16 21:39:18,176 INFO [ProfilesDefinitionParser] Added profile 'Raumfeld' (id=raumfeld)
2016-08-16 21:39:18,191 INFO [ProfilesDefinitionParser] Parsing Profiles definition
2016-08-16 21:39:18,207 INFO [ProfilesDefinitionParser] Added profile 'Flash player' (id=flv_player)
2016-08-16 21:39:18,207 INFO [ProfilesDefinitionParser] Added profile 'Android' (id=android)
2016-08-16 21:39:18,207 INFO [ProfilesDefinitionParser] Added profile 'iOS' (id=ios)
2016-08-16 21:39:18,207 INFO [ProfilesDefinitionParser] Added profile 'HTML5' (id=html5)
2016-08-16 21:39:18,207 INFO [ProfilesDefinitionParser] Added profile 'ServiiGo (Standard)' (id=serviigo_standard)
2016-08-16 21:39:18,207 INFO [ProfilesDefinitionParser] Added profile 'ServiiGo (Legacy Devices)' (id=serviigo)
2016-08-16 21:39:18,207 INFO [ProfilesDefinitionParser] Added profile 'ServiiGo (HLS)' (id=serviigo_hls)
2016-08-16 21:39:18,207 INFO [ProfilesDefinitionParser] Added profile 'ServiiGo (Google TV)' (id=serviigo_gtv)
2016-08-16 21:39:18,207 INFO [ProfilesDefinitionParser] Added profile 'Google Cast' (id=googlecast)
2016-08-16 21:39:18,207 INFO [ProfilesDefinitionParser] Added profile 'Chromecast' (id=chromecast)
2016-08-16 21:39:18,207 INFO [ProfilesDefinitionParser] Added profile 'Windows Phone 8' (id=wp8)
2016-08-16 21:39:18,238 INFO [PluginCompilerThread] Looking for plugins at C:\Program Files\Serviio\bin\..\plugins
2016-08-16 21:39:18,238 INFO [PluginCompilerThread] Started looking for plugins
2016-08-16 21:39:18,238 INFO [UpdateChecker] Checking if a new version is available
2016-08-16 21:39:18,490 INFO [FFMPEGWrapper] Found FFmpeg: C:\Program Files\Serviio\bin\\..\lib\ffmpeg.exe
2016-08-16 21:39:18,506 INFO [FFMPEGWrapper] FFmpeg details: [version=2.4.git, libRtpmPresent=true, libAssPresent=true, libShinePresent=false]
2016-08-16 21:39:19,005 INFO [AbstractAVTranscodingDeliveryEngine] Cleaning transcode engine and its data
2016-08-16 21:39:19,036 INFO [WebServer] WebServer starting on port 8895
2016-08-16 21:39:19,504 INFO [Device] Updated bound IP address of Device with UUID: d0559e82-f24d-30c8-9535-cba5ac2caffd, bound address: 192.168.53.1
2016-08-16 21:39:19,520 INFO [DiscoveryAdvertisementNotifier] Starting DiscoveryAdvertisementNotifier
2016-08-16 21:39:19,520 INFO [RendererExpirationChecker] Starting RendererExpirationChecker
2016-08-16 21:39:19,520 INFO [EventDispatcher] Starting EventDispatcher
2016-08-16 21:39:19,520 INFO [EventSubscriptionExpirationChecker] Starting EventSubscriptionExpirationChecker
2016-08-16 21:39:19,570 INFO [DiscoverySSDPMessageListener] Starting DiscoverySSDPMessageListener using interface eth4 (Realtek PCIe GBE Family Controller #2) and address 192.168.53.1, timeout = 0
2016-08-16 21:39:19,575 INFO [RendererSearchSender] Searching for Renderer devices

Re: Apostrophes and Accented Characters

PostPosted: Wed Aug 17, 2016 10:25 am
by zip
Just to confirm, are they the normal apostrophy characters (') or the special ones (` or the weird ones from MS Word) ?

Re: Apostrophes and Accented Characters

PostPosted: Wed Aug 17, 2016 12:50 pm
by icottrell
> Just to confirm, are they the normal apostrophy characters (') or the special ones (` or the weird ones from MS Word) ?

They are all be normal apostrophes.

Re: Apostrophes and Accented Characters

PostPosted: Fri Aug 19, 2016 12:21 am
by DenyAll
Perhaps post the playlist file here.

Re: Apostrophes and Accented Characters

PostPosted: Fri Aug 19, 2016 1:56 am
by icottrell
>Perhaps post the playlist file here.

As I understand it (and, as a Serviio newby, I could well be wrong), it isn't the playlists but the file names themselves. Whenever Serviio encounters a filename with an apostrophe (like "The Beatles - All I've Got To Do") or an accented character (like "André Gagnon"), it doesn't seem to be able to handle it and says that it "cannot be resolved to an entity in the Serviio library". This is disappointing, since I have a fair number of such named files and they are not in the library.

When you say the playlist file, I assume that you mean the .m3u file? If that is wrong, please correct me and I'll post what you want.

Thanks for you help.........................Ian

Re: Apostrophes and Accented Characters

PostPosted: Fri Aug 19, 2016 4:05 am
by DenyAll
Yes the .m3u file. cheers

Re: Apostrophes and Accented Characters

PostPosted: Fri Aug 19, 2016 2:33 pm
by icottrell
> Yes the .m3u file. cheers

Ok, I've attached one. I had to rename it to .m3u.txt since the uploader wouldn't accept just .m3u. Hope this helps...............Ian



Beatles.m3u.txt
(15.6 KiB) Downloaded 423 times

Re: Apostrophes and Accented Characters

PostPosted: Mon Aug 22, 2016 1:34 am
by DenyAll
If you look in your file, you will see that the apostrophe in filename of Beatles - Don´t Bother Me.mp3 is not standard - it is a ´ rather than a ' (not sure this will come out in the forum, but they are hex code #B4 rather than the standard #27).
Simply edit the file (its a text file) and replace the offending apostrophe's.

Re: Apostrophes and Accented Characters

PostPosted: Mon Aug 22, 2016 3:35 am
by icottrell
Thanks for pointing that out. I found another one in that Beatles playlist. But, interestingly, there were no others in the 9 other playlists that are currently loaded in Servio. The error was actually in the filenames, so I had to edit both the filename and the playlsit. I can't understand how they got there, since those names are only edited/changed from within my filemanager (XYPlorer). Very strange.

I appreciate the help on this, DenyAll. I had looked for strange characters in the filenames, but never managed to find those 2 bad ones; I didn't look at the logs closely enough!

So, that fixes the apostrophes; do you have any ideas about the accented characters?

Re: Apostrophes and Accented Characters

PostPosted: Mon Aug 22, 2016 6:49 am
by DenyAll
Yes, sorry I did notice it against two titles in that file - should have mentioned that...

Accented characters - you haven't provided an example of the accented characters ;)
Post an extract from the log if you have it, and the playlist affected.

ps. I also note that the .3mu file you posted was ANSI encoded - try encoding your playlists as UTF-8 and see if that helps. Notepad++ can be used for re-encoding.

Re: Apostrophes and Accented Characters

PostPosted: Tue Aug 23, 2016 2:38 am
by icottrell
> Accented characters - you haven't provided an example of the accented characters
> Post an extract from the log if you have it, and the playlist affected.

> ps. I also note that the .3mu file you posted was ANSI encoded - try encoding your playlists as UTF-8 and see if that helps. Notepad++ can be used for re-encoding.

I converted a test playlist to UTF-8, but the items were still rejected. Here again, I believe that the issue is the filenames, rather then the playlist entries. The majority of the characters in question are an "accent aigu" (the accent points to the right and upwards, as in "André). The characters are entered using the kb shortcut "alt-130" (which would be hex 82), but in either Ansi or UTF-8 playlists and in the filenames, this characters seems to appear as a hex E9.

This is what the log file (debug mode) shows for ANSI playlist:

2016-08-22 22:06:37,558 DEBUG [PlaylistMaintainerWorker] Found playlist item that has not been added yet: E:\Music\Christmas Music\Andr� Gagnon\Dans le Silence da la Nuit\01 - Andr� Gagnon - White Christmas.mp3
2016-08-22 22:06:37,559 DEBUG [MediaItemDAOImpl] Looking up a media item for file path: E:\Music\Christmas Music\Andr� Gagnon\Dans le Silence da la Nuit\01 - Andr� Gagnon - White Christmas.mp3, ignore case: true
2016-08-22 22:06:37,559 DEBUG [PlaylistMaintainerWorker] Item 'E:\Music\Christmas Music\Andr� Gagnon\Dans le Silence da la Nuit\01 - Andr� Gagnon - White Christmas.mp3' cannot be resolved to an entity in the Serviio library, will try again later

The log is the same for the UTF-8 playlist:

2016-08-22 22:11:37,811 DEBUG [PlaylistMaintainerWorker] Found playlist item that has not been added yet: E:\Music\Christmas Music\Andr� Gagnon\Dans le Silence da la Nuit\01 - Andr� Gagnon - White Christmas.mp3
2016-08-22 22:11:37,811 DEBUG [MediaItemDAOImpl] Looking up a media item for file path: E:\Music\Christmas Music\Andr� Gagnon\Dans le Silence da la Nuit\01 - Andr� Gagnon - White Christmas.mp3, ignore case: true
2016-08-22 22:11:37,811 DEBUG [PlaylistMaintainerWorker] Item 'E:\Music\Christmas Music\Andr� Gagnon\Dans le Silence da la Nuit\01 - Andr� Gagnon - White Christmas.mp3' cannot be resolved to an entity in the Serviio library, will try again later

A shortened version of the main list and the UTF-8 list are attached. Thanks again..........................Ian

Test.Christmas.UTF-8.m3u.txt
(2.12 KiB) Downloaded 470 times

Shortened Christmas.m3u.txt
(9.71 KiB) Downloaded 432 times

Re: Apostrophes and Accented Characters

PostPosted: Tue Aug 23, 2016 5:32 am
by DenyAll
When you encode to UTF-8 the é is not being correctly encoded.

Try this - to convert the file to UTF-8, replacing each occurrence of the xE9 code with the correct é character (which is not as easy as it seems). What I did is (there's probably an easier way):

  • Open the file in Notepad++
  • Before converting - copy the incorrect é character and paste it into a Search and Replace dialog. Replace it with !! (or any other dummy characters)
  • Convert the file. Select Encoding, Convert to UTF-8.
  • Open the Character Panel (Edit, Character Panel)
  • Insert a é (E9) into your document and then cut it to the clipboard
  • Now open the Search and Replace dialog again, this time replacing !! with é (that you cut from your document)
  • Save the file
Attached is my go at it - try this first.

Re: Apostrophes and Accented Characters

PostPosted: Sat Aug 27, 2016 3:33 pm
by icottrell
Sorry to be so long in replying, DenyAll; I've been helping a neighbour with a computer crisis!

I've d/l'd your test file and will try it soonest. I'll get back to you.......................Ian

Re: Apostrophes and Accented Characters

PostPosted: Wed Aug 31, 2016 12:06 am
by icottrell
Great news! Although I wasn't able to use your technique, I was able to figure it out and now ALL of my playlists load without error. When I converted to UTF-8 using Notepad++, it highlighted all the 'special' characters. I was then able to delete these characters and enter the appropriate Alt-xxx characters in their place.

Thanks so much for your help DenyAll (and Zip); I couldn't have done it without you. My wife is delighted with the results and I, of course, took ALL the credit. Thanks again, guys...........................Ian