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