diff options
| -rw-r--r-- | Makefile | 34 | ||||
| -rw-r--r-- | hugin.c | 34 | 
2 files changed, 44 insertions, 24 deletions
@@ -6,33 +6,49 @@ CXXFLAGS=$(CFLAGS)  all: complete obj simple syslog filter mutex minimal disabled  complete: -	gcc ${CFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX -	g++ ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX +	gcc ${CFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete \ +	 -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX +	./hugin-complete + +	g++ ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete \ +	 -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX +	./hugin-complete  obj:  #	Compile hugin as c prog and link with c++ program (use hugin.hpp)  	g++ ${CXXFLAGS} main_simple.cc -c  	gcc ${CFLAGS} hugin.c -c  	g++ main_simple.o hugin.o -o hugin-obj +	./hugin-obj  #	Compile hugin as c++ prog and link with c++ program  	g++ ${CXXFLAGS} main_simple.c -c  	g++ ${CXXFLAGS} hugin.c -c  	g++ main_simple.o hugin.o -o hugin-obj +	./hugin-obj  simple:  	gcc ${CFLAGS} hugin.c main_simple.c -o hugin-simple +	./hugin-simple +  	g++ ${CXXFLAGS} hugin.c main_simple.c -o hugin-simple +	./hugin-simple  minimal:  	gcc ${CFLAGS} hugin.c main_minimal.c -o hugin-minimal +	./hugin-minimal +  	g++ ${CXXFLAGS} hugin.c main_minimal.c -o hugin-minimal +	./hugin-minimal  syslog:  	gcc ${CFLAGS} hugin.c hugin_syslog.c main_syslog.c \ -		-o hugin-syslog -DWITH_HUG_SYSLOG +	 -o hugin-syslog -DWITH_HUG_SYSLOG +	./hugin-syslog +  	g++ ${CXXFLAGS} hugin.c hugin_syslog.c main_syslog.c \ -		-o hugin-syslog -DWITH_HUG_SYSLOG +	 -o hugin-syslog -DWITH_HUG_SYSLOG +	./hugin-syslog  filter:  	gcc ${CFLAGS} hugin.c hugin_filter.c main_filter.c -o hugin-filter \ @@ -42,19 +58,29 @@ filter:  mutex:  	gcc ${CFLAGS} hugin.c main_mutex.c -o hugin-mutex -DWITH_HUG_MUTEX +	./hugin-mutex +  	g++ ${CXXFLAGS} hugin.c main_mutex.c -o hugin-mutex -DWITH_HUG_MUTEX +	./hugin-mutex  disabled:  	gcc -DDISABLE_HUGIN ${CFLAGS} hugin.c main_simple.c \  		-o hugin-simple-disabled +	./hugin-simple-disabled +  	g++ -DDISABLE_HUGIN ${CXXFLAGS} hugin.c main_simple.c \  		-o hugin-simple-disabled +	./hugin-simple-disabled +  	gcc -DDISABLE_HUGIN ${CFLAGS} ${HUGIN_SOURCES} main_complete.c \  		-o hugin-complete-disabled -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \  		-DWITH_HUG_MUTEX +	./hugin-complete-disabled +  	g++ -DDISABLE_HUGIN ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c \  		-o hugin-complete-disabled -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \  		-DWITH_HUG_MUTEX +	./hugin-complete-disabled  clean:  	rm -f hugin_{complete,complete-cpp,simple,syslog,filter,mutex,minimal} @@ -46,7 +46,7 @@  typedef HANDLE mutex_t;  // see http://stackoverflow.com/questions/558223/va-copy-porting-to-visual-c -#define va_copy(dest, src) (dest = src) +//#define va_copy(dest, src) (dest = src)  # else  #  include <pthread.h> @@ -402,22 +402,14 @@ int __debug(const char *func, const int line,    //    // Generate message    // - -  // Get number of bytes needed for the buffer:    va_list va;    va_start(va, fmt); - -  // Use a copy of va_list for 64bit fix: -  // see http://www.bailopan.net/blog/?p=30 -  //  -  // Not available in windows. So hugin may break in 64bit windows -   -  va_list vacpy; -  va_copy(vacpy, va); - -  hdr_bufsz = scprintf(hdr_fmt, HDR_ARGS); -  msg_bufsz = vscprintf(fmt, vacpy); -  if(hdr_bufsz < 0 || msg_bufsz < 0) return 1; // Bad format? +  { +    hdr_bufsz = scprintf(hdr_fmt, HDR_ARGS); +    msg_bufsz = vscprintf(fmt, va); +    if(hdr_bufsz < 0 || msg_bufsz < 0) return 1; // Bad format? +    //  va_end(va); +  }    buf = (char*)malloc(hdr_bufsz + msg_bufsz + 1);    if(!buf) return 1; // Out of memory @@ -425,11 +417,13 @@ int __debug(const char *func, const int line,    sz = sprintf(buf, hdr_fmt, HDR_ARGS);    if(sz < 0) return 1; // Unknown error -  va_copy(vacpy, va); -  sz = vsprintf(buf + sz, fmt, vacpy); -  if(sz < 0) return 1; // Unknown error - -  va_end(va); +  { +    //va_list va; +    //va_start(va, fmt); +    sz = vsprintf(buf + sz, fmt, va); +    if(sz < 0) return 1; // Unknown error +    va_end(va); +  }    //    // Send message to output  | 
