public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: cagney@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Rename jniEnv and jni to _jni.
Date: Thu, 08 May 2008 00:02:00 -0000	[thread overview]
Message-ID: <20080508000222.12316.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  02afb440aab13a0710b5e2e45d0c95227ad6e29f (commit)
      from  2dc7d134b4e0dcc7a6b15978a3cb5a7660d71225 (commit)

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

- Log -----------------------------------------------------------------
commit 02afb440aab13a0710b5e2e45d0c95227ad6e29f
Author: Andrew Cagney <cagney@redhat.com>
Date:   Wed May 7 20:00:34 2008 -0400

    Rename jniEnv and jni to _jni.
    
    frysk-sys/frysk/jnixx/ChangeLog
    2008-05-07  Andrew Cagney  <cagney@redhat.com>
    
    	* jnixx.hxx (jnixx::env): Rename jniEnv to _jni, make public.
    	* Printer.java: Generate _jni, _class, and _class_().
    	* PrintDeclarations.java: Ditto.
    	* PrintCxxDefinitions.java: Ditto.
    	* Main.java: Ditto.

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

Summary of changes:
 frysk-sys/frysk/jnixx/ChangeLog                |    6 +
 frysk-sys/frysk/jnixx/Main.java                |    2 +-
 frysk-sys/frysk/jnixx/PrintCxxDefinitions.java |    4 +-
 frysk-sys/frysk/jnixx/PrintDeclarations.java   |    4 +-
 frysk-sys/frysk/jnixx/PrintHxxDefinitions.java |   14 +-
 frysk-sys/frysk/jnixx/Printer.java             |    4 +-
 frysk-sys/frysk/jnixx/jnixx.hxx                |  320 ++++++++++++------------
 7 files changed, 179 insertions(+), 175 deletions(-)

First 500 lines of diff:
diff --git a/frysk-sys/frysk/jnixx/ChangeLog b/frysk-sys/frysk/jnixx/ChangeLog
index 373d244..7251115 100644
--- a/frysk-sys/frysk/jnixx/ChangeLog
+++ b/frysk-sys/frysk/jnixx/ChangeLog
@@ -1,5 +1,11 @@
 2008-05-07  Andrew Cagney  <cagney@redhat.com>
 
+	* jnixx.hxx (jnixx::env): Rename jniEnv to _jni, make public.
+	* Printer.java: Generate _jni, _class, and _class_().
+	* PrintDeclarations.java: Ditto.
+	* PrintCxxDefinitions.java: Ditto.
+	* Main.java: Ditto.
+	
 	* jnixx.hxx (getStringUTFLength): New.
 	(getStringUTFRegion): New.
 
diff --git a/frysk-sys/frysk/jnixx/Main.java b/frysk-sys/frysk/jnixx/Main.java
index 530e284..d2b5832 100644
--- a/frysk-sys/frysk/jnixx/Main.java
+++ b/frysk-sys/frysk/jnixx/Main.java
@@ -67,7 +67,7 @@ class Main {
 	p.println();
 	p.print("jclass ");
 	p.printQualifiedCxxName(klass);
-	p.println("::_class$;");
+	p.println("::_class;");
 	new PrintCxxDefinitions(p).visit(klass);
     }
 
diff --git a/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java b/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java
index 38b7492..96f0418 100644
--- a/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java
+++ b/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java
@@ -75,7 +75,7 @@ class PrintCxxDefinitions extends ClassVisitor {
 	    p.println("try {");
 	    {
 		p.indent();
-		p.println("jnixx::env env = jnixx::env(jni);");
+		p.println("jnixx::env env = jnixx::env(_jni);");
 		Class returnType = method.getReturnType();
 		if (returnType != Void.TYPE) {
 		    p.printCxxType(returnType);
@@ -141,6 +141,6 @@ class PrintCxxDefinitions extends ClassVisitor {
 	p.println();
 	p.print("jclass ");
 	p.printQualifiedCxxName(klass);
-	p.println("::_class$;");
+	p.println("::_class;");
     }
 }
diff --git a/frysk-sys/frysk/jnixx/PrintDeclarations.java b/frysk-sys/frysk/jnixx/PrintDeclarations.java
index 28e6e9d..535a5d5 100644
--- a/frysk-sys/frysk/jnixx/PrintDeclarations.java
+++ b/frysk-sys/frysk/jnixx/PrintDeclarations.java
@@ -167,8 +167,8 @@ class PrintDeclarations extends ClassWalker {
 	    p.print("(_object)");
 	    p.println(" { }");
 	    // 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; public:");
+	    p.println("static inline jclass _class_(jnixx::env& env);");
 	    printer.visit(klass);
 	}
     }
diff --git a/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java b/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java
index 6782ea0..fa98e59 100644
--- a/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java
+++ b/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java
@@ -88,7 +88,7 @@ class PrintHxxDefinitions extends ClassWalker {
 		if (isStatic) {
 		    p.print("Static");
 		}
-		p.print("FieldID(_class(env), \"");
+		p.print("FieldID(_class_(env), \"");
 		p.print(name);
 		p.print("\", \"");
 		p.printJniSignature(type);
@@ -154,7 +154,7 @@ class PrintHxxDefinitions extends ClassWalker {
 		if (isStatic) {
 		    p.print("Static");
 		}
-		p.print("MethodID(_class(env), \"");
+		p.print("MethodID(_class_(env), \"");
 		p.print(method.getName());
 		p.print("\", \"");
 		p.printJniSignature(method);
@@ -214,7 +214,7 @@ class PrintHxxDefinitions extends ClassWalker {
 		    p.print(" == NULL)");
 		    while (p.dent(1, "{", "}")) {
 			p.printID(constructor);
-			p.print(" = env.getMethodID(_class(env), \"<init>\", \"(");
+			p.print(" = env.getMethodID(_class_(env), \"<init>\", \"(");
 			p.printJniSignature(constructor.getParameterTypes());
 			p.println(")V\");");
 		    }
@@ -257,14 +257,14 @@ class PrintHxxDefinitions extends ClassWalker {
 	p.println();
 	p.println("jclass");
 	p.printQualifiedCxxName(klass);
-	p.print("::_class(jnixx::env& env)");
+	p.print("::_class_(jnixx::env& env)");
 	while (p.dent(0, "{", "}")) {
-	    while (p.dent(1, "if (_class$ == NULL) {", "}")) {
-		p.print("_class$ = env.findClass(\"");
+	    while (p.dent(1, "if (_class == NULL) {", "}")) {
+		p.print("_class = env.findClass(\"");
 		p.print(klass.getName());
 		p.println("\");");
 	    }
-	    p.println("return _class$;");
+	    p.println("return _class;");
 	}
 	printer.visit(klass);
     }
diff --git a/frysk-sys/frysk/jnixx/Printer.java b/frysk-sys/frysk/jnixx/Printer.java
index 0ec4821..ee2cfd2 100644
--- a/frysk-sys/frysk/jnixx/Printer.java
+++ b/frysk-sys/frysk/jnixx/Printer.java
@@ -475,7 +475,7 @@ class Printer {
     Printer printFormalJniParameters(Method method, boolean printArgs) {
 	print("JNIEnv*");
 	if (printArgs)
-	    print(" jni");
+	    print(" _jni");
 	if (Modifier.isStatic(method.getModifiers())) {
 	    print(", jclass");
 	    if (printArgs)
@@ -503,7 +503,7 @@ class Printer {
 				  Member member,
 				  Class[] params) {
 	if (isStatic)
-	    print("_class$");
+	    print("_class");
 	else
 	    print("_object");
 	print(", ");
diff --git a/frysk-sys/frysk/jnixx/jnixx.hxx b/frysk-sys/frysk/jnixx/jnixx.hxx
index c5f5d9d..caf2bfa 100644
--- a/frysk-sys/frysk/jnixx/jnixx.hxx
+++ b/frysk-sys/frysk/jnixx/jnixx.hxx
@@ -99,18 +99,16 @@ namespace java {
   }
 };
 
-class jnixx::env {
+struct jnixx::env {
 
-private:
-  JNIEnv* jniEnv;
+  JNIEnv* _jni;
 
-public:
-  env(JNIEnv* jniEnv) {
-    this->jniEnv = jniEnv;
+  env(JNIEnv* _jni) {
+    this->_jni = _jni;
   }
 
   jclass findClass(const char signature[]) {
-    jclass klass = jniEnv->FindClass(signature);
+    jclass klass = _jni->FindClass(signature);
     if (klass == NULL) {
       fprintf(stderr,
 	      "frysk: JNIEnv.FindClass(\"%s\") failed\n",
@@ -121,7 +119,7 @@ public:
   }
 
   java::lang::String newStringUTF(const char string[]) {
-    jstring utf = jniEnv->NewStringUTF(string);
+    jstring utf = _jni->NewStringUTF(string);
     if (utf == NULL) {
       fprintf(stderr,
 	      "frysk: JNIEnv.NewStringUTF(\"%s\") failed\n",
@@ -132,7 +130,7 @@ public:
   }
 
   const char* getStringUTFChars(java::lang::String string, jboolean* isCopy) {
-    const char* chars = jniEnv->GetStringUTFChars((jstring) string._object,
+    const char* chars = _jni->GetStringUTFChars((jstring) string._object,
 						  isCopy);
     if (chars == NULL) {
       fprintf(stderr,
@@ -145,9 +143,9 @@ public:
   }
 
   void releaseStringUTFChars(java::lang::String string, const char* chars) {
-    jniEnv->ReleaseStringUTFChars((jstring) string._object,
+    _jni->ReleaseStringUTFChars((jstring) string._object,
 				  chars);
-    if (jniEnv->ExceptionCheck()) {
+    if (_jni->ExceptionCheck()) {
       fprintf(stderr,
 	      "frysk: JNIEnv.ReleaseStringUTFChars(%p,%s) failed\n",
 	      string._object, chars);
@@ -156,15 +154,15 @@ public:
   }
 
   jint getStringUTFLength(java::lang::String string) {
-    jint length = jniEnv->GetStringUTFLength((jstring) (string._object));
+    jint length = _jni->GetStringUTFLength((jstring) (string._object));
     // Cannot fail?
     return length;
   }
 
   void getStringUTFRegion(java::lang::String string, jsize start,
 			  jsize len, char *buf) {
-    jniEnv->GetStringUTFRegion((jstring) (string._object), start, len, buf);
-    if (jniEnv->ExceptionCheck()) {
+    _jni->GetStringUTFRegion((jstring) (string._object), start, len, buf);
+    if (_jni->ExceptionCheck()) {
       fprintf(stderr,
 	      "frysk: JNIEnv.GetStringUTFRegion(%p,%d,%d,%p) failed\n",
 	      string._object, (int) start, (int) len, buf);
@@ -173,15 +171,15 @@ public:
   }
 
   jint getStringLength(java::lang::String string) {
-    jint length = jniEnv->GetStringLength((jstring) (string._object));
+    jint length = _jni->GetStringLength((jstring) (string._object));
     // Cannot fail?
     return length;
   }
 
   void getStringRegion(java::lang::String string, jsize start,
 			  jsize len, jchar *buf) {
-    jniEnv->GetStringRegion((jstring) (string._object), start, len, buf);
-    if (jniEnv->ExceptionCheck()) {
+    _jni->GetStringRegion((jstring) (string._object), start, len, buf);
+    if (_jni->ExceptionCheck()) {
       fprintf(stderr,
 	      "frysk: JNIEnv.GetStringRegion(%p,%d,%d,%p) failed\n",
 	      string._object, (int) start, (int) len, buf);
@@ -191,7 +189,7 @@ public:
 
   jmethodID getMethodID(jclass klass, const char name[],
 			const char signature[]) {
-    jmethodID methodID = jniEnv->GetMethodID(klass, name, signature);
+    jmethodID methodID = _jni->GetMethodID(klass, name, signature);
     if (methodID == NULL) {
       fprintf(stderr,
 	      "frysk: JNIEnv.GetMethodID(%p,\"%s\",\"%s\") failed\n",
@@ -202,7 +200,7 @@ public:
   }
   jmethodID getStaticMethodID(jclass klass, const char name[],
 			      const char signature[]) {
-    jmethodID methodID = jniEnv->GetStaticMethodID(klass, name, signature);
+    jmethodID methodID = _jni->GetStaticMethodID(klass, name, signature);
     if (methodID == NULL) {
       fprintf(stderr,
 	      "frysk: JNIEnv.GetStaticMethodID(%p,\"%s\",\"%s\") failed\n",
@@ -214,7 +212,7 @@ public:
 
   jfieldID getFieldID(jclass klass, const char name[],
 		      const char signature[]) {
-    jfieldID fieldID = jniEnv->GetFieldID(klass, name, signature);
+    jfieldID fieldID = _jni->GetFieldID(klass, name, signature);
     if (fieldID == NULL) {
       fprintf(stderr,
 	      "frysk: JNIEnv.GetFieldID(%p,\"%s\",\"%s\") failed\n",
@@ -225,7 +223,7 @@ public:
   }
   jfieldID getStaticFieldID(jclass klass, const char name[],
 			    const char signature[]) {
-    jfieldID fieldID = jniEnv->GetStaticFieldID(klass, name, signature);
+    jfieldID fieldID = _jni->GetStaticFieldID(klass, name, signature);
     if (fieldID == NULL) {
       fprintf(stderr,
 	      "frysk: JNIEnv.GetStaticFieldID(%p,\"%s\",\"%s\") failed\n",
@@ -238,7 +236,7 @@ public:
   jobject newObject(jclass klass, jmethodID id, ...) {
     va_list ap;
     va_start(ap, id);
-    jobject object = jniEnv->NewObjectV(klass, id, ap);
+    jobject object = _jni->NewObjectV(klass, id, ap);
     va_end(ap);
     if (object == NULL) {
       throw jnixx::exception();
@@ -247,427 +245,427 @@ public:
   }
 
   jobject getStaticObjectField(jclass klass, jfieldID id) {
-    jobject tmp = jniEnv->GetStaticObjectField(klass, id);
-    if (jniEnv->ExceptionCheck())
+    jobject tmp = _jni->GetStaticObjectField(klass, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jboolean getStaticBooleanField(jclass klass, jfieldID id) {
-    jboolean tmp = jniEnv->GetStaticBooleanField(klass, id);
-    if (jniEnv->ExceptionCheck())
+    jboolean tmp = _jni->GetStaticBooleanField(klass, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jbyte getStaticByteField(jclass klass, jfieldID id) {
-    jbyte tmp = jniEnv->GetStaticByteField(klass, id);
-    if (jniEnv->ExceptionCheck())
+    jbyte tmp = _jni->GetStaticByteField(klass, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jchar getStaticCharField(jclass klass, jfieldID id) {
-    jchar tmp = jniEnv->GetStaticCharField(klass, id);
-    if (jniEnv->ExceptionCheck())
+    jchar tmp = _jni->GetStaticCharField(klass, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jshort getStaticShortField(jclass klass, jfieldID id) {
-    jshort tmp = jniEnv->GetStaticShortField(klass, id);
-    if (jniEnv->ExceptionCheck())
+    jshort tmp = _jni->GetStaticShortField(klass, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jint getStaticIntField(jclass klass, jfieldID id) {
-    jint tmp = jniEnv->GetStaticIntField(klass, id);
-    if (jniEnv->ExceptionCheck())
+    jint tmp = _jni->GetStaticIntField(klass, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jlong getStaticLongField(jclass klass, jfieldID id) {
-    jlong tmp = jniEnv->GetStaticLongField(klass, id);
-    if (jniEnv->ExceptionCheck())
+    jlong tmp = _jni->GetStaticLongField(klass, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jfloat getStaticFloatField(jclass klass, jfieldID id) {
-    jfloat tmp = jniEnv->GetStaticFloatField(klass, id);
-    if (jniEnv->ExceptionCheck())
+    jfloat tmp = _jni->GetStaticFloatField(klass, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jdouble getStaticDoubleField(jclass klass, jfieldID id) {
-    jdouble tmp = jniEnv->GetStaticDoubleField(klass, id);
-    if (jniEnv->ExceptionCheck())
+    jdouble tmp = _jni->GetStaticDoubleField(klass, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
 
   void setStaticObjectField(jclass klass, jfieldID id, jobject value) {
-    jniEnv->SetStaticObjectField(klass, id, value);
-    if (jniEnv->ExceptionCheck())
+    _jni->SetStaticObjectField(klass, id, value);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
   }
   void setStaticBooleanField(jclass klass, jfieldID id, jboolean value) {
-    jniEnv->SetStaticBooleanField(klass, id, value);
-    if (jniEnv->ExceptionCheck())
+    _jni->SetStaticBooleanField(klass, id, value);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
   }
   void setStaticByteField(jclass klass, jfieldID id, jbyte value) {
-    jniEnv->SetStaticByteField(klass, id, value);
-    if (jniEnv->ExceptionCheck())
+    _jni->SetStaticByteField(klass, id, value);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
   }
   void setStaticCharField(jclass klass, jfieldID id, jchar value) {
-    jniEnv->SetStaticCharField(klass, id, value);
-    if (jniEnv->ExceptionCheck())
+    _jni->SetStaticCharField(klass, id, value);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
   }
   void setStaticShortField(jclass klass, jfieldID id, jshort value) {
-    jniEnv->SetStaticShortField(klass, id, value);
-    if (jniEnv->ExceptionCheck())
+    _jni->SetStaticShortField(klass, id, value);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
   }
   void setStaticIntField(jclass klass, jfieldID id, jint value) {
-    jniEnv->SetStaticIntField(klass, id, value);
-    if (jniEnv->ExceptionCheck())
+    _jni->SetStaticIntField(klass, id, value);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
   }
   void setStaticLongField(jclass klass, jfieldID id, jlong value) {
-    jniEnv->SetStaticLongField(klass, id, value);
-    if (jniEnv->ExceptionCheck())
+    _jni->SetStaticLongField(klass, id, value);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
   }
   void setStaticFloatField(jclass klass, jfieldID id, jfloat value) {
-    jniEnv->SetStaticFloatField(klass, id, value);
-    if (jniEnv->ExceptionCheck())
+    _jni->SetStaticFloatField(klass, id, value);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
   }
   void setStaticDoubleField(jclass klass, jfieldID id, jdouble value) {
-    jniEnv->SetStaticDoubleField(klass, id, value);
-    if (jniEnv->ExceptionCheck())
+    _jni->SetStaticDoubleField(klass, id, value);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
   }
 
   jobject getObjectField(jobject object, jfieldID id) {
-    jobject tmp = jniEnv->GetObjectField(object, id);
-    if (jniEnv->ExceptionCheck())
+    jobject tmp = _jni->GetObjectField(object, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jboolean getBooleanField(jobject object, jfieldID id) {
-    jboolean tmp = jniEnv->GetBooleanField(object, id);
-    if (jniEnv->ExceptionCheck())
+    jboolean tmp = _jni->GetBooleanField(object, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jbyte getByteField(jobject object, jfieldID id) {
-    jbyte tmp = jniEnv->GetByteField(object, id);
-    if (jniEnv->ExceptionCheck())
+    jbyte tmp = _jni->GetByteField(object, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jchar getCharField(jobject object, jfieldID id) {
-    jchar tmp = jniEnv->GetCharField(object, id);
-    if (jniEnv->ExceptionCheck())
+    jchar tmp = _jni->GetCharField(object, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jshort getShortField(jobject object, jfieldID id) {
-    jshort tmp = jniEnv->GetShortField(object, id);
-    if (jniEnv->ExceptionCheck())
+    jshort tmp = _jni->GetShortField(object, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jint getIntField(jobject object, jfieldID id) {
-    jint tmp = jniEnv->GetIntField(object, id);
-    if (jniEnv->ExceptionCheck())
+    jint tmp = _jni->GetIntField(object, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jlong getLongField(jobject object, jfieldID id) {
-    jlong tmp = jniEnv->GetLongField(object, id);
-    if (jniEnv->ExceptionCheck())
+    jlong tmp = _jni->GetLongField(object, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jfloat getFloatField(jobject object, jfieldID id) {
-    jfloat tmp = jniEnv->GetFloatField(object, id);
-    if (jniEnv->ExceptionCheck())
+    jfloat tmp = _jni->GetFloatField(object, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
   jdouble getDoubleField(jobject object, jfieldID id) {
-    jdouble tmp = jniEnv->GetDoubleField(object, id);
-    if (jniEnv->ExceptionCheck())
+    jdouble tmp = _jni->GetDoubleField(object, id);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
     return tmp;
   }
 
   void setObjectField(jobject object, jfieldID id, jobject value) {
-    jniEnv->SetObjectField(object, id, value);
-    if (jniEnv->ExceptionCheck())
+    _jni->SetObjectField(object, id, value);
+    if (_jni->ExceptionCheck())
       throw jnixx::exception();
   }
   void setBooleanField(jobject object, jfieldID id, jboolean value) {
-    jniEnv->SetBooleanField(object, id, value);


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


                 reply	other threads:[~2008-05-08  0:02 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=20080508000222.12316.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).