[31m--------------------------------------------------------------------------------------------------------------------------------------------------------------[m
[31m-- Gnostic is Ada Generic Neural Object System Engineering.                                                                                                --[m
[31m-- Gnostic (C) Copyright 2016 Manuel De Girardi.                                                                                                           --[m
[31m--------------------------------------------------------------------------------------------------------------------------------------------------------------[m
  
[31m--------------------------------------------------------------------------------------------------------------------------------------------------------------[m
[31m-- Date        := 2016-12-04 15:05:40 ; [m
[31m-- Description : Ada Generic Neural Object System Engineering.                                                                                              --[m
[31m-- Version     := 2016.34.3a ; [m
[31m-- Authors     : Manuel De Girardi.                                                                                                                         --[m
[31m--------------------------------------------------------------------------------------------------------------------------------------------------------------[m

[01;34mwith[m Gnat[31m.[mOs_Lib[31m;[m
[01;34mwith[m Ada[31m.[mDirectories[31m;[m
[01;34muse[m Ada[31m.[mDirectories[31m;[m
[01;34mwith[m Ada[31m.[mCharacters[31m.[mHandling[31m;[m
[01;34muse[m Ada[31m.[mCharacters[31m.[mHandling[31m;[m
[01;34mwith[m Gnos[31m.[mVersions[31m;[m
[01;34mwith[m Ada[31m.[mText_Io[31m;[m
[01;34mwith[m Ada[31m.[mDirectories[31m;[m
[01;34mwith[m ada[31m.[mstrings[31m.[mfixed[31m;[m
[01;34muse[m ada[31m.[mstrings[31m.[mfixed[31m;[m
[01;34muse[m ada[31m.[mstrings[31m;[m

[01;34mpackage[m [01;34mbody[m Gnos[31m.[mVersions[31m.[mEnvironment [01;34mis[m
   
   [01;34mprocedure[m [01;30mSet_Date[m[31m([mDate [31m:[m [01;34mout[m Date_Type[31m;[m To [31m:[m [01;34min[m Calendar[31m.[mTime[31m)[m [01;34mis[m
      
   [01;34mbegin[m
      Calendar[31m.[m[01;30mSplit[m[31m([mTo[31m,[m Date[31m.[mYear[31m,[m Date[31m.[mMonth[31m,[m Date[31m.[mDay[31m,[m Date[31m.[mHours[31m);[m
   [01;34mend[m Set_date[31m;[m
   
   [01;34mfunction[m Version_Reset [01;34mreturn[m [32mInteger[m [01;34mis[m
   [01;34mbegin[m
      Versions[31m.[mVersion[31m.[mMajor_Version [31m:=[m Versions[31m.[mMajor_Version_Type'First[31m;[m
      Versions[31m.[mVersion[31m.[mMinor_Version [31m:=[m Versions[31m.[mMinor_Version_Type'First[31m;[m
      Versions[31m.[mVersion[31m.[mRevision_Version [31m:=[m Versions[31m.[mRevision_Version_Type'First[31m;[m
      Versions[31m.[mVersion[31m.[mRelease_Version [31m:=[m [31m'a'[m[31m;[m
      [01;34mreturn[m [35m0[m[31m;[m
   [01;34mend[m Version_Reset[31m;[m
   
   [01;34mfunction[m Version_Update [01;34mreturn[m [32mInteger[m [01;34mis[m
   [01;34mbegin[m
      [31m--Set_date(Shared_Date, Calendar.Clock);[m
      [01;34mif[m [01;34mnot[m New_Version [01;34mthen[m
	 [01;34mreturn[m [35m0[m[31m;[m      
      [01;34mend[m [01;34mif[m[31m;[m
      [31m-- Change major if is the current year > Major_Version.[m
      [01;34mif[m Versions[31m.[mVersion[31m.[mMajor_Version [31m<[m Calendar[31m.[m[01;30mYear[m[31m([mCalendar[31m.[mClock[31m)[m [01;34mthen[m 
	 [01;34mif[m Versions[31m.[mVersion[31m.[mMajor_Version [31m+[m [35m1[m [31m<[m Major_Version_Type'Last [01;34mthen[m
	    Versions[31m.[mVersion[31m.[mMajor_Version [31m:=[m Versions[31m.[mVersion[31m.[mMajor_Version [31m+[m [35m1[m[31m;[m
	    Versions[31m.[mVersion[31m.[mMinor_Version [31m:=[m [35m0[m[31m;[m
	    Versions[31m.[mVersion[31m.[mRevision_Version [31m:=[m [35m0[m[31m;[m
	 [01;34melse[m
	    [01;34mreturn[m [31m-[m[35m1[m[31m;[m
	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
      [01;34mif[m New_Description [01;34mor[m New_Action [01;34mthen[m
	 Versions[31m.[mVersion[31m.[mRelease_Version [31m:=[m [31m'a'[m[31m;[m
      [01;34melsif[m Versions[31m.[mVersion[31m.[mRelease_Version [31m=[m [31m'a'[m [01;34mthen[m
	 Versions[31m.[mVersion[31m.[mRelease_Version [31m:=[m [31m'b'[m[31m;[m
      [01;34melse[m
	 [01;34mreturn[m [35m0[m[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m      
            
      [31m-- Change minor if some data description is modified or added.[m
      [01;34mif[m New_Description [01;34mthen[m	    
	 [01;34mif[m Versions[31m.[mVersion[31m.[mMinor_Version [31m+[m [35m1[m [31m<[m Minor_Version_Type'Last [01;34mthen[m
	    Versions[31m.[mVersion[31m.[mMinor_Version [31m:=[m Versions[31m.[mVersion[31m.[mMinor_Version [31m+[m [35m1[m[31m;[m	      
	    Versions[31m.[mVersion[31m.[mRevision_Version [31m:=[m [35m0[m[31m;[m		  	    
	 [01;34melse[m
	    [01;34mreturn[m [31m-[m[35m1[m[31m;[m
	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
      
      [31m-- Change minor if some function is modified or added.[m
      [01;34mif[m New_Action [01;34mthen[m	       
	 [01;34mif[m Versions[31m.[mVersion[31m.[mRevision_Version [31m+[m [35m1[m [31m<[m Revision_Version_Type'Last [01;34mthen[m
	    Versions[31m.[mVersion[31m.[mRevision_Version [31m:=[m Versions[31m.[mVersion[31m.[mRevision_Version [31m+[m [35m1[m[31m;[m
	 [01;34melse[m
	    [01;34mreturn[m [31m-[m[35m1[m[31m;[m
	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
      
      [01;34mreturn[m [35m0[m[31m;[m

   [01;34mend[m Version_Update[31m;[m
   
   
   [01;34mprocedure[m [01;30mSet_Start_Time[m[31m([mDate [31m:[m [01;34min[m Calendar[31m.[mTime [31m:=[m Calendar[31m.[mClock[31m)[m [01;34mis[m
   [01;34mbegin[m
      [01;30mSet_Date[m[31m([mStart_Date[31m,[m Date[31m);[m
   [01;34mend[m Set_Start_Time[31m;[m
   
   [01;34mfunction[m [01;30mCheck_Modification_To_New_Description[m[31m([mProject_Context [31m:[m [01;34min[m Projects_Context_Record[31m)[m [01;34mreturn[m [32mBoolean[m [01;34mis[m
      
      To_Be_Updated [31m:[m [32mBoolean[m [31m:=[m False[31m;[m
      Buffer [31m:[m Variadic_Access[31m;[m
      Initialized [31m:[m [32mBoolean[m [31m:=[m False[31m;[m
   [01;34mbegin[m
      [01;34mfor[m File_Id [01;34min[m [35m1[m[31m..[mProject_Context[31m.[mProject[31m.[mProj_Library[31m.[mUnit_Index [01;34mloop[m
	 [01;34mdeclare[m
	    file_name [31m:[m [32mstring[m [31m:=[m Project_Context[31m.[mProject[31m.[mProj_Library[31m.[m[01;30mLibrary_Unit[m[31m([mFile_Id[31m).[mFile_Name
	      [31m([m[35m1[m[31m..[m[01;30mindex_non_blank[m[31m([mProject_Context[31m.[mProject[31m.[mProj_Library[31m.[m[01;30mLibrary_Unit[m[31m([mFile_Id[31m).[mFile_Name[31m,[m backward[31m));[m
	    
	 [01;34mbegin[m

	    [01;34mif[m [01;30mExtension[m[31m([mfile_name[31m)[m [31m=[m [31m"ads"[m [01;34mthen[m
	       [01;34mif[m Calendar[31m.[m[31m">"[m[31m([mDirectories[31m.[m[01;30mModification_Time[m[31m([mFile_Name[31m),[m
					  Calendar[31m.[m[01;30mTime_Of[m[31m([mStart_Date[31m.[mYear[31m,[m Start_Date[31m.[mMonth[31m,[m Start_Date[31m.[mDay[31m,[m Start_Date[31m.[mHours[31m))[m [01;34mthen[m
		  Text_Io[31m.[m[01;30mPut_Line[m[31m([m[31m"Modified filename : "[m [31m&[m File_Name[31m);[m
		  To_Be_Updated [31m:=[m True[31m;[m
		  

		     
		  
		  [01;34mif[m Initialized [01;34mthen[m
		     Buffer [31m:=[m [01;34mnew[m [01;30mVariadic_Array[m[31m([m[35m1[m[31m..([mSpecifications_Filenames_Search[31m.[mFile_Content'Length[31m)+[m[35m1[m[31m);[m
		     [01;30mBuffer[m[31m([mBuffer[31m'First..Buffer'[mLast[31m-[m[35m1[m[31m)[m [31m:=[m Specifications_Filenames_Search[31m.[mFile_Content[31m.[m[01;34mall[m[31m;[m
		     [01;30mBuffer[m[31m([mBuffer'Last[31m)[m [31m:=[m [31m(+([m[01;30mTo_Wide_String[m[31m([mFile_Name[31m)));[m
		  [01;34melse[m
		     Buffer [31m:=[m [01;34mnew[m [01;30mVariadic_Array[m[31m([m[35m1[m[31m..[m[35m1[m[31m);[m
		     [01;30mBuffer[m[31m([mBuffer'Last[31m)[m [31m:=[m [31m(+([m[01;30mTo_Wide_String[m[31m([mFile_Name[31m)));[m
		     Initialized [31m:=[m True[31m;[m
		  [01;34mend[m [01;34mif[m[31m;[m
		  
                        
		  
	       
		  [01;30mFree[m[31m([mSpecifications_Filenames_Search[31m.[mFile_Content[31m);[m
		  Specifications_Filenames_Search[31m.[mFile_Content [31m:=[m [01;34mnew[m Variadic_Array ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
		  [01;30mFree[m[31m([mBuffer[31m);[m
                     	                         			   
			   
	       [01;34mend[m [01;34mif[m[31m;[m
	    [01;34mend[m [01;34mif[m[31m;[m
	[01;34mend[m[31m;[m
      [01;34mend[m [01;34mLoop[m[31m;[m
      [01;34mreturn[m To_Be_Updated[31m;[m
   [01;34mend[m[31m;[m
   
   [01;34mfunction[m [01;30mCheck_Modification_To_New_Action[m[31m([mProject_Context [31m:[m [01;34min[m Projects_Context_Record[31m)[m  [01;34mreturn[m [32mBoolean[m [01;34mis[m
   
      To_Be_Updated [31m:[m [32mBoolean[m [31m:=[m False[31m;[m
      Buffer [31m:[m Variadic_Access[31m;[m
      Initialized [31m:[m [32mBoolean[m [31m:=[m False[31m;[m
   [01;34mbegin[m
      [01;34mfor[m File_Id [01;34min[m [35m1[m[31m..[mProject_Context[31m.[mProject[31m.[mProj_Library[31m.[mUnit_Index [01;34mloop[m
	[01;34mdeclare[m
		file_name [31m:[m [32mstring[m [31m:=[m Project_Context[31m.[mProject[31m.[mProj_Library[31m.[m[01;30mLibrary_Unit[m[31m([mFile_Id[31m).[mFile_Name
		  [31m([m[35m1[m[31m..[m[01;30mindex_non_blank[m[31m([mProject_Context[31m.[mProject[31m.[mProj_Library[31m.[m[01;30mLibrary_Unit[m[31m([mFile_Id[31m).[mFile_Name[31m,[m backward[31m));[m
	[01;34mbegin[m

	   [01;34mif[m [01;30mExtension[m[31m([mFile_Name[31m)[m [31m=[m [31m"adb"[m [01;34mthen[m
	      [01;34mif[m Calendar[31m.[m[31m">"[m[31m([mDirectories[31m.[m[01;30mModification_Time[m[31m([mFile_Name[31m),[m
			      Calendar[31m.[m[01;30mTime_Of[m[31m([mStart_Date[31m.[mYear[31m,[m Start_Date[31m.[mMonth[31m,[m Start_Date[31m.[mDay[31m,[m Start_Date[31m.[mHours[31m))[m [01;34mthen[m
		 Text_Io[31m.[m[01;30mPut_Line[m[31m([m[31m"Modified filename : "[m [31m&[m File_Name[31m);[m
		 To_Be_Updated [31m:=[m True[31m;[m
		 
		 
		 [01;34mif[m Initialized [01;34mthen[m
		    Buffer [31m:=[m [01;34mnew[m [01;30mVariadic_Array[m[31m([m[35m1[m[31m..([mImplementations_Filenames_Search[31m.[mFile_Content'Length[31m)+[m[35m1[m[31m);[m
		    [01;30mBuffer[m[31m([mBuffer[31m'First..Buffer'[mLast[31m-[m[35m1[m[31m)[m [31m:=[m Implementations_Filenames_Search[31m.[mFile_Content[31m.[m[01;34mall[m[31m;[m
		    [01;30mBuffer[m[31m([mBuffer'Last[31m)[m [31m:=[m [31m(+([m[01;30mTo_Wide_String[m[31m([mFile_Name[31m)));[m
		 [01;34melse[m
		    Buffer [31m:=[m [01;34mnew[m [01;30mVariadic_Array[m[31m([m[35m1[m[31m..[m[35m1[m[31m);[m
		    [01;30mBuffer[m[31m([mBuffer'Last[31m)[m [31m:=[m [31m(+([m[01;30mTo_Wide_String[m[31m([mFile_Name[31m)));[m
		    Initialized [31m:=[m True[31m;[m
		 [01;34mend[m [01;34mif[m[31m;[m
		 
		 
		 
		 
		 [01;30mFree[m[31m([mImplementations_Filenames_Search[31m.[mFile_Content[31m);[m
		 Implementations_Filenames_Search[31m.[mFile_Content [31m:=[m [01;34mnew[m Variadic_Array ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
		 [01;30mFree[m[31m([mBuffer[31m);[m

		 
	      [01;34mend[m [01;34mif[m[31m;[m
	   [01;34mend[m [01;34mif[m[31m;[m
	[01;34mend[m[31m;[m
      [01;34mend[m [01;34mLoop[m[31m;[m
      [01;34mreturn[m To_Be_Updated[31m;[m
   [01;34mend[m[31m;[m   
   
   
[01;34mend[m Gnos[31m.[mversions[31m.[mEnvironment[31m;[m
