|  |  | @ -251,6 +251,7 @@ int main(int argc, char *argv[]) | 
		
	
		
			
			|  |  |  | if (TextFindIndex(exColInfo, argv[2]) != -1) // Example in the collection | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | strcpy(exName, argv[2]); // Register filename for removal | 
		
	
		
			
			|  |  |  | strncpy(exCategory, exName, TextFindIndex(exName, "_")); | 
		
	
		
			
			|  |  |  | opCode = OP_REMOVE; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | else LOG("WARNING: REMOVE: Example not available in the collection\n"); | 
		
	
	
		
			
				|  |  | @ -350,7 +351,6 @@ int main(int argc, char *argv[]) | 
		
	
		
			
			|  |  |  | RL_FREE(exColInfoUpdated); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | else LOG("WARNING: ADD: Example is already on the collection\n"); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | UnloadFileText(exColInfo); | 
		
	
		
			
			|  |  |  | //------------------------------------------------------------------------------------------------ | 
		
	
		
			
			|  |  |  |  | 
		
	
	
		
			
				|  |  | @ -465,7 +465,26 @@ int main(int argc, char *argv[]) | 
		
	
		
			
			|  |  |  | } break; | 
		
	
		
			
			|  |  |  | case 4:     // Remove | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | // TODO: Remove and update all required files... | 
		
	
		
			
			|  |  |  | // Remove example from collection for files update | 
		
	
		
			
			|  |  |  | //------------------------------------------------------------------------------------------------ | 
		
	
		
			
			|  |  |  | char *exColInfo = LoadFileText(exCollectionListPath); | 
		
	
		
			
			|  |  |  | int exIndex = TextFindIndex(exColInfo, TextFormat("%s;%s", exCategory, exName)); | 
		
	
		
			
			|  |  |  | if (exIndex > 0) // Example found | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | char *exColInfoUpdated = (char *)RL_CALLOC(2*1024*1024, 1); // Updated list copy, 2MB | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | memcpy(exColInfoUpdated, exColInfo, exIndex); | 
		
	
		
			
			|  |  |  | int lineLen = 0; | 
		
	
		
			
			|  |  |  | for (int i = exIndex; (exColInfo[i] != '\n') && (exColInfo[i] != '\0'); i++) lineLen++; | 
		
	
		
			
			|  |  |  | // Remove line and copy the rest next | 
		
	
		
			
			|  |  |  | memcpy(exColInfoUpdated + exIndex, exColInfo + exIndex + lineLen + 1, strlen(exColInfo) - exIndex - lineLen); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | SaveFileText(exCollectionListPath, exColInfoUpdated); | 
		
	
		
			
			|  |  |  | RL_FREE(exColInfoUpdated); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | else LOG("WARNING: REMOVE: Example not found in the collection\n"); | 
		
	
		
			
			|  |  |  | UnloadFileText(exColInfo); | 
		
	
		
			
			|  |  |  | //------------------------------------------------------------------------------------------------ | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Remove: raylib/examples/<category>/<category>_example_name.c | 
		
	
		
			
			|  |  |  | // Remove: raylib/examples/<category>/<category>_example_name.png | 
		
	
	
		
			
				|  |  | @ -474,37 +493,15 @@ int main(int argc, char *argv[]) | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // TODO: Remove: raylib/examples/<category>/resources/.. | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Edit: raylib/examples/Makefile | 
		
	
		
			
			|  |  |  | //--------------------------------------------------------------------------- | 
		
	
		
			
			|  |  |  | // | 
		
	
		
			
			|  |  |  | // | 
		
	
		
			
			|  |  |  | //--------------------------------------------------------------------------- | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Edit: raylib/examples/Makefile.Web | 
		
	
		
			
			|  |  |  | //--------------------------------------------------------------------------- | 
		
	
		
			
			|  |  |  | // | 
		
	
		
			
			|  |  |  | // | 
		
	
		
			
			|  |  |  | //--------------------------------------------------------------------------- | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Edit: raylib/examples/README.md | 
		
	
		
			
			|  |  |  | //--------------------------------------------------------------------------- | 
		
	
		
			
			|  |  |  | // | 
		
	
		
			
			|  |  |  | // | 
		
	
		
			
			|  |  |  | //--------------------------------------------------------------------------- | 
		
	
		
			
			|  |  |  | UpdateRequiredFiles(); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Remove: raylib/projects/VS2022/examples/<category>_example_name.vcxproj | 
		
	
		
			
			|  |  |  | remove(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exName)); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Edit: raylib/projects/VS2022/raylib.sln | 
		
	
		
			
			|  |  |  | //--------------------------------------------------------------------------- | 
		
	
		
			
			|  |  |  | // | 
		
	
		
			
			|  |  |  | // | 
		
	
		
			
			|  |  |  | //--------------------------------------------------------------------------- | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Edit: raylib.com/common/examples.js | 
		
	
		
			
			|  |  |  | // Edit: raylib/projects/VS2022/raylib.sln --> Remove example project | 
		
	
		
			
			|  |  |  | //--------------------------------------------------------------------------- | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | system(TextFormat("dotnet solution %s/../projects/VS2022/raylib.sln remove %s/../projects/VS2022/examples/%s.vcxproj", | 
		
	
		
			
			|  |  |  | exBasePath, exBasePath, exName)); | 
		
	
		
			
			|  |  |  | //--------------------------------------------------------------------------- | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Remove: raylib.com/examples/<category>/<category>_example_name.html | 
		
	
	
		
			
				|  |  | @ -610,7 +607,7 @@ static int UpdateRequiredFiles(void) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Add the remaining part of the original file | 
		
	
		
			
			|  |  |  | memcpy(mkTextUpdated + mkListStartIndex + mkIndex, mkText + mkListEndIndex, strlen(mkText) - mkListEndIndex); | 
		
	
		
			
			|  |  |  | memcpy(mkTextUpdated + mkListStartIndex + mkIndex - 1, mkText + mkListEndIndex, strlen(mkText) - mkListEndIndex); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Save updated file | 
		
	
		
			
			|  |  |  | SaveFileText(TextFormat("%s/Makefile", exBasePath), mkTextUpdated); | 
		
	
	
		
			
				|  |  | @ -644,7 +641,7 @@ static int UpdateRequiredFiles(void) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Add the remaining part of the original file | 
		
	
		
			
			|  |  |  | memcpy(mkwTextUpdated + mkwListStartIndex + mkwIndex, mkwText + mkwListEndIndex, strlen(mkwText) - mkwListEndIndex); | 
		
	
		
			
			|  |  |  | memcpy(mkwTextUpdated + mkwListStartIndex + mkwIndex - 1, mkwText + mkwListEndIndex, strlen(mkwText) - mkwListEndIndex); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // TODO: Add new example target, considering resources | 
		
	
		
			
			|  |  |  |  | 
		
	
	
		
			
				|  |  | @ -802,7 +799,6 @@ static int UpdateRequiredFiles(void) | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | return result; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Load examples collection information | 
		
	
		
			
			|  |  |  | static rlExampleInfo *LoadExamplesData(const char *fileName, const char *category, bool sort, int *exCount) | 
		
	
	
		
			
				|  |  |  |