Enlightenment CVS committal

Author  : doursse
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/bin


Modified Files:
        edje_decc.c Makefile.am 


Log Message:
implement a symlink function for Windows

===================================================================
RCS file: /cvs/e/e17/libs/edje/src/bin/edje_decc.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- edje_decc.c 26 Aug 2007 12:54:51 -0000      1.21
+++ edje_decc.c 8 Sep 2007 18:34:40 -0000       1.22
@@ -10,6 +10,8 @@
 #include <unistd.h>
 #ifdef _WIN32
 # include <windows.h>
+# include <shlobj.h>
+# include <objidl.h>
 #endif /* _WIN32 */
 
 char *progname = NULL;
@@ -40,6 +42,49 @@
       ,progname);
 }
 
+#ifdef _WIN32
+int
+symlink (const char *oldpath, const char newpath)
+{
+   IShellLink   *pISL;
+   IPersistFile *pIPF;
+
+   if (FAILED(CoInitialize(NULL)))
+     return 0;
+
+   if (FAILED(CoCreateInstance(&CLSID_ShellLink,
+                               NULL,
+                               CLSCTX_INPROC_SERVER,
+                               &IID_IShellLink,
+                               (PVOID *)&pISL)))
+     goto no_instance;
+
+   if (FAILED(pISL->lpVtbl->SetPath(pISL, oldpath)))
+     goto no_setpath;
+
+   if (FAILED(pISL->lpVtbl->QueryInterface(pISL, &IID_IPersistFile, (PVOID *) 
&pIPF)))
+     goto no_queryinterface;
+
+   if (FAILED(pIPF->lpVtbl->Save(pIPF, newpath, FALSE)))
+     goto no_save;
+
+   pIPF->lpVtbl->Release(pIPF);
+   pISL->lpVtbl->Release(pISL);
+   CoUninitialize();
+
+   return 1;
+
+ no_save:
+   pIPF->lpVtbl->Release(pIPF);
+ no_queryinterface:
+ no_setpath:
+   pISL->lpVtbl->Release(pISL);
+ no_instance:
+   CoUninitialize();
+   return 0;
+}
+#endif /* _WIN32 */
+
 int
 main(int argc, char **argv)
 {
@@ -301,11 +346,7 @@
        if (file_out)
          {
             snprintf(out, sizeof(out), "%s/%s", outdir, file_out);
-#ifdef _WIN32
-            CopyFile(sf->name, out, TRUE);
-#else
             symlink(sf->name, out);
-#endif /* _WIN32 */
          }
 
 #ifndef _WIN32
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/bin/Makefile.am,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -3 -r1.39 -r1.40
--- Makefile.am 27 Aug 2007 11:52:04 -0000      1.39
+++ Makefile.am 8 Sep 2007 18:34:40 -0000       1.40
@@ -1,13 +1,13 @@
 ## Process this file with automake to produce Makefile.in
 
-AM_CFLAGS = \
+INCLUDES = \
 -I$(top_srcdir) \
 -I$(top_srcdir)/bin \
 -I$(top_srcdir)/src/lib \
 @EDJE_CFLAGS@ \
 -DPACKAGE_BIN_DIR=\"@[EMAIL PROTECTED]" \
 -DPACKAGE_LIB_DIR=\"@[EMAIL PROTECTED]" \
--DPACKAGE_DATA_DIR=\"@[EMAIL PROTECTED]" 
+-DPACKAGE_DATA_DIR=\"@[EMAIL PROTECTED]"
 
 bin_SCRIPTS = \
 @EDJE_RECC_PRG@
@@ -48,6 +48,6 @@
 edje_cc_sources.c
 
 edje_decc_LDADD = \
-$(top_builddir)/src/lib/libedje.la
+$(top_builddir)/src/lib/libedje.la @edje_decc_lib@
 
 edje_decc_DEPENDENCIES = $(top_builddir)/src/lib/libedje.la



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to