Rsync with OS X 10.3
Mac User FR
macuserfr at free.fr
Sat Jan 24 22:57:39 GMT 2009
Le 24 janv. 09 à 21:41, Jason a écrit :
> I've done some digging around and using the condition
> if(unicharName[index]==0x003B) /* == ':' */ we never meet this
> case. I tried changing the unicharName[index]==':' and the
> subsequent slash unicharName. After rsync is compiled I am able to
> handle the slash cases again.
> We are dealing with the single character in the array so would this
> be safe?
> The only oddity now is if I run this for the first time on the
> backupbouncer src and dst folder I get the following error:
> rsync: rsync_xal_set: lsetxattr("Src/60-bsd-flags/dir-with-
> flags","com.apple.FinderInfo") failed: Unknown error: -5000 (-5000)
> When I run again I get no error.
> I'm using the following argumens: -aNXxH --protect-args --fileflags
Shame on me, I've made a stupid line following mistake on the ASCII
table I looked at. Colon is 0x003A and NOT 0x003B. The code I gave you
would change semicolon to slashes... Something useless. So, this mod
should be the good one:
+ unsigned int index=0;
= CFStringGetCharacters(cfStringName, range, unicharName);
if(unicharName[index]==0x003A) /* == ':' */
unicharName[index]=0x002F; /* == '/' */
= carbon_error=FSMakeFSRefUnicode(&parentRef, range.length,
unicharName, kTextEncodingUnknown, ref);
Almost the same of your mod. Using ':' works, as you tested, but I
prefer to use 0x003A instead of ':' because it makes a comparison
between same variable sizes. It's a personal preference.
As always, let me know if it works. If so, I will update the patch.
More information about the rsync