Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/EionRobb/skype4pidgin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEion Robb <eion@robbmob.com>2018-07-20 09:33:33 +0300
committerEion Robb <eion@robbmob.com>2018-07-20 09:33:33 +0300
commit229001358707089bbe0982646f5bcde73ca92ece (patch)
treec6acc12e15382a9ff3b2011ac8b491d885180b51
parentc70141ca8a6d146bc759aa293a3f79132bd248c7 (diff)
Fix Windows compatibility with latest file transfer changes
-rw-r--r--skypeweb/Makefile30
-rw-r--r--skypeweb/purplecompat.h7
-rw-r--r--skypeweb/skypeweb_contacts.c9
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;