public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: cagney@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Require explict cast from jobject to jnixx object.
Date: Fri, 09 May 2008 19:11:00 -0000	[thread overview]
Message-ID: <20080509191147.13589.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  57fc116cd48ffb2388ccc34c8319f61eaa9c01e0 (commit)
      from  507270cf6348bdc42d1eed23c7b5eed81cf0b7a6 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 57fc116cd48ffb2388ccc34c8319f61eaa9c01e0
Author: Andrew Cagney <cagney@redhat.com>
Date:   Fri May 9 15:10:30 2008 -0400

    Require explict cast from jobject to jnixx object.
    
    frysk-sys/frysk/config/ChangeLog
    2008-05-09  Andrew Cagney  <cagney@redhat.com>
    
    	* jni/FryskVersion.cxx-in: Use String's JNI methods.
    	* jni/Host.cxx-in: Ditto.
    	* jni/PrefixFactory.cxx-in: Ditto.
    
    frysk-sys/frysk/jnixx/ChangeLog
    2008-05-09  Andrew Cagney  <cagney@redhat.com>
    
    	* PrintDeclarations.java: Generate a protected constructor; and a
    	static Cast method.
    	* jnixx.hxx (jnixx::array): Add Cast method.
    	* Printer.java: Generate calls to Cast.
    	* PrintCxxDefinitions.java: Ditto
    	* print.cxx: Use explicit casts.
    
    frysk-sys/frysk/rsl/ChangeLog
    2008-05-09  Andrew Cagney  <cagney@redhat.com>
    
    	* jni/Log.cxx: Use String's JNI methods.
    
    frysk-sys/frysk/sys/ChangeLog
    2008-05-09  Andrew Cagney  <cagney@redhat.com>
    
    	* jni/PseudoTerminal.cxx: Use String's JNI methods.
    
    frysk-sys/frysk/testbed/ChangeLog
    2008-05-09  Andrew Cagney  <cagney@redhat.com>
    
    	* jni/LocalMemory.cxx (LocalMemory::getCodeFile): Use String's JNI
    	methods.
    
    frysk-sys/lib/stdcpp/ChangeLog
    2008-05-09  Andrew Cagney  <cagney@redhat.com>
    
    	* jni/Demangler.cxx: Use String's JNI methods.

-----------------------------------------------------------------------

Summary of changes:
 frysk-sys/frysk/config/ChangeLog                |    6 ++++
 frysk-sys/frysk/config/jni/FryskVersion.cxx-in  |    6 +++-
 frysk-sys/frysk/config/jni/Host.cxx-in          |    6 +++-
 frysk-sys/frysk/config/jni/PrefixFactory.cxx-in |   34 ++++++++++++-----------
 frysk-sys/frysk/jnixx/ChangeLog                 |    7 +++++
 frysk-sys/frysk/jnixx/PrintCxxDefinitions.java  |    1 +
 frysk-sys/frysk/jnixx/PrintDeclarations.java    |   16 +++++++---
 frysk-sys/frysk/jnixx/Printer.java              |    4 ++-
 frysk-sys/frysk/jnixx/jnixx.hxx                 |   12 ++++++--
 frysk-sys/frysk/jnixx/print.cxx                 |   10 ++++---
 frysk-sys/frysk/rsl/ChangeLog                   |    4 +++
 frysk-sys/frysk/rsl/jni/Log.cxx                 |   24 +++++++++++-----
 frysk-sys/frysk/sys/ChangeLog                   |    4 +++
 frysk-sys/frysk/sys/jni/PseudoTerminal.cxx      |    6 +++-
 frysk-sys/frysk/testbed/ChangeLog               |    5 +++
 frysk-sys/frysk/testbed/jni/LocalMemory.cxx     |    6 +++-
 frysk-sys/lib/stdcpp/ChangeLog                  |    4 +++
 frysk-sys/lib/stdcpp/jni/Demangler.cxx          |    9 +++---
 18 files changed, 115 insertions(+), 49 deletions(-)

First 500 lines of diff:
diff --git a/frysk-sys/frysk/config/ChangeLog b/frysk-sys/frysk/config/ChangeLog
index 7855299..edf0de6 100644
--- a/frysk-sys/frysk/config/ChangeLog
+++ b/frysk-sys/frysk/config/ChangeLog
@@ -1,3 +1,9 @@
+2008-05-09  Andrew Cagney  <cagney@redhat.com>
+
+	* jni/FryskVersion.cxx-in: Use String's JNI methods.
+	* jni/Host.cxx-in: Ditto.
+	* jni/PrefixFactory.cxx-in: Ditto.
+
 2008-05-08  Andrew Cagney  <cagney@redhat.com>
 
 	* jni/FryskVersion.cxx-in: Update to match jnixx::env.
diff --git a/frysk-sys/frysk/config/jni/FryskVersion.cxx-in b/frysk-sys/frysk/config/jni/FryskVersion.cxx-in
index 27d988e..1f4e101 100644
--- a/frysk-sys/frysk/config/jni/FryskVersion.cxx-in
+++ b/frysk-sys/frysk/config/jni/FryskVersion.cxx-in
@@ -39,7 +39,9 @@
 
 #include "jni.hxx"
 
-java::lang::String
+using namespace java::lang;
+
+String
 frysk::config::FryskVersion::version(::jnixx::env env) {
-  return env.NewStringUTF("@VERSION@");
+  return String::NewStringUTF(env, "@VERSION@");
 }
diff --git a/frysk-sys/frysk/config/jni/Host.cxx-in b/frysk-sys/frysk/config/jni/Host.cxx-in
index 43e5ec2..c5ab352 100644
--- a/frysk-sys/frysk/config/jni/Host.cxx-in
+++ b/frysk-sys/frysk/config/jni/Host.cxx-in
@@ -41,12 +41,14 @@
 
 #include "jni.hxx"
 
+using namespace java::lang;
+
 jint 
 frysk::config::Host::wordSize(::jnixx::env env) {
   return sizeof(long) * 8;
 }
 
-java::lang::String
+String
 frysk::config::Host::cpuXXX(::jnixx::env env) {
-  return env.NewStringUTF("@host_cpu@");
+  return String::NewStringUTF(env, "@host_cpu@");
 }
diff --git a/frysk-sys/frysk/config/jni/PrefixFactory.cxx-in b/frysk-sys/frysk/config/jni/PrefixFactory.cxx-in
index 7e65d2e..5c8d9e4 100644
--- a/frysk-sys/frysk/config/jni/PrefixFactory.cxx-in
+++ b/frysk-sys/frysk/config/jni/PrefixFactory.cxx-in
@@ -41,43 +41,45 @@
 
 #include "jni.hxx"
 
-java::lang::String
+using namespace java::lang;
+
+String
 frysk::config::PrefixFactory::gladeDir(::jnixx::env env) {
-  return env.NewStringUTF("@gladedir@");
+  return String::NewStringUTF(env, "@gladedir@");
 }
 
-java::lang::String
+String
 frysk::config::PrefixFactory::helpDir(::jnixx::env env) {
-  return env.NewStringUTF("@helpdir@");
+  return String::NewStringUTF(env, "@helpdir@");
 }
 
-java::lang::String
+String
 frysk::config::PrefixFactory::imagesDir(::jnixx::env env) {
-  return env.NewStringUTF("@imagesdir@");
+  return String::NewStringUTF(env, "@imagesdir@");
 }
 
-java::lang::String
+String
 frysk::config::PrefixFactory::binDir(::jnixx::env env) {
-  return env.NewStringUTF("@bindir@");
+  return String::NewStringUTF(env, "@bindir@");
 }
 
-java::lang::String
+String
 frysk::config::PrefixFactory::pkgDataDir(::jnixx::env env) {
-  return env.NewStringUTF("@pkgdatadir@");
+  return String::NewStringUTF(env, "@pkgdatadir@");
 }
 
-java::lang::String
+String
 frysk::config::PrefixFactory::pkgLibDir(::jnixx::env env) {
-  return env.NewStringUTF("@pkglibdir@");
+  return String::NewStringUTF(env, "@pkglibdir@");
 }
 
-java::lang::String
+String
 frysk::config::PrefixFactory::pkgLib32Dir(::jnixx::env env) {
-  return env.NewStringUTF("@pkglib32dir@");
+  return String::NewStringUTF(env, "@pkglib32dir@");
 }
 
-java::lang::String
+String
 frysk::config::PrefixFactory::sourceDir(::jnixx::env env) {
   // An educated guess.
-  return env.NewStringUTF("@prefix@/src/debug/frysk-@VERSION@");
+  return String::NewStringUTF(env, "@prefix@/src/debug/frysk-@VERSION@");
 }
diff --git a/frysk-sys/frysk/jnixx/ChangeLog b/frysk-sys/frysk/jnixx/ChangeLog
index 1ba36ad..9590e1b 100644
--- a/frysk-sys/frysk/jnixx/ChangeLog
+++ b/frysk-sys/frysk/jnixx/ChangeLog
@@ -1,5 +1,12 @@
 2008-05-09  Andrew Cagney  <cagney@redhat.com>
 
+	* PrintDeclarations.java: Generate a protected constructor; and a
+	static Cast method.
+	* jnixx.hxx (jnixx::array): Add Cast method.
+	* Printer.java: Generate calls to Cast.
+	* PrintCxxDefinitions.java: Ditto
+	* print.cxx: Use explicit casts.
+
 	* jnixx.hxx (jnixx::array): Add templated JNI array method.
 	* chars.cxx: Use tempated array methods.
 	* JniBindings.java: Drop String parameter to GetStringLength.
diff --git a/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java b/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java
index 9bd1efe..da83514 100644
--- a/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java
+++ b/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java
@@ -86,6 +86,7 @@ class PrintCxxDefinitions extends ClassWalker {
 			    p.printGlobalCxxName(method);
 			} else {
 			    p.printGlobalCxxName(method.getDeclaringClass());
+			    p.print("::Cast");
 			    p.print("(object).");
 			    p.print(method.getName());
 			}
diff --git a/frysk-sys/frysk/jnixx/PrintDeclarations.java b/frysk-sys/frysk/jnixx/PrintDeclarations.java
index f50dee5..3861e6b 100644
--- a/frysk-sys/frysk/jnixx/PrintDeclarations.java
+++ b/frysk-sys/frysk/jnixx/PrintDeclarations.java
@@ -128,7 +128,7 @@ class PrintDeclarations extends ClassWalker {
 	p.println();
 	p.print("// ");
 	p.println(klass);
-	p.print("struct ");
+	p.print("class ");
 	p.printQualifiedCxxName(klass);
 	Class parent = klass.getSuperclass();
 	p.print(" : public ");
@@ -139,6 +139,7 @@ class PrintDeclarations extends ClassWalker {
 	}
 	while(p.dent(0, "{", "};")) {
 	    // Constructor.
+	    p.print("protected: ");
 	    p.printUnqualifiedCxxName(klass);
 	    p.print("(jobject _object)");
 	    p.print(" : ");
@@ -147,11 +148,16 @@ class PrintDeclarations extends ClassWalker {
 	    } else {
 		p.printGlobalCxxName(parent);
 	    }
-	    p.print("(_object)");
-	    p.println(" { }");
+	    p.println("(_object) {}");
+	    // Explicit cast operator.
+	    p.print("public: static ");
+	    p.printUnqualifiedCxxName(klass);
+	    p.print(" Cast(jobject object) { return ");
+	    p.printUnqualifiedCxxName(klass);
+	    p.println("(object); }");
 	    // Static get-class method - a class knows its own class.
-	    p.println("private: static jclass _class; public:");
-	    p.println("static inline jclass _class_(::jnixx::env _env);");
+	    p.println("private: static jclass _class;");
+	    p.println("public: static inline jclass _class_(::jnixx::env _env);");
 	    JniBindings.printDeclarations(p, klass);
 	    printer.visit(klass);
 	}
diff --git a/frysk-sys/frysk/jnixx/Printer.java b/frysk-sys/frysk/jnixx/Printer.java
index 15b9509..007acc2 100644
--- a/frysk-sys/frysk/jnixx/Printer.java
+++ b/frysk-sys/frysk/jnixx/Printer.java
@@ -181,7 +181,7 @@ class Printer {
 		}
 		print("jnixx::array<");
 		printCxxName(klass.getComponentType(), false);
-		if (!componentType.isPrimitive()) {
+		if (componentType.isArray()) {
 		    print(" "); // prevent's ">>".
 		}
 		print(">");
@@ -473,6 +473,7 @@ class Printer {
 		print("p" + i);
 	    } else {
 		printGlobalCxxName(param);
+		print("::Cast");
 		print("(p" + i + ")");
 	    }
 	}
@@ -588,6 +589,7 @@ class Printer {
 	    print(variable);
 	} else {
 	    printGlobalCxxName(returnType);
+	    print("::Cast");
 	    print("(");
 	    print(variable);
 	    print(")");
diff --git a/frysk-sys/frysk/jnixx/jnixx.hxx b/frysk-sys/frysk/jnixx/jnixx.hxx
index e894821..af38a18 100644
--- a/frysk-sys/frysk/jnixx/jnixx.hxx
+++ b/frysk-sys/frysk/jnixx/jnixx.hxx
@@ -1489,18 +1489,24 @@ namespace jnixx {
    * extends jnixx::object).
    */
   template <typename Object> class array : public object {
-  public:
+  protected:
     array(jobject _object) : object(_object) {
     }
+  public:
+    static array<Object> Cast(jobject object) {
+      return array<Object>(object);
+    }
+  public:
     jsize GetArrayLength(::jnixx::env env) {
       return env.GetArrayLength((jarray)_object);
     }
     static array<Object> NewObjectArray(::jnixx::env env, jsize length,
-				 ::jnixx::object init) {
+					::jnixx::object init) {
       return env.NewObjectArray(length, Object::_class_(env), init._object);
     }
     Object GetObjectArrayElement(::jnixx::env env, jsize index) {
-      return env.GetObjectArrayElement((jobjectArray)_object, index);
+      return Object::Cast(env.GetObjectArrayElement((jobjectArray)_object,
+						    index));
     }
     void SetObjectArrayElement(::jnixx::env env, jsize index, Object object) {
       env.SetObjectArrayElement((jobjectArray)_object, index, object._object);
diff --git a/frysk-sys/frysk/jnixx/print.cxx b/frysk-sys/frysk/jnixx/print.cxx
index d9efd7c..cbec1e1 100644
--- a/frysk-sys/frysk/jnixx/print.cxx
+++ b/frysk-sys/frysk/jnixx/print.cxx
@@ -44,15 +44,17 @@
 #include "frysk/jnixx/print.hxx"
 #include "frysk/jnixx/exceptions.hxx"
 
+using namespace java::lang;
+
 /**
  * Do printf style printing to a java String.
  */
 
-java::lang::String
+String
 ajprintf(::jnixx::env& env, const char *fmt, ...) {
   va_list ap;
   va_start (ap, fmt);
-  java::lang::String jmessage = vajprintf(env, fmt, ap);
+  String jmessage = vajprintf(env, fmt, ap);
   va_end (ap);
   return jmessage;  
 }
@@ -60,14 +62,14 @@ ajprintf(::jnixx::env& env, const char *fmt, ...) {
 /**
  * Do vprintf style printing to a java String.
  */
-java::lang::String
+String
 vajprintf(::jnixx::env& env, const char *fmt, va_list ap) {
   char* message = NULL;
   if (::vasprintf(&message, fmt, ap) < 0) {
     errnoException(env, errno, "vasprintf");
   }
   try {
-    return env.NewStringUTF(message);
+    return String::NewStringUTF(env, message);
   } catch (jnixx::exception) {
     ::free(message);  
     throw;
diff --git a/frysk-sys/frysk/rsl/ChangeLog b/frysk-sys/frysk/rsl/ChangeLog
index fa5fb4a..998ed6a 100644
--- a/frysk-sys/frysk/rsl/ChangeLog
+++ b/frysk-sys/frysk/rsl/ChangeLog
@@ -1,3 +1,7 @@
+2008-05-09  Andrew Cagney  <cagney@redhat.com>
+
+	* jni/Log.cxx: Use String's JNI methods.
+
 2008-05-08  Andrew Cagney  <cagney@redhat.com>
 
 	* jni/Log.cxx: Update to match jnixx::env.
diff --git a/frysk-sys/frysk/rsl/jni/Log.cxx b/frysk-sys/frysk/rsl/jni/Log.cxx
index 0fe4bc5..6561e27 100644
--- a/frysk-sys/frysk/rsl/jni/Log.cxx
+++ b/frysk-sys/frysk/rsl/jni/Log.cxx
@@ -45,6 +45,8 @@
 #include "frysk/jnixx/print.hxx"
 #include "frysk/rsl/jni/Log.hxx"
 
+using namespace java::lang;
+
 void
 logf(::jnixx::env env, frysk::rsl::Log logger,
      const char* format, ...) {
@@ -52,35 +54,41 @@ logf(::jnixx::env env, frysk::rsl::Log logger,
     return;
   va_list ap;
   va_start(ap, format);
-  java::lang::String message = vajprintf(env, format, ap);
+  String message = vajprintf(env, format, ap);
   logger.log(env, message);
+  message.DeleteLocalRef(env);
   va_end(ap);
 }
 
 void
-logf(::jnixx::env env, frysk::rsl::Log logger, java::lang::Object object,
+logf(::jnixx::env env, frysk::rsl::Log logger, Object object,
      const char* format, ...) {
   if (!logger.logging(env))
     return;
   va_list ap;
   va_start(ap, format);
-  java::lang::String message = vajprintf(env, format, ap);
+  String message = vajprintf(env, format, ap);
   logger.log(env, message);
+  message.DeleteLocalRef(env);
   va_end(ap);
 }
 
 void
 log(::jnixx::env env, frysk::rsl::Log logger,
-    const char* p1, java::lang::Object p2) {
+    const char* p1, Object p2) {
   if (!logger.logging(env))
     return;
-  logger.log(env, env.NewStringUTF(p1), p2);
+  String message = String::NewStringUTF(env, p1);
+  logger.log(env, message, p2);
+  message.DeleteLocalRef(env);
 }
 
 void
-log(::jnixx::env env, frysk::rsl::Log logger, java::lang::Object self,
-    const char* p1, java::lang::Object p2) {
+log(::jnixx::env env, frysk::rsl::Log logger, Object self,
+    const char* p1, Object p2) {
   if (!logger.logging(env))
     return;
-  logger.log(env, self, env.NewStringUTF(p1), p2);
+  String message = String::NewStringUTF(env, p1);
+  logger.log(env, self, message, p2);
+  message.DeleteLocalRef(env);
 }
diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog
index a74b04c..a8cd1cd 100644
--- a/frysk-sys/frysk/sys/ChangeLog
+++ b/frysk-sys/frysk/sys/ChangeLog
@@ -1,3 +1,7 @@
+2008-05-09  Andrew Cagney  <cagney@redhat.com>
+
+	* jni/PseudoTerminal.cxx: Use String's JNI methods.
+
 2008-05-08  Andrew Cagney  <cagney@redhat.com>
 
 	* jni/PseudoTerminal.cxx: Update to match jnixx::env.
diff --git a/frysk-sys/frysk/sys/jni/PseudoTerminal.cxx b/frysk-sys/frysk/sys/jni/PseudoTerminal.cxx
index d1166d6..04b36d2 100644
--- a/frysk-sys/frysk/sys/jni/PseudoTerminal.cxx
+++ b/frysk-sys/frysk/sys/jni/PseudoTerminal.cxx
@@ -44,12 +44,14 @@
 
 #include "frysk/jnixx/exceptions.hxx"
 
-::java::lang::String
+using namespace java::lang;
+
+::String
 frysk::sys::PseudoTerminal::getName(::jnixx::env env, jint pty) {
   const char *name = ::ptsname(pty);
   if (name == NULL)
     errnoException(env, errno, "ptsname");
-  return env.NewStringUTF(name);
+  return String::NewStringUTF(env, name);
 }
 
 jint
diff --git a/frysk-sys/frysk/testbed/ChangeLog b/frysk-sys/frysk/testbed/ChangeLog
index f4d8977..64ac04f 100644
--- a/frysk-sys/frysk/testbed/ChangeLog
+++ b/frysk-sys/frysk/testbed/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-09  Andrew Cagney  <cagney@redhat.com>
+
+	* jni/LocalMemory.cxx (LocalMemory::getCodeFile): Use String's JNI
+	methods.
+
 2008-05-08  Andrew Cagney  <cagney@redhat.com>
 
 	* jni/LocalMemory.cxx: Update to match jnixx::env.
diff --git a/frysk-sys/frysk/testbed/jni/LocalMemory.cxx b/frysk-sys/frysk/testbed/jni/LocalMemory.cxx
index fbad642..a7283ab 100644
--- a/frysk-sys/frysk/testbed/jni/LocalMemory.cxx
+++ b/frysk-sys/frysk/testbed/jni/LocalMemory.cxx
@@ -44,6 +44,8 @@
 #include "jni.hxx"
 #include "frysk/jnixx/exceptions.hxx"
 
+using namespace java::lang;
+
 static jbyteArray
 getBytes(::jnixx::env env, void *addr, size_t length) {
   jbyteArray bytes = env.NewByteArray(length);
@@ -76,9 +78,9 @@ frysk::testbed::LocalMemory::getDataBytes(::jnixx::env env) {
  */
 jint frysk::testbed::LocalMemory::getCodeLine (::jnixx::env) { return __LINE__; }
 
-java::lang::String
+String
 frysk::testbed::LocalMemory::getCodeFile(::jnixx::env env) {
-  return env.NewStringUTF(__FILE__);
+  return String::NewStringUTF(env, __FILE__);
 }
 
 static void*
diff --git a/frysk-sys/lib/stdcpp/ChangeLog b/frysk-sys/lib/stdcpp/ChangeLog
index ac5706e..da9d115 100644
--- a/frysk-sys/lib/stdcpp/ChangeLog
+++ b/frysk-sys/lib/stdcpp/ChangeLog
@@ -1,3 +1,7 @@
+2008-05-09  Andrew Cagney  <cagney@redhat.com>
+
+	* jni/Demangler.cxx: Use String's JNI methods.
+
 2008-05-08  Andrew Cagney  <cagney@redhat.com>
 
 	* jni/Demangler.cxx: Update to match jnixx::env.
diff --git a/frysk-sys/lib/stdcpp/jni/Demangler.cxx b/frysk-sys/lib/stdcpp/jni/Demangler.cxx
index cf4da6a..43cae48 100644
--- a/frysk-sys/lib/stdcpp/jni/Demangler.cxx
+++ b/frysk-sys/lib/stdcpp/jni/Demangler.cxx
@@ -45,12 +45,13 @@
 #include "jni.hxx"
 
 using namespace abi;
+using namespace java::lang;
 
-::java::lang::String
+String
 lib::stdcpp::Demangler::demangle(::jnixx::env env,
-				 ::java::lang::String mangledString) {
+				 String mangledString) {
   if (mangledString == NULL)
-    return NULL;
+    return mangledString;
   
   int status = -1;
 
@@ -59,7 +60,7 @@ lib::stdcpp::Demangler::demangle(::jnixx::env env,
   mangledString.ReleaseStringUTFChars(env, mangledName);
   
   if (status == 0)
-    return env.NewStringUTF(demangledName);
+    return String::NewStringUTF(env, demangledName);
   else
     return mangledString;
 }


hooks/post-receive
--
frysk system monitor/debugger


                 reply	other threads:[~2008-05-09 19:11 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080509191147.13589.qmail@sourceware.org \
    --to=cagney@sourceware.org \
    --cc=frysk-cvs@sourceware.org \
    --cc=frysk@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).