diff options
author | Eion Robb <eion@robbmob.com> | 2018-07-20 09:33:33 +0300 |
---|---|---|
committer | Eion Robb <eion@robbmob.com> | 2018-07-20 09:33:33 +0300 |
commit | 229001358707089bbe0982646f5bcde73ca92ece (patch) | |
tree | c6acc12e15382a9ff3b2011ac8b491d885180b51 | |
parent | c70141ca8a6d146bc759aa293a3f79132bd248c7 (diff) |
Fix Windows compatibility with latest file transfer changes
-rw-r--r-- | skypeweb/Makefile | 30 | ||||
-rw-r--r-- | skypeweb/purplecompat.h | 7 | ||||
-rw-r--r-- | skypeweb/skypeweb_contacts.c | 9 |
3 files changed, 37 insertions, 9 deletions
diff --git a/skypeweb/Makefile b/skypeweb/Makefile index e46ddd7..594e3e1 100644 --- a/skypeweb/Makefile +++ b/skypeweb/Makefile @@ -17,11 +17,16 @@ LDFLAGS ?= # Do some nasty OS and purple version detection
ifeq ($(OS),Windows_NT)
+ #only defined on 64-bit windows
+ PROGFILES32 = ${ProgramFiles(x86)}
+ ifndef PROGFILES32
+ PROGFILES32 = $(PROGRAMFILES)
+ endif
SKYPEWEB_TARGET = libskypeweb.dll
- SKYPEWEB_DEST = "$(PROGRAMFILES)/Pidgin/plugins"
- SKYPEWEB_ICONS_DEST = "$(PROGRAMFILES)/Pidgin/pixmaps/pidgin/protocols"
- SKYPEWEB_THEME_DEST = "$(PROGRAMFILES)/Pidgin/pixmaps/pidgin/emotes/skype"
- MAKENSIS = "$(PROGRAMFILES)/NSIS/makensis.exe"
+ SKYPEWEB_DEST = "$(PROGFILES32)/Pidgin/plugins"
+ SKYPEWEB_ICONS_DEST = "$(PROGFILES32)/Pidgin/pixmaps/pidgin/protocols"
+ SKYPEWEB_THEME_DEST = "$(PROGFILES32)/Pidgin/pixmaps/pidgin/emotes/skype"
+ MAKENSIS = "$(PROGFILES32)/NSIS/makensis.exe"
else
UNAME_S := $(shell uname -s)
@@ -81,7 +86,7 @@ PURPLE_C_FILES := libskypeweb.c $(C_FILES) -.PHONY: all install FAILNOPURPLE clean
+.PHONY: all install FAILNOPURPLE clean translations
all: $(SKYPEWEB_TARGET)
@@ -119,6 +124,21 @@ install-theme: theme mkdir -m $(DIR_PERM) -p $(SKYPEWEB_THEME_DEST)
install -m $(FILE_PERM) -p theme $(SKYPEWEB_THEME_DEST)/theme
+translations: po/skypeweb.pot
+
+po/skypeweb.pot:
+ xgettext $^ -k_ --no-location -o $@
+
+po/%.po: po/skypeweb.pot
+ msgmerge $@ po/skypeweb.pot > tmp-$*
+ mv -f tmp-$* $@
+
+po/%.mo: po/%.po
+ msgfmt -o $@ $^
+
+%-locale-install: po/%.mo
+ install -D -m $(FILE_PERM) -p po/$(*F).mo $(LOCALEDIR)/$(*F)/LC_MESSAGES/purple-discord.mo
+
FAILNOPURPLE:
echo "You need libpurple development headers installed to be able to compile this plugin"
diff --git a/skypeweb/purplecompat.h b/skypeweb/purplecompat.h index 04039ba..d545685 100644 --- a/skypeweb/purplecompat.h +++ b/skypeweb/purplecompat.h @@ -244,6 +244,13 @@ purple_xfer_write_file(PurpleXfer *xfer, const guchar *buffer, gsize size) { (ui_ops && ui_ops->ui_write ? ui_ops->ui_write(xfer, buffer, size) : fwrite(buffer, 1, size, xfer->dest_fp))); return TRUE; } +static inline gssize +purple_xfer_read_file(PurpleXfer *xfer, guchar *buffer, gsize size) { + PurpleXferUiOps *ui_ops = purple_xfer_get_ui_ops(xfer); + gssize got_len = (ui_ops && ui_ops->ui_read ? ui_ops->ui_read(xfer, &buffer, size) : fread(buffer, 1, size, xfer->dest_fp)); + purple_xfer_set_bytes_sent(xfer, purple_xfer_get_bytes_sent(xfer) + got_len); + return got_len; +} #endif #define PURPLE_XFER_TYPE_RECEIVE PURPLE_XFER_RECEIVE #define PURPLE_XFER_TYPE_SEND PURPLE_XFER_SEND diff --git a/skypeweb/skypeweb_contacts.c b/skypeweb/skypeweb_contacts.c index 6846629..d6f146e 100644 --- a/skypeweb/skypeweb_contacts.c +++ b/skypeweb/skypeweb_contacts.c @@ -614,11 +614,13 @@ skypeweb_xfer_send_contents_reader(PurpleHttpConnection *con, gchar *buf, size_t { SkypeWebFileTransfer *swft = user_data; PurpleXfer *xfer = swft->xfer; - gsize read; + gsize read;
+ purple_debug_info("skypeweb", "Asked %d bytes from offset %d\n", len, offset); purple_xfer_set_bytes_sent(xfer, offset); - read = purple_xfer_read_file(xfer, buf, len); - purple_debug_info("skypeweb", "Read %d bytes\n"); + read = purple_xfer_read_file(xfer, (guchar *)buf, len); + purple_debug_info("skypeweb", "Read %d bytes\n", read);
+ cb(con, TRUE, read != len, read); } @@ -670,7 +672,6 @@ static void skypeweb_got_object_for_file(PurpleHttpConnection *http_conn, PurpleHttpResponse *response, gpointer user_data)
{
SkypeWebFileTransfer *swft = user_data;
- SkypeWebAccount *sa = swft->sa;
PurpleXfer *xfer = swft->xfer;
JsonParser *parser;
JsonNode *node;
|