pidgin/pidgin

69b44723d52c
facebook: Make $.hugePictureUrl.uri optional

Facebook seems to randomly send null in this field sometimes. It's not
very important so it can be made optional.

This includes moving the checksum code (which was previously duplicated)
to a separate function so that there's a single null check.
#
# Makefile.mingw
#
# Description: Makefile for win32 (mingw) version of Pidgin
#
PIDGIN_TREE_TOP := ..
include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak
DEFINES := $(subst -DWIN32_LEAN_AND_MEAN,,$(DEFINES))
##
## VARIABLE DEFINITIONS
##
EXE_TARGET := pidgin
PIDGIN_TARGET := pidgin
EXE_NAME := $(EXE_TARGET).exe
WINAPP := -mwindows
LDFLAGS := $(WINAPP) $(LD_HARDENING_OPTIONS) -Wl,--enable-auto-import -lssp
##
## INCLUDE PATHS
##
PURPLE_INCLUDE_PATHS = \
-I$(PURPLE_TOP) \
-I$(PURPLE_TOP)/win32 \
-I$(PIDGIN_TREE_TOP) \
-I$(GTK_TOP)/include \
-I$(GTK_TOP)/include/glib-2.0 \
-I$(GTK_TOP)/lib/glib-2.0/include
INCLUDE_PATHS += \
$(PURPLE_INCLUDE_PATHS) \
-I$(PIDGIN_TOP) \
-I$(PIDGIN_TOP)/win32 \
$(VV_INCLUDE_PATHS) \
-I$(GTK_TOP)/include/gtk-2.0 \
-I$(GTK_TOP)/include/pango-1.0 \
-I$(GTK_TOP)/include/atk-1.0 \
-I$(GTK_TOP)/include/cairo \
-I$(GTK_TOP)/include/gdk-pixbuf-2.0 \
-I$(GTK_TOP)/lib/gtk-2.0/include \
-I$(LIBSOUP_TOP)/include/libsoup-2.4 \
-I$(LIBGADU_TOP)/include \
-I$(WEBKITGTK_TOP)/include/webkitgtk-1.0
LIB_PATHS += -L$(GTK_TOP)/lib \
-L$(WEBKITGTK_TOP)/lib \
-L$(LIBGADU_TOP)/lib \
-L$(PURPLE_TOP) \
-L$(PIDGIN_TOP) \
$(VV_LIB_PATHS)
##
## SOURCES, OBJECTS
##
PIDGIN_C_SRC = \
gtkaccount.c \
gtkblist-theme-loader.c \
gtkblist-theme.c \
gtkblist.c \
gtkcellrendererexpander.c \
gtkcertmgr.c \
gtkconn.c \
gtkconv.c \
gtkconv-theme.c \
gtkconv-theme-loader.c \
gtkdebug.c \
gtkdialogs.c \
gtkdnd-hints.c \
gtkdocklet.c \
gtkeventloop.c \
gtkicon-theme-loader.c \
gtkicon-theme.c \
gtkidle.c \
gtklog.c \
gtkmedia.c \
gtkmenutray.c \
gtknotify.c \
gtkplugin.c \
gtkpluginpref.c \
gtkpounce.c \
gtkprefs.c \
gtkprivacy.c \
gtkrequest.c \
gtkroomlist.c \
gtksavedstatuses.c \
gtkscrollbook.c \
gtksmiley-manager.c \
gtksmiley-theme.c \
gtksound.c \
gtkstatus-icon-theme.c \
gtkstatusbox.c \
gtkutils.c \
gtkwebview.c \
gtkwebviewtoolbar.c \
gtkwhiteboard.c \
gtkxfer.c \
libpidgin.c \
minidialog.c \
pidgin.c \
pidginstock.c \
pidgintooltip.c \
win32/gtkwin32dep.c \
win32/untar.c
PIDGIN_RC_SRC = win32/pidgin_dll_rc.rc
PIDGIN_OBJECTS = $(PIDGIN_C_SRC:%.c=%.o) $(PIDGIN_RC_SRC:%.rc=%.o)
EXE_RC_SRC = win32/pidgin_exe_rc.rc
EXE_C_SRC = win32/winpidgin.c
EXE_OBJECTS = $(EXE_C_SRC:%.c=%.o) $(EXE_RC_SRC:%.rc=%.o)
##
## LIBRARIES
##
PIDGIN_LIBS = \
-lintl \
-lglib-2.0 \
-lgobject-2.0 \
-lgthread-2.0 \
-lpurple \
-lz \
-lgtk-win32-2.0 \
-latk-1.0 \
-lcairo \
-lpango-1.0 \
-lgdk-win32-2.0 \
-lgdk_pixbuf-2.0 \
-lgdi32 \
-lgadu \
-lwinmm \
$(VV_LIBS) \
-lwebkitgtk-1.0
include $(PIDGIN_COMMON_RULES)
##
## TARGET DEFINITIONS
##
.PHONY: all install install_shallow clean
all: $(EXE_TARGET).exe $(PIDGIN_TARGET).dll
$(MAKE_at) $(MAKE) -C $(PIDGIN_PLUGINS_TOP) -f $(MINGW_MAKEFILE)
gtkdialogs.c: $(PIDGIN_REVISION_H)
win32/pidgin_exe_rc.rc: win32/pidgin_exe_rc.rc.in $(PIDGIN_TREE_TOP)/VERSION
@echo -e " GEN\t$@"
@sed -e 's/@PURPLE_VERSION@/$(PIDGIN_VERSION)/g' \
-e 's/@PURPLE_MAJOR_VERSION@/$(PURPLE_MAJOR_VERSION)/g' \
-e 's/@PURPLE_MINOR_VERSION@/$(PURPLE_MINOR_VERSION)/g' \
-e 's/@PURPLE_MICRO_VERSION@/$(PURPLE_MICRO_VERSION)/g' \
-e 's/@PURPLE_API_VERSION@/$(PURPLE_API_VERSION)/g' \
$@.in > $@
install_shallow: $(PIDGIN_INSTALL_DIR) $(EXE_TARGET).exe $(PIDGIN_TARGET).dll
cp $(EXE_TARGET).exe $(PIDGIN_TARGET).dll $(PIDGIN_INSTALL_DIR)
mkdir -p "$(PIDGIN_INSTALL_DIR)/theme"
cp -r themes/* "$(PIDGIN_INSTALL_DIR)/theme/"
chmod -R 777 "$(PIDGIN_INSTALL_DIR)/theme/"
install: install_shallow all
$(MAKE_at) $(MAKE) -C $(PIDGIN_PLUGINS_TOP) -f $(MINGW_MAKEFILE) install
$(MAKE_at) $(MAKE) -C $(PIDGIN_PIXMAPS_TOP) -f $(MINGW_MAKEFILE) install
win32/pidgin_dll_rc.rc: win32/pidgin_dll_rc.rc.in $(PIDGIN_TREE_TOP)/VERSION
@echo -e " GEN\t$@"
@sed -e 's/@PURPLE_VERSION@/$(PIDGIN_VERSION)/g' \
-e 's/@PURPLE_MAJOR_VERSION@/$(PURPLE_MAJOR_VERSION)/g' \
-e 's/@PURPLE_MINOR_VERSION@/$(PURPLE_MINOR_VERSION)/g' \
-e 's/@PURPLE_MICRO_VERSION@/$(PURPLE_MICRO_VERSION)/g' \
-e 's/@PURPLE_API_VERSION@/$(PURPLE_API_VERSION)/g' \
$@.in > $@
$(EXE_OBJECTS) $(PIDGIN_OBJECTS): $(PIDGIN_CONFIG_H)
gtkdebug.c: gtkdebug.html.h
$(PIDGIN_TARGET).dll $(PIDGIN_TARGET).dll.a: $(PURPLE_DLL).a $(PIDGIN_OBJECTS)
$(CC) -shared $(PIDGIN_OBJECTS) $(LIB_PATHS) $(PIDGIN_LIBS) $(DLL_LD_FLAGS) -Wl,--output-def,$(PIDGIN_TARGET).def,--out-implib,$(PIDGIN_TARGET).dll.a -o $(PIDGIN_TARGET).dll
$(EXE_TARGET).exe: $(PIDGIN_CONFIG_H) $(PIDGIN_DLL).a $(EXE_OBJECTS) $(PIDGIN_TARGET).dll
$(CC) $(EXE_OBJECTS) $(LDFLAGS) -o $(EXE_TARGET).exe
##
## CLEAN RULES
##
clean:
$(MAKE_at) $(MAKE) -C $(PIDGIN_PLUGINS_TOP) -f $(MINGW_MAKEFILE) clean
$(MAKE_at) $(MAKE) -C $(PIDGIN_PIXMAPS_TOP) -f $(MINGW_MAKEFILE) clean
rm -f $(PIDGIN_OBJECTS) $(PIDGIN_RC_SRC) $(EXE_OBJECTS) $(EXE_RC_SRC)
rm -f $(PIDGIN_TARGET).dll $(PIDGIN_TARGET).dll.a $(PIDGIN_TARGET).def
rm -f $(EXE_TARGET).exe
include $(PIDGIN_COMMON_TARGETS)