X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fsynfigapp%2Fcvs.cpp;h=cd9f1ad73571be3e2689ca3f0c14a2216dbad2ca;hb=c34eaa5441242b3e9a7b7645e9ee4983d14eae85;hp=67dccca806e206853d8f520aad826768c694fcf5;hpb=02252941b29de64037116f4d37991a38d9ff0d94;p=synfig.git diff --git a/synfig-studio/trunk/src/synfigapp/cvs.cpp b/synfig-studio/trunk/src/synfigapp/cvs.cpp index 67dccca..cd9f1ad 100644 --- a/synfig-studio/trunk/src/synfigapp/cvs.cpp +++ b/synfig-studio/trunk/src/synfigapp/cvs.cpp @@ -5,16 +5,17 @@ ** $Id: cvs.cpp,v 1.1.1.1 2005/01/07 03:34:37 darco Exp $ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. ** \endlegal */ /* ========================================================================= */ @@ -89,7 +90,7 @@ void CVSInfo::set_file_name(const synfig::String& file_name) { file_name_=file_name; - + std::ifstream file((dirname(file_name_)+"/CVS/Root").c_str()); if(file) @@ -107,10 +108,10 @@ CVSInfo::calc_repository_info() #ifdef _DEBUG synfig::info("in_sandbox() = %d",in_sandbox()); #endif - + if(!in_sandbox_) return; - + std::ifstream file((dirname(file_name_)+"/CVS/Entries").c_str()); while(file) @@ -121,7 +122,7 @@ CVSInfo::calc_repository_info() { in_repository_=true; String::size_type s,f; - + // Grab the version s=line.find('/',1); assert(s!=String::npos); @@ -129,7 +130,7 @@ CVSInfo::calc_repository_info() f=line.find('/',s+1); assert(f!=String::npos); cvs_version_=String(line,s,f-s); - + // Grab the time #ifdef HAVE_STRPTIME s=f+1; @@ -139,7 +140,7 @@ CVSInfo::calc_repository_info() strptime(String(line,s,f-s).c_str(),"%c",&time_struct); original_timestamp_=mktime(&time_struct); #endif - + if( system(strprintf( "cd '%s' && cvs status '%s' | grep -q -e 'Needs Patch'", @@ -161,8 +162,8 @@ CVSInfo::calc_repository_info() synfig::info("UPDATE_AVAILABLE=FALSE"); update_available_=false; } - - + + #ifdef _DEBUG synfig::info("in_repository() = %d",in_repository()); synfig::info("get_cvs_version() = %s",get_cvs_version().c_str()); @@ -171,7 +172,7 @@ CVSInfo::calc_repository_info() synfig::info("get_current_timestamp() = %s",ctime(&t)); synfig::info("get_cvs_root() = %s",get_cvs_root().c_str()); synfig::info("get_cvs_module() = %s",get_cvs_module().c_str()); -#endif +#endif return; } } @@ -202,11 +203,11 @@ CVSInfo::in_repository()const bool CVSInfo::is_modified()const { + if(!in_sandbox() || !in_repository()) + return false; #ifdef _DEBUG synfig::info("%d-%d=%d",get_current_timestamp(),get_original_timestamp(),get_current_timestamp()-get_original_timestamp()); #endif - if(!in_sandbox() || !in_repository()) - return false; return get_current_timestamp()!=get_original_timestamp() && abs(get_current_timestamp()-get_original_timestamp())!=3600; } @@ -237,7 +238,10 @@ CVSInfo::get_current_timestamp()const synfig::error("Unable to get file stats"); return false; } - return st.st_mtime+timezone+(daylight-1)*3600; + time_t ret((daylight-1)*3600); + //ret+=timezone; + ret+=st.st_mtime; + return ret; } synfig::String @@ -245,7 +249,7 @@ CVSInfo::get_cvs_root()const { if(!in_sandbox_) return synfig::String(); - + std::ifstream file((dirname(file_name_)+"/CVS/Root").c_str()); if(file) @@ -301,11 +305,11 @@ CVSInfo::cvs_add(const synfig::String& message) throw int(); return; } - + synfig::String command(strprintf("cd '%s' && %s add -m '%s' '%s'",dirname(file_name_).c_str(),cvs_command.c_str(),fix_msg(message).c_str(),basename(file_name_).c_str())); - + int ret(system(command.c_str())); - + calc_repository_info(); switch(ret) @@ -318,7 +322,7 @@ CVSInfo::cvs_add(const synfig::String& message) break; } } - + void CVSInfo::cvs_update() { @@ -328,13 +332,13 @@ CVSInfo::cvs_update() throw int(); return; } - + synfig::String command(strprintf("cd '%s' && %s update '%s'",dirname(file_name_).c_str(),cvs_command.c_str(),basename(file_name_).c_str())); - + int ret(system(command.c_str())); calc_repository_info(); - + switch(ret) { case 0: @@ -345,7 +349,7 @@ CVSInfo::cvs_update() break; } } - + void CVSInfo::cvs_commit(const synfig::String& message) { @@ -355,13 +359,13 @@ CVSInfo::cvs_commit(const synfig::String& message) throw int(); return; } - + synfig::String command(strprintf("cd '%s' && %s commit -m '%s' '%s'",dirname(file_name_).c_str(),cvs_command.c_str(),fix_msg(message).c_str(),basename(file_name_).c_str())); - + int ret(system(command.c_str())); calc_repository_info(); - + switch(ret) { case 0: