From owner-svn-src-all@FreeBSD.ORG Thu Jul 10 15:56:15 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DEFE73D4; Thu, 10 Jul 2014 15:56:15 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CCAD228C9; Thu, 10 Jul 2014 15:56:15 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6AFuFrr061432; Thu, 10 Jul 2014 15:56:15 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6AFuFEf061431; Thu, 10 Jul 2014 15:56:15 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <201407101556.s6AFuFEf061431@svn.freebsd.org> From: Ed Schouten Date: Thu, 10 Jul 2014 15:56:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268498 - head/usr.bin/users X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2014 15:56:16 -0000 Author: ed Date: Thu Jul 10 15:56:15 2014 New Revision: 268498 URL: http://svnweb.freebsd.org/changeset/base/268498 Log: Let users(1) use an std::set, instead of std::{vector,sort,unique}. Reviewed by: gahr Modified: head/usr.bin/users/users.cc Modified: head/usr.bin/users/users.cc ============================================================================== --- head/usr.bin/users/users.cc Thu Jul 10 15:14:37 2014 (r268497) +++ head/usr.bin/users/users.cc Thu Jul 10 15:56:15 2014 (r268498) @@ -36,14 +36,14 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include using namespace std; int main(int argc, char **) { struct utmpx *ut; - vector names; + set names; if (argc > 1) { cerr << "usage: users" << endl; @@ -51,19 +51,16 @@ main(int argc, char **) } setutxent(); - while ((ut = getutxent()) != NULL) { - if (ut->ut_type != USER_PROCESS) - continue; - names.push_back(ut->ut_user); - } + while ((ut = getutxent()) != NULL) + if (ut->ut_type == USER_PROCESS) + names.insert(ut->ut_user); endutxent(); - if (names.size() == 0) { - return (0); + if (!names.empty()) { + auto last = names.end(); + --last; + copy(names.begin(), last, ostream_iterator(cout, " ")); + cout << *last << endl; } - - sort(begin(names), end(names)); - vector::iterator last(unique(begin(names), end(names))); - copy(begin(names), last-1, ostream_iterator(cout, " ")); - cout << *(last-1) << endl; + return (0); }