scoped_locale.cc 603 Bytes
Newer Older
gejun's avatar
gejun committed
1 2 3 4
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

5
#include "scoped_locale.h"
gejun's avatar
gejun committed
6 7 8 9 10

#include <locale.h>

#include <gtest/gtest.h>

11
namespace butil {
gejun's avatar
gejun committed
12 13 14 15 16 17 18 19 20 21 22

ScopedLocale::ScopedLocale(const std::string& locale) {
  prev_locale_ = setlocale(LC_ALL, NULL);
  EXPECT_TRUE(setlocale(LC_ALL, locale.c_str()) != NULL) <<
      "Failed to set locale: " << locale;
}

ScopedLocale::~ScopedLocale() {
  EXPECT_STREQ(prev_locale_.c_str(), setlocale(LC_ALL, prev_locale_.c_str()));
}

23
}  // namespace butil