fix compiling errors by using GCC/Clang
This commit is contained in:
		
							parent
							
								
									396163c1b7
								
							
						
					
					
						commit
						894e7e61c8
					
				@ -1,5 +1,5 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 *	A filesystem Implementation
 | 
					 *	A ISO C++ filesystem Implementation
 | 
				
			||||||
 *	Nana C++ Library(http://www.nanapro.org)
 | 
					 *	Nana C++ Library(http://www.nanapro.org)
 | 
				
			||||||
 *	Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com)
 | 
					 *	Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com)
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@ -195,7 +195,7 @@ namespace filesystem
 | 
				
			|||||||
		directory_iterator():end_(true), handle_(nullptr){}
 | 
							directory_iterator():end_(true), handle_(nullptr){}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		directory_iterator(const nana::string& file_path) {	_m_prepare(file_path);	}
 | 
							directory_iterator(const nana::string& file_path) {	_m_prepare(file_path);	}
 | 
				
			||||||
		//directory_iterator(const path& file_path) {	_m_prepare(file_path.filename());	}
 | 
							directory_iterator(const path& file_path) {	_m_prepare(file_path.filename());	}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const value_type&
 | 
							const value_type&
 | 
				
			||||||
		operator*() const { return value_; }
 | 
							operator*() const { return value_; }
 | 
				
			||||||
@ -339,13 +339,13 @@ namespace filesystem
 | 
				
			|||||||
							return;
 | 
												return;
 | 
				
			||||||
						}
 | 
											}
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										nana::string d_name = nana::charset(dnt->d_name);
 | 
				
			||||||
					struct stat fst;
 | 
										struct stat fst;
 | 
				
			||||||
					if(stat((path_ + "/" + dnt->d_name).c_str(), &fst) == 0)
 | 
										if(stat((path_ + "/" + dnt->d_name).c_str(), &fst) == 0)
 | 
				
			||||||
			            value_ = value_type(static_cast<nana::string>(nana::charset(wfd_.cFileName)), 
 | 
											value_ = value_type(std::move(d_name), (0 != S_ISDIR(fst.st_mode)), fst.st_size);
 | 
				
			||||||
                               (FILE_ATTRIBUTE_DIRECTORY & wfd_.dwFileAttributes) == FILE_ATTRIBUTE_DIRECTORY,
 | 
					 | 
				
			||||||
                                wfd_.nFileSizeLow);
 | 
					 | 
				
			||||||
					else
 | 
										else
 | 
				
			||||||
						value_.m_path = nana::charset(dnt->d_name);
 | 
											value_.m_path = path(std::move(d_name));
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				else
 | 
									else
 | 
				
			||||||
					end_ = true;
 | 
										end_ = true;
 | 
				
			||||||
@ -378,7 +378,6 @@ namespace filesystem
 | 
				
			|||||||
		std::string	path_;
 | 
							std::string	path_;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
		std::shared_ptr<find_handle_t> find_ptr_;
 | 
							std::shared_ptr<find_handle_t> find_ptr_;
 | 
				
			||||||
 | 
					 | 
				
			||||||
		find_handle_t	handle_{nullptr};
 | 
							find_handle_t	handle_{nullptr};
 | 
				
			||||||
		value_type	value_;
 | 
							value_type	value_;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
@ -406,7 +405,7 @@ namespace filesystem
 | 
				
			|||||||
	bool file_attrib(const nana::string& file, attribute&);
 | 
						bool file_attrib(const nana::string& file, attribute&);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	inline bool is_directory(file_status s) { return s.type() == file_type::directory ;}
 | 
						inline bool is_directory(file_status s) { return s.type() == file_type::directory ;}
 | 
				
			||||||
	inline bool is_directory(const path& p) { return directory_iterator{ p }->attr.directory; }//works??
 | 
						inline bool is_directory(const path& p) { return directory_iterator(p)->attr.directory; }//works??
 | 
				
			||||||
	inline bool is_directory(const directory_entry& d) { return d.attr.directory; }
 | 
						inline bool is_directory(const directory_entry& d) { return d.attr.directory; }
 | 
				
			||||||
    //bool is_directory(const path& p, error_code& ec) noexcept;
 | 
					    //bool is_directory(const path& p, error_code& ec) noexcept;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -36,7 +36,7 @@ namespace nana{
 | 
				
			|||||||
				core_window_t * root_wd = wd->root_widget;
 | 
									core_window_t * root_wd = wd->root_widget;
 | 
				
			||||||
				auto & nimbus = root_wd->other.attribute.root->effects_edge_nimbus;
 | 
									auto & nimbus = root_wd->other.attribute.root->effects_edge_nimbus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				for (auto i = nimbus.cbegin(); i != nimbus.cend(); ++i)
 | 
									for (auto i = nimbus.begin(); i != nimbus.end(); ++i)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					if (i->window == wd)
 | 
										if (i->window == wd)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ namespace nana{	namespace audio
 | 
				
			|||||||
		//class audio_stream
 | 
							//class audio_stream
 | 
				
			||||||
			bool audio_stream::open(const nana::string& file)
 | 
								bool audio_stream::open(const nana::string& file)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				std::string fname{nana::charset(file)};//static_cast<std::string>()
 | 
									std::string fname = nana::charset(file);
 | 
				
			||||||
				fs_.open(fname, std::ios::binary);
 | 
									fs_.open(fname, std::ios::binary);
 | 
				
			||||||
				if(fs_)
 | 
									if(fs_)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 *	A FileSystem Utility Implementation
 | 
					 *	A ISO C++ FileSystem Implementation
 | 
				
			||||||
 *	Copyright(C) 2003-2013 Jinhao(cnjinhao@hotmail.com)
 | 
					 *	Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com)
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 *	Distributed under the Boost Software License, Version 1.0.
 | 
					 *	Distributed under the Boost Software License, Version 1.0.
 | 
				
			||||||
 *	(See accompanying file LICENSE_1_0.txt or copy at
 | 
					 *	(See accompanying file LICENSE_1_0.txt or copy at
 | 
				
			||||||
@ -206,8 +206,8 @@ namespace nana {
 | 
				
			|||||||
				struct stat fst;
 | 
									struct stat fst;
 | 
				
			||||||
				if (0 == ::stat(static_cast<std::string>(nana::charset(file)).c_str(), &fst))
 | 
									if (0 == ::stat(static_cast<std::string>(nana::charset(file)).c_str(), &fst))
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					attr.bytes = fst.st_size;
 | 
										attr.size = fst.st_size;
 | 
				
			||||||
					attr.is_directory = (0 != (040000 & fst.st_mode));
 | 
										attr.directory = (0 != (040000 & fst.st_mode));
 | 
				
			||||||
					attr.modified = *(::localtime(&fst.st_ctime));
 | 
										attr.modified = *(::localtime(&fst.st_ctime));
 | 
				
			||||||
					return true;
 | 
										return true;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
@ -435,7 +435,7 @@ namespace nana {
 | 
				
			|||||||
#elif defined(NANA_LINUX)
 | 
					#elif defined(NANA_LINUX)
 | 
				
			||||||
				const char * s = ::getenv("PWD");
 | 
									const char * s = ::getenv("PWD");
 | 
				
			||||||
				if (s)
 | 
									if (s)
 | 
				
			||||||
					return nana::charset(std::string(s, std::strlen(s)), nana::unicode::utf8);
 | 
										return static_cast<nana::string>(nana::charset(std::string(s, std::strlen(s)), nana::unicode::utf8));
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
				return nana::string();
 | 
									return nana::string();
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
				
			|||||||
@ -444,7 +444,7 @@ namespace detail
 | 
				
			|||||||
		arg.window_handle = reinterpret_cast<window>(wd);
 | 
							arg.window_handle = reinterpret_cast<window>(wd);
 | 
				
			||||||
		arg.button = ::nana::mouse::any_button;
 | 
							arg.button = ::nana::mouse::any_button;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		int mask_state == 0;
 | 
							int mask_state = 0;
 | 
				
			||||||
		if (ButtonPress == msg || ButtonRelease == msg)
 | 
							if (ButtonPress == msg || ButtonRelease == msg)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			mask_state = evt.xbutton.state;
 | 
								mask_state = evt.xbutton.state;
 | 
				
			||||||
@ -483,11 +483,11 @@ namespace detail
 | 
				
			|||||||
			arg.pos.y = evt.xcrossing.y - wd->pos_root.y;
 | 
								arg.pos.y = evt.xcrossing.y - wd->pos_root.y;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		arg.left_button		= (Button1Mask & state);
 | 
							arg.left_button		= (Button1Mask & mask_state);
 | 
				
			||||||
		arg.right_button	= (Button2Mask & state);
 | 
							arg.right_button	= (Button2Mask & mask_state);
 | 
				
			||||||
		arg.mid_button		= (Button3Mask & state);
 | 
							arg.mid_button		= (Button3Mask & mask_state);
 | 
				
			||||||
		arg.shift	= (ShiftMask & state);
 | 
							arg.shift	= (ShiftMask & mask_state);
 | 
				
			||||||
		arg.ctrl	= (ControlMask & state);
 | 
							arg.ctrl	= (ControlMask & mask_state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1133,7 +1133,7 @@ namespace detail
 | 
				
			|||||||
						brock.emit(event_code::key_release, msgwnd, arg, true, &context);
 | 
											brock.emit(event_code::key_release, msgwnd, arg, true, &context);
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					if (context.platform.keychar < keyboard::os_arrow_left || keyboard::os_arrow_down < wParam)
 | 
										if (context.platform.keychar < keyboard::os_arrow_left || keyboard::os_arrow_down < context.platform.keychar)
 | 
				
			||||||
						brock.delay_restore(2);	//Restores while key release
 | 
											brock.delay_restore(2);	//Restores while key release
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				else
 | 
									else
 | 
				
			||||||
 | 
				
			|||||||
@ -163,7 +163,7 @@ namespace nana
 | 
				
			|||||||
			btn_folder_.create(*this);
 | 
								btn_folder_.create(*this);
 | 
				
			||||||
			btn_folder_.caption(STR("&New Folder"));
 | 
								btn_folder_.caption(STR("&New Folder"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			btn_folder_.events().click.connect_unignorable([this](const arg_mouse&)
 | 
								btn_folder_.events().click.connect_unignorable([this](const arg_click&)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				form fm(this->handle(), API::make_center(*this, 300, 35));
 | 
									form fm(this->handle(), API::make_center(*this, 300, 35));
 | 
				
			||||||
				fm.caption(STR("Name the new folder"));
 | 
									fm.caption(STR("Name the new folder"));
 | 
				
			||||||
@ -179,7 +179,7 @@ namespace nana
 | 
				
			|||||||
				button btn_cancel(fm, nana::rectangle(235, 5, 60, 25));
 | 
									button btn_cancel(fm, nana::rectangle(235, 5, 60, 25));
 | 
				
			||||||
				btn_cancel.caption(STR("Cancel"));
 | 
									btn_cancel.caption(STR("Cancel"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				btn_cancel.events().click.connect_unignorable([&fm](const arg_mouse&)
 | 
									btn_cancel.events().click.connect_unignorable([&fm](const arg_click&)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					fm.close();
 | 
										fm.close();
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
@ -288,14 +288,14 @@ namespace nana
 | 
				
			|||||||
			btn_ok_.create(*this);
 | 
								btn_ok_.create(*this);
 | 
				
			||||||
			btn_ok_.caption(STR("&OK"));
 | 
								btn_ok_.caption(STR("&OK"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			btn_ok_.events().click.connect_unignorable([this](const arg_mouse&)
 | 
								btn_ok_.events().click.connect_unignorable([this](const arg_click&)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				_m_ok();
 | 
									_m_ok();
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
			btn_cancel_.create(*this);
 | 
								btn_cancel_.create(*this);
 | 
				
			||||||
			btn_cancel_.caption(STR("&Cancel"));
 | 
								btn_cancel_.caption(STR("&Cancel"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			btn_cancel_.events().click.connect_unignorable([this](const arg_mouse&)
 | 
								btn_cancel_.events().click.connect_unignorable([this](const arg_click&)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				API::close_window(handle());
 | 
									API::close_window(handle());
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
 | 
				
			|||||||
@ -48,7 +48,7 @@ namespace nana
 | 
				
			|||||||
				{
 | 
									{
 | 
				
			||||||
					graph.rectangle(rectangle{0, 0, graph.width(), graph.height() - 50}, true, colors::white);
 | 
										graph.rectangle(rectangle{0, 0, graph.width(), graph.height() - 50}, true, colors::white);
 | 
				
			||||||
					if(ico_.empty() == false)
 | 
										if(ico_.empty() == false)
 | 
				
			||||||
						ico_.stretch(ico_.size(), graph, rectangle{12, 25, 32, 32});
 | 
											ico_.stretch(rectangle{ico_.size()}, graph, rectangle{12, 25, 32, 32});
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				unsigned width_pixel = 45;
 | 
									unsigned width_pixel = 45;
 | 
				
			||||||
@ -57,7 +57,7 @@ namespace nana
 | 
				
			|||||||
				place_.bind(*this);
 | 
									place_.bind(*this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				yes_.create(*this);
 | 
									yes_.create(*this);
 | 
				
			||||||
				yes_.events().click.connect_unignorable([this](const arg_mouse& arg)
 | 
									yes_.events().click.connect_unignorable([this](const arg_click& arg)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					_m_click(arg);
 | 
										_m_click(arg);
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
@ -69,7 +69,7 @@ namespace nana
 | 
				
			|||||||
					yes_.caption(STR("Yes"));
 | 
										yes_.caption(STR("Yes"));
 | 
				
			||||||
					no_.create(*this);
 | 
										no_.create(*this);
 | 
				
			||||||
					no_.caption(STR("No"));
 | 
										no_.caption(STR("No"));
 | 
				
			||||||
					no_.events().click.connect_unignorable([this](const arg_mouse& arg)
 | 
										no_.events().click.connect_unignorable([this](const arg_click& arg)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						_m_click(arg);
 | 
											_m_click(arg);
 | 
				
			||||||
					});
 | 
										});
 | 
				
			||||||
@ -80,7 +80,7 @@ namespace nana
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						cancel_.create(*this);
 | 
											cancel_.create(*this);
 | 
				
			||||||
						cancel_.caption(STR("Cancel"));
 | 
											cancel_.caption(STR("Cancel"));
 | 
				
			||||||
						cancel_.events().click.connect_unignorable([this](const arg_mouse& arg)
 | 
											cancel_.events().click.connect_unignorable([this](const arg_click& arg)
 | 
				
			||||||
						{
 | 
											{
 | 
				
			||||||
							_m_click(arg);
 | 
												_m_click(arg);
 | 
				
			||||||
						});
 | 
											});
 | 
				
			||||||
@ -303,11 +303,11 @@ namespace nana
 | 
				
			|||||||
						nana::paint::pixel_buffer pxbuf(32, 32);
 | 
											nana::paint::pixel_buffer pxbuf(32, 32);
 | 
				
			||||||
						pxbuf.put(reinterpret_cast<const unsigned char*>(rawpx), 32, 32, 32, 4*32, true);
 | 
											pxbuf.put(reinterpret_cast<const unsigned char*>(rawpx), 32, 32, 32, 4*32, true);
 | 
				
			||||||
						ico_.make({32, 32});
 | 
											ico_.make({32, 32});
 | 
				
			||||||
						pxbuf.paste(ico_.handle(), 0, 0);
 | 
											pxbuf.paste(ico_.handle(), {});
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			void _m_click(const arg_mouse& arg)
 | 
								void _m_click(const arg_click& arg)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				if(arg.window_handle == yes_)
 | 
									if(arg.window_handle == yes_)
 | 
				
			||||||
					pick_ = (no_.empty() ? msgbox::pick_ok : msgbox::pick_yes);
 | 
										pick_ = (no_.empty() ? msgbox::pick_ok : msgbox::pick_yes);
 | 
				
			||||||
 | 
				
			|||||||
@ -114,7 +114,7 @@ namespace nana
 | 
				
			|||||||
		void load_monitors()
 | 
							void load_monitors()
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			displays.clear();
 | 
								displays.clear();
 | 
				
			||||||
			displays.emplace_back(0, primary_monitor_size());
 | 
								displays.emplace_back(0, rectangle{primary_monitor_size()});
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -165,13 +165,13 @@ namespace nana{
 | 
				
			|||||||
		return *this;
 | 
							return *this;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	group& group::collocate()
 | 
						group& group::collocate() throw ()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		impl_->place_content.collocate();
 | 
							impl_->place_content.collocate();
 | 
				
			||||||
		return *this;
 | 
							return *this;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	group& group::div(const char* div_str)
 | 
						group& group::div(const char* div_str) throw ()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if (div_str)
 | 
							if (div_str)
 | 
				
			||||||
			impl_->usr_div_str = div_str;
 | 
								impl_->usr_div_str = div_str;
 | 
				
			||||||
 | 
				
			|||||||
@ -17,6 +17,7 @@
 | 
				
			|||||||
#include <nana/unicode_bidi.hpp>
 | 
					#include <nana/unicode_bidi.hpp>
 | 
				
			||||||
#include <numeric>
 | 
					#include <numeric>
 | 
				
			||||||
#include <cwctype>
 | 
					#include <cwctype>
 | 
				
			||||||
 | 
					#include <cstring>
 | 
				
			||||||
#include <set>
 | 
					#include <set>
 | 
				
			||||||
#include <algorithm>
 | 
					#include <algorithm>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -417,7 +417,7 @@ namespace nana{	namespace paint
 | 
				
			|||||||
#elif defined(NANA_X11)
 | 
					#elif defined(NANA_X11)
 | 
				
			||||||
		try
 | 
							try
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			storage_ = std::make_shared<pixel_buffer_storage>(drawable, sz);
 | 
								storage_ = std::make_shared<pixel_buffer_storage>(drawable, nana::rectangle{sz});
 | 
				
			||||||
			storage_->detach();
 | 
								storage_->detach();
 | 
				
			||||||
			return true;
 | 
								return true;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user