New Upstream Release - purple-matrix

Ready changes

Summary

Merged new upstream version: 0.1.0 (was: 0.0.0+git20191228).

Resulting package

Built on 2022-03-16T09:46 (took 2m7s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases purple-matrix-dbgsymapt install -t fresh-releases purple-matrix

Lintian Result

Diff

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..96395d6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,38 @@
+# Object files
+*.o
+*.ko
+*.obj
+*.elf
+
+# dependency files
+*.d
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Libraries
+*.lib
+*.a
+*.la
+*.lo
+
+# Shared objects (inc. Windows DLLs)
+*.dll
+*.so
+*.so.*
+*.dylib
+
+# Executables
+*.exe
+*.out
+*.app
+*.i*86
+*.x86_64
+*.hex
+
+# Debug files
+*.dSYM/
+
+# ignore eclipse noise
+/.cproject
diff --git a/.project b/.project
new file mode 100644
index 0000000..fb83354
--- /dev/null
+++ b/.project
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>purple-matrix</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<triggers>clean,full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+	</natures>
+</projectDescription>
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
new file mode 100644
index 0000000..09ded53
--- /dev/null
+++ b/.settings/language.settings.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project>
+	<configuration id="cdt.managedbuild.toolchain.gnu.base.1440008524" name="Default">
+		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
+			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
+			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
+			<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser" keep-relative-paths="false" name="CDT GCC Build Output Parser" parameter="(gcc)|([gc]\+\+)|(clang)" prefer-non-shared="true"/>
+			<provider-reference id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" ref="shared-provider"/>
+			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
+		</extension>
+	</configuration>
+</project>
diff --git a/.settings/org.eclipse.cdt.codan.core.prefs b/.settings/org.eclipse.cdt.codan.core.prefs
new file mode 100644
index 0000000..ff135cf
--- /dev/null
+++ b/.settings/org.eclipse.cdt.codan.core.prefs
@@ -0,0 +1,71 @@
+eclipse.preferences.version=1
+org.eclipse.cdt.codan.checkers.errnoreturn=Warning
+org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
+org.eclipse.cdt.codan.checkers.errreturnvalue=Error
+org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.checkers.nocommentinside=-Error
+org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.checkers.nolinecomment=-Error
+org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.checkers.noreturn=Error
+org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
+org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error
+org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error
+org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error
+org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false}
+org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning
+org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},unknown\=>false,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error
+org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning
+org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},skip\=>true}
+org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error
+org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error
+org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error
+org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error
+org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error
+org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error
+org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},paramNot\=>false}
+org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},else\=>false,afterelse\=>false}
+org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
+org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
+org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>("@(\#)","$Id")}
+org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
diff --git a/CHANGES.md b/CHANGES.md
index c222df4..1228e5d 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,10 +1,52 @@
-Changes in purple-matrix 0.0.1 (unreleased)
+Changes in purple-matrix 0.1.0 (2021-10-26)
 ===========================================
 
- * Fix a number of incompatibilities with Cygwin builds:
-   * https://github.com/matrix-org/purple-matrix/pull/2
-   * https://github.com/matrix-org/purple-matrix/pull/3 (add Makefile.mingw)
- * Allow user to set their online status (PR #5)
+Features
+--------
+ * Allow user to set their online status. ([#5](https://github.com/matrix-org/purple-matrix/pull/5))
+ * Add Emote support ([#12](https://github.com/matrix-org/purple-matrix/pull/12))
+ * Send images ([#14](https://github.com/matrix-org/purple-matrix/pull/14), ([#46](https://github.com/matrix-org/purple-matrix/pull/46))
+ * Allow building on libpurple 2.10.x ([#17](https://github.com/matrix-org/purple-matrix/pull/17))
+ * Receive images ([#21](https://github.com/matrix-org/purple-matrix/pull/21), [#44](https://github.com/matrix-org/purple-matrix/pull/44))
+ * Use thumbnails for big images ([#23](https://github.com/matrix-org/purple-matrix/pull/23))
+ * Enable room invites when matrix handle is known ([#24](https://github.com/matrix-org/purple-matrix/pull/24))
+ * Join by alias or id ([#29](https://github.com/matrix-org/purple-matrix/pull/29))
+ * Typing notifications ([#38](https://github.com/matrix-org/purple-matrix/pull/38))
+ * Support display of room topics ([#39](https://github.com/matrix-org/purple-matrix/pull/39))
+ * Support HTML formatting on sending/receiving messages ([#47](https://github.com/matrix-org/purple-matrix/pull/47))
+ * Handle media messages (m.video, m.audio, m.file) ([#62](https://github.com/matrix-org/purple-matrix/pull/62))
+ * Support decryption of encrypted events. ([#70](https://github.com/matrix-org/purple-matrix/pull/70), [#84](https://github.com/matrix-org/purple-matrix/pull/84), [#87](https://github.com/matrix-org/purple-matrix/pull/87), [#90](https://github.com/matrix-org/purple-matrix/pull/90), [#97](https://github.com/matrix-org/purple-matrix/pull/97))
+ * api: Handle chunked messages ([#73](https://github.com/matrix-org/purple-matrix/pull/73))
+ * Add an option to get markdown, not HTML ([#117](https://github.com/matrix-org/purple-matrix/pull/117))
+
+Bugfixes
+--------
+
+ * Fix a number of incompatibilities with Cygwin builds. ([#2](https://github.com/matrix-org/purple-matrix/pull/2), [#3](https://github.com/matrix-org/purple-matrix/pull/3))
+ * Ignore empty m.room.name ([#11](https://github.com/matrix-org/purple-matrix/pull/11))
+ * Unescape the HTML-escaped HTML. ([#19](https://github.com/matrix-org/purple-matrix/pull/19))
+ * Escape incoming message bodies ([#25](https://github.com/matrix-org/purple-matrix/pull/25))
+ * Re-use the device-id provided by the server ([#40](https://github.com/matrix-org/purple-matrix/pull/40))
+ * bump up max reply size ([#56](https://github.com/matrix-org/purple-matrix/pull/56))
+ * typing: Fix crash on typing notification to someone not present ([#69](https://github.com/matrix-org/purple-matrix/pull/69))
+ * turn off deprecation warnings to workaround GParameter ([#103](https://github.com/matrix-org/purple-matrix/pull/103))
+ * Login updates: Avoid the outdated login API and store access tokens ([#104](https://github.com/matrix-org/purple-matrix/pull/104))
+ * matrix-connection: Only change state and progress if we're not already connected ([#111](https://github.com/matrix-org/purple-matrix/pull/111))
+ * matrix-api: use a non-fatal error code on HTTP 429 and >500 ([#113](https://github.com/matrix-org/purple-matrix/pull/113))
+ * Build failure workaround: `_on_typing` ([#118](https://github.com/matrix-org/purple-matrix/pull/118))
+
+Documentation
+------------
+ * mention OLM in readme ([#53](https://github.com/matrix-org/purple-matrix/pull/53))
+ * [README] Add xenial-specific libglib package ([#60](https://github.com/matrix-org/purple-matrix/pull/60))
+ * [README] Add Ubuntu pre-built binaries. Fixes ([#58](https://github.com/matrix-org/purple-matrix/pull/58)) ([#66](https://github.com/matrix-org/purple-matrix/pull/66))
+ * README: Remove unimplemented item from now implemented feature ([#79](https://github.com/matrix-org/purple-matrix/pull/79))
+ * Add badge to README with link to room ([#91](https://github.com/matrix-org/purple-matrix/pull/91))
+
+Internal changes
+----------------
+ * [Makefile] Change fixed pkg-config into variable PKG_CONFIG ([#68](https://github.com/matrix-org/purple-matrix/pull/68))
+ * Small improvements to make installation easier ([#94](https://github.com/matrix-org/purple-matrix/pull/94))
 
 Changes in purple-matrix 0.0.0 (2016-01-02)
 ===========================================
diff --git a/debian/changelog b/debian/changelog
index daa074b..13d49b7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+purple-matrix (0.1.0-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Wed, 16 Mar 2022 09:44:25 -0000
+
 purple-matrix (0.0.0+git20191228-1) unstable; urgency=medium
 
   * New upstream snapshot.
diff --git a/libmatrix.c b/libmatrix.c
index 4783056..a422e0f 100644
--- a/libmatrix.c
+++ b/libmatrix.c
@@ -372,6 +372,10 @@ static void matrixprpl_init(PurplePlugin *plugin)
                     _("On reconnect, skip messages which were received in a "
                       "previous session"),
                     PRPL_ACCOUNT_OPT_SKIP_OLD_MESSAGES, FALSE));
+    protocol_options = g_list_append(protocol_options,
+            purple_account_option_bool_new(
+                    _("Prefer Markdown over HTML"),
+                    PRPL_ACCOUNT_OPT_PREFER_MARKDOWN, FALSE));
 
     prpl_info.protocol_options = protocol_options;
 }
diff --git a/libmatrix.h b/libmatrix.h
index 852d5f8..73ba79e 100644
--- a/libmatrix.h
+++ b/libmatrix.h
@@ -100,7 +100,7 @@
 #define N_(a) (a)
 
 /* data for our 'about' box */
-#define DISPLAY_VERSION "1.0"
+#define DISPLAY_VERSION "0.1.0"
 #define MATRIX_WEBSITE "http://matrix.org"
 
 /* our protocol ID string */
@@ -115,6 +115,7 @@
 #define PRPL_ACCOUNT_OPT_HOME_SERVER "home_server"
 #define PRPL_ACCOUNT_OPT_NEXT_BATCH "next_batch"
 #define PRPL_ACCOUNT_OPT_SKIP_OLD_MESSAGES "skip_old_messages"
+#define PRPL_ACCOUNT_OPT_PREFER_MARKDOWN "prefer_markdown"
 /* Pickled account info from olm_pickle_account */
 #define PRPL_ACCOUNT_OPT_OLM_ACCOUNT_KEYS "olm_account_keys"
 /* Access token, after a login */
diff --git a/matrix-api.c b/matrix-api.c
index 2eae2a9..0884c93 100644
--- a/matrix-api.c
+++ b/matrix-api.c
@@ -66,6 +66,7 @@ void matrix_api_bad_response(MatrixConnectionData *ma, gpointer user_data,
     JsonObject *json_obj;
     const gchar *errcode = NULL, *error = NULL;
     gchar *error_message;
+    PurpleConnectionError error_reason = PURPLE_CONNECTION_ERROR_OTHER_ERROR;
 
     if(json_root != NULL) {
         json_obj = matrix_json_node_get_object(json_root);
@@ -81,8 +82,13 @@ void matrix_api_bad_response(MatrixConnectionData *ma, gpointer user_data,
                 _("Error from home server"), http_response_code);
     }
 
+    /* Use a non-fatal error reason on HTTP 429 and 500 to allow auto-reconnection */
+    if (http_response_code == 429 || http_response_code > 500) {
+        error_reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR;
+    }
+
     purple_connection_error_reason(ma->pc,
-            PURPLE_CONNECTION_ERROR_OTHER_ERROR,
+            error_reason,
             error_message);
 
     g_free(error_message);
diff --git a/matrix-connection.c b/matrix-connection.c
index 1b071db..9d1bac6 100644
--- a/matrix-connection.c
+++ b/matrix-connection.c
@@ -122,8 +122,11 @@ static void _sync_complete(MatrixConnectionData *ma, gpointer user_data,
         return;
     }
 
-    purple_connection_update_progress(pc, _("Connected"), 2, 3);
-    purple_connection_set_state(pc, PURPLE_CONNECTED);
+    // Only update progress and set state if we're not already connected
+    if (purple_connection_get_state(pc) != PURPLE_CONNECTED) {
+        purple_connection_update_progress(pc, _("Connected"), 2, 3);
+        purple_connection_set_state(pc, PURPLE_CONNECTED);
+    }
 
     matrix_sync_parse(pc, body, &next_batch);
 
diff --git a/matrix-room.c b/matrix-room.c
index b26d036..040ab38 100644
--- a/matrix-room.c
+++ b/matrix-room.c
@@ -210,6 +210,7 @@ static void _on_typing(PurpleConversation *conv,
         old_user_ids = matrix_json_object_get_array_member(old_state->content, "user_ids");
         old_len = json_array_get_length(old_user_ids);
     } else {
+	old_user_ids = NULL; /* Work around gcc 10.3.1 false uninit warn */
         old_len = 0;
     }
     
@@ -1094,8 +1095,14 @@ void matrix_room_handle_timeline_event(PurpleConversation *conv,
     }
     flags = PURPLE_MESSAGE_RECV;
 
-    if (purple_strequal(matrix_json_object_get_string_member(json_content_obj, "format"), "org.matrix.custom.html")) {
-        escaped_body = g_strdup(matrix_json_object_get_string_member(json_content_obj, "formatted_body"));
+    gboolean prefer_markdown = purple_account_get_bool(conv->account,
+            PRPL_ACCOUNT_OPT_PREFER_MARKDOWN, FALSE);
+    if (!prefer_markdown) {
+        if (purple_strequal(matrix_json_object_get_string_member(json_content_obj, "format"), "org.matrix.custom.html")) {
+            escaped_body = g_strdup(matrix_json_object_get_string_member(json_content_obj, "formatted_body"));
+        } else {
+            escaped_body = purple_markup_escape_text(tmp_body ? tmp_body : msg_body, -1);
+        }
     } else {
         escaped_body = purple_markup_escape_text(tmp_body ? tmp_body : msg_body, -1);
     }

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/lib/debug/.build-id/fa/a814347990698b24a7f2a52b9b53ddd0735be6.debug

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/lib/debug/.build-id/97/232a087ab6a0f8ce09594086510805b57dbf14.debug

No differences were encountered between the control files of package purple-matrix

Control files of package purple-matrix-dbgsym: lines which differ (wdiff format)

  • Build-Ids: 97232a087ab6a0f8ce09594086510805b57dbf14 faa814347990698b24a7f2a52b9b53ddd0735be6

More details

Full run details