File 0004-UserModel-fix-filtering-out-duplicate-users-998.patch of Package sddm

From 126a722a4a36cb4cc6d17714ff4b18b6657493e4 Mon Sep 17 00:00:00 2001
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: Wed, 21 Mar 2018 14:24:39 -0700
Subject: [PATCH 4/6] UserModel: fix filtering out duplicate users (#998)

std::unique() is "interesting": it modifies the container, rearranging
elements in it, but does not reduce the size of the container, so there
are invalid elements at the end that have to be erased explicitly.
---
 src/greeter/UserModel.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/greeter/UserModel.cpp b/src/greeter/UserModel.cpp
index daf93c5..57f236d 100644
--- a/src/greeter/UserModel.cpp
+++ b/src/greeter/UserModel.cpp
@@ -102,7 +102,8 @@ namespace SDDM {
         std::sort(d->users.begin(), d->users.end(), [&](const UserPtr &u1, const UserPtr &u2) { return u1->name < u2->name; });
         // Remove duplicates in case we have several sources specified
         // in nsswitch.conf(5).
-        std::unique(d->users.begin(), d->users.end(), [&](const UserPtr &u1, const UserPtr &u2) { return u1->name == u2->name; });
+        auto newEnd = std::unique(d->users.begin(), d->users.end(), [&](const UserPtr &u1, const UserPtr &u2) { return u1->name == u2->name; });
+        d->users.erase(newEnd, d->users.end());
 
         bool avatarsEnabled = mainConfig.Theme.EnableAvatars.get();
         if (avatarsEnabled && mainConfig.Theme.EnableAvatars.isDefault()) {
-- 
2.16.2

openSUSE Build Service is sponsored by