1// Copyright (C) 2004 Free Software Foundation 2// 3// This file is part of the GNU ISO C++ Library. This library is free 4// software; you can redistribute it and/or modify it under the 5// terms of the GNU General Public License as published by the 6// Free Software Foundation; either version 2, or (at your option) 7// any later version. 8 9// This library is distributed in the hope that it will be useful, 10// but WITHOUT ANY WARRANTY; without even the implied warranty of 11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12// GNU General Public License for more details. 13 14// You should have received a copy of the GNU General Public License along 15// with this library; see the file COPYING. If not, write to the Free 16// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 17// USA. 18 19#include <locale> 20#include <cstring> 21#include <testsuite_hooks.h> 22#ifdef _GLIBCXX_USE___ENC_TRAITS 23#include <ext/enc_filebuf.h> 24#endif 25 26int main() 27{ 28#ifdef _GLIBCXX_USE___ENC_TRAITS 29 bool test __attribute__((unused)) = true; 30 31 const char* str = "Hello, world!\n"; 32 std::locale loc(std::locale::classic(), 33 new std::codecvt<char, char, std::__enc_traits>()); 34 std::__enc_traits st("ISO-8859-1", "ISO-8859-1"); 35 __gnu_cxx::enc_filebuf<char> fb(st); 36 fb.pubimbue(loc); 37 38 fb.open("tmp_13598", std::ios_base::out); 39 std::streamsize n = fb.sputn(str, std::strlen(str)); 40 int s = fb.pubsync(); 41 fb.close(); 42 43 VERIFY( n == std::strlen(str) ); 44 VERIFY( s == 0 ); 45#endif 46 47 return 0; 48} 49