From: Sam S. <sd...@gn...> - 2010-04-16 15:35:34
|
Hello Arseny, Arseny Slobodyuk wrote: > >>> + return file_header->size == WINSHDRSIZE >>> + && !memcmp (&file_header->magic, &GUID_shortcut, sizeof GUID_shortcut) >>> + && (file_header->flags & ~WSH_FLAG_IDLIST) >>> + == (WSH_FLAG_DESC | WSH_FLAG_RELPATH) >>> + && pzero >= &file_header->run >>> + && file_header->run == SW_NORMAL; >>> +} > >> yes, this is what I have. > > Do you mean removing the check helps? no, I mean that this is the code I see in my tree now. > If it's not about zero fields, I'd suppose now that > the CreateFile flags are unsuitable for Windows Server 2003, maybe it's > something with security settings on the filesystem. So the CreateFile > returns INVALID_HANDLE_VALUE and it is treated as 'not a symlink'. > If the problem is with opening the file this patch could help. > > Index: w32shell.c > =================================================================== > RCS file: /cvsroot/clisp/clisp/src/w32shell.c,v > retrieving revision 1.12 > diff -r1.12 w32shell.c > 99c99 > < handle = CreateFile(filename,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE, > --- >> handle = CreateFile(filename,FILE_READ_DATA, FILE_SHARE_READ, > this changes nothing (also, it would be nice if you sent context (-c) or unified (-u) diffs, just add "diff -uwp" to your ~/.cvsrc). actually, it appears that your patch is not at fault at all here, sorry. I have two clisp builds: the regular debug and an MT debug build. the regular debug works fine: (PROBE-PATHNAME #P"C:linkkit\\modprep.lisp") #P"C:\\sds\\dev\\current\\utils\\modprep.lisp" ; #P"C:\\sds\\dev\\current\\build-mingw-g-5\\linkkit\\modprep.lisp" ; 3480262844 ; 60472 the multithreaded build fails: is_cygwin_symlink() returns cygsym_issym, but w32shell.c:134: hres = CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, returns hres=-2147221008 (in the MT build) instead of 0 (in the regular build). and thus PROBE-PATHNAME fails. the relevant difference in Makefiles is -DWIN32_THREADS in CFLAGS Sorry about the confusion. Sam. |