[ttssh2-commit] [9837] refactoring, コメント追記

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2022年 3月 25日 (金) 22:38:50 JST


Revision: 9837
          https://osdn.net/projects/ttssh2/scm/svn/commits/9837
Author:   zmatsuo
Date:     2022-03-25 22:38:49 +0900 (Fri, 25 Mar 2022)
Log Message:
-----------
refactoring, コメント追記

Modified Paths:
--------------
    trunk/cygwin/cyglaunch/cyglaunch.c
    trunk/cygwin/cyglib/cyglib.c

-------------- next part --------------
Modified: trunk/cygwin/cyglaunch/cyglaunch.c
===================================================================
--- trunk/cygwin/cyglaunch/cyglaunch.c	2022-03-25 13:38:40 UTC (rev 9836)
+++ trunk/cygwin/cyglaunch/cyglaunch.c	2022-03-25 13:38:49 UTC (rev 9837)
@@ -66,7 +66,6 @@
 
 int wmain(int argc, wchar_t *argv[])
 {
-	wchar_t *CygwinDir;
 	wchar_t *Cmdline;
 	int i;
 	DWORD e;
@@ -98,15 +97,16 @@
 		}
 	}
 
-	// cygwin\x82\xAA\x83C\x83\x93\x83X\x83g\x81[\x83\x8B\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x83t\x83H\x83\x8B\x83_
-	CygwinDir = GetCygwinDir();
 
 	// cygterm\x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9
 	if (msys2term) {
-		e = Msys2Connect(CygwinDir, Cmdline);
+		e = Msys2Connect(L"c:\\msys64", Cmdline);
 	}
 	else {
+		// cygwin\x82\xAA\x83C\x83\x93\x83X\x83g\x81[\x83\x8B\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x83t\x83H\x83\x8B\x83_
+		wchar_t *CygwinDir = GetCygwinDir();
 		e = CygwinConnect(CygwinDir, Cmdline);
+		free(CygwinDir);
 	}
 
 	switch(e) {
@@ -128,6 +128,5 @@
 	}
 
 	free(Cmdline);
-	free(CygwinDir);
 	return 0;
 }

Modified: trunk/cygwin/cyglib/cyglib.c
===================================================================
--- trunk/cygwin/cyglib/cyglib.c	2022-03-25 13:38:40 UTC (rev 9836)
+++ trunk/cygwin/cyglib/cyglib.c	2022-03-25 13:38:49 UTC (rev 9837)
@@ -41,8 +41,9 @@
 /**
  *	cygwin1.dll / msys-2.0.dll\x82\xF0\x92T\x82\xB7
  *
- *	@param[in]	dll_base		dll\x83t\x83@\x83C\x83\x8B\x96\xBC
+ *	@param[in]	dll_base		"cygwin1", "msys-2.0" \x82ȂǁA"dll" \x82\xF0\x8F\x9C\x82\xA2\x82\xBD\x83x\x81[\x83X
  *	@param[in]	cygwin_dir		(\x91\xB6\x8D݂\xB7\x82\xE9\x82ł\xA0\x82낤)\x83t\x83H\x83\x8B\x83_(*1)
+ *								\x8Ew\x92\xE8\x82Ȃ\xB5\x82̏ꍇ\x82\xCD NULL \x82\xF0\x93n\x82\xB7
  *	@param[in]	search_paths	(*1)\x82\xAA\x8C\xA9\x82‚\xA9\x82\xE7\x82Ȃ\xA9\x82\xC1\x82\xBD\x82Ƃ\xAB\x82ɒT\x82\xB7\x83p\x83X
  *	@param[out]	find_dir		\x8C\xA9\x82‚\xA9\x82\xC1\x82\xBD\x83t\x83H\x83\x8B\x83_ free() \x82\xB7\x82邱\x82\xC6
  *	@param[out]	find_in_path	\x8A‹\xAB\x95ϐ\x94 PATH \x93\xE0\x82Ɍ\xA9\x82‚\xA9\x82\xC1\x82\xBD
@@ -64,26 +65,33 @@
 
 	// \x8Ew\x92肳\x82ꂽ\x83t\x83H\x83\x8B\x83_\x82ɑ\xB6\x8D݂\xB7\x82邩?
 	if (cygwin_dir != NULL && cygwin_dir[0] != 0) {
-		// SearchPathW() \x82ŒT\x82\xB7
-		dll = NULL;
-		awcscats(&dll, L"bin\\", dll_base, NULL);
-		r = SearchPathW(cygwin_dir, dll, L".dll", _countof(file), file, &filename);
-		free(dll);
-		if (r > 0) {
-			goto found_dll;
-		}
+		static const wchar_t *dll_paths[] = {
+			L"bin\\",		// cygwin\x82\xCD bin/ \x82̉\xBA\x82\xC9dll\x82\xAA\x82\xA0\x82\xE9
+			L"usr\\bin\\"	// msys2\x82\xCD usr/bin/ \x82̉\xBA\x82\xC9dll\x82\xAA\x82\xA0\x82\xE9
+		};
+		for (i = 0; i < _countof(dll_paths); i++) {
+			// SearchPathW() \x82ŒT\x82\xB7
+			dll = NULL;
+			awcscats(&dll, dll_paths[i], dll_base, NULL);
+			r = SearchPathW(cygwin_dir, dll, L".dll", _countof(file), file, &filename);
+			free(dll);
+			if (r > 0) {
+				goto found_dll;
+			}
 
-		// SearchPathW() \x82\xBE\x82\xC6 "msys-2.0.dll" \x82\xAA\x8C\xA9\x82‚\xAF\x82邱\x82Ƃ\xAA\x82ł\xAB\x82Ȃ\xA2 (Windows 10)
-		dll = NULL;
-		awcscats(&dll, cygwin_dir, L"\\bin\\", dll_base, L".dll", NULL);
-		r = GetFileAttributesW(dll);
-		if (r != INVALID_FILE_ATTRIBUTES) {
-			// \x8C\xA9\x82‚\xA9\x82\xC1\x82\xBD
+			// \x8C\xA9\x82‚\xA9\x82\xE7\x82Ȃ\xA9\x82\xC1\x82\xBD\x82\xE7 GetFileAttributesW() \x82ł\xB3\x82\xE7\x82ɒ\xB2\x82ׂ\xE9
+			// 		SearchPathW() \x82\xAA"msys-2.0.dll" \x82\xAA\x8C\xA9\x82‚\xAF\x82邱\x82Ƃ\xAA\x82ł\xAB\x82Ȃ\xA2
+			//		"." \x82\xAA\x93\xFC\x82\xC1\x82Ă\xA2\x82邩\x82炩?
+			dll = NULL;
+			awcscats(&dll, cygwin_dir, L"\\", dll_paths[i], dll_base, L".dll", NULL);
 			wcscpy_s(file, _countof(file), dll);
 			free(dll);
-			goto found_dll;
+			r = GetFileAttributesW(file);
+			if (r != INVALID_FILE_ATTRIBUTES) {
+				// \x8C\xA9\x82‚\xA9\x82\xC1\x82\xBD
+				goto found_dll;
+			}
 		}
-		free(dll);
 	}
 
 	// PATH \x82\xA9\x82\xE7\x92T\x82\xB7
@@ -179,8 +187,10 @@
 /**
  *	Connect to local cygwin
  *	cygterm\x82\xF0\x8E\xC0\x8Ds
- *
- *	@param[in]	CygwinDirectory		Cygwin\x82\xAA\x83C\x83\x93\x83X\x83g\x81[\x83\x8B\x82\xB5\x82Ă\xA0\x82\xE9\x83t\x83H\x83\x8B\x83_
+
+ *	@param[in]	dll_base			"cygwin1", "msys-2.0" \x82ȂǁA"dll" \x82\xF0\x8F\x9C\x82\xA2\x82\xBD\x83x\x81[\x83X
+ *	@param[in]	CygwinDirectory		Cygwin(msys2)\x82\xAA\x83C\x83\x93\x83X\x83g\x81[\x83\x8B\x82\xB5\x82Ă\xA0\x82\xE9\x83t\x83H\x83\x8B\x83_
+ *									\x8Ew\x92\xE8\x82Ȃ\xB5\x82̏ꍇ\x82\xCD NULL \x82\xF0\x93n\x82\xB7
  *									\x8C\xA9\x82‚\xA9\x82\xE7\x82Ȃ\xAF\x82\xEA\x82΃f\x83t\x83H\x83\x8B\x83g\x83t\x83H\x83\x8B\x83_\x82Ȃǂ\xF0\x92T\x82\xB7
  *	@param[in]	cmdline				cygterm\x82ɓn\x82\xB7\x83R\x83}\x83\x93\x83h\x83\x89\x83C\x83\x93\x88\xF8\x90\x94
  *									NULL\x82̂Ƃ\xAB\x88\xF8\x90\x94\x82Ȃ\xB5


ttssh2-commit メーリングリストの案内
Back to archive index