git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/3] cg-commit: Move author picking to cg-Xlib

From
Jonas Fonseca <fonseca@diku.dk>
Date
Feb 7, 2006, 22:44 UTC
Message-ID
<20060207224419.GA24790@diku.dk>

Adds pick_author utility function to cg-Xlib that uses the author line from git-cat-file output to print a string that sets the GIT_AUTHOR_* env variables. This string should then be eval'd by the caller.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
---
commit 5095aca7013d87ccdb08dad20a9fb93d7465d33d
tree 9ec064a96718b937d373769c52d830b8c3a6daca
parent d3cabc9974357947eac035d613557d4318b85f9f
author Jonas Fonseca <fonseca@diku.dk> Tue, 07 Feb 2006 23:05:19 +0100
committer Jonas Fonseca <fonseca@antimatter.localdomain> Tue, 07 Feb 2006 23:05:19 +0100
 cg-Xlib   |   26 ++++++++++++++++++++++++++
 cg-commit |   28 +---------------------------
 2 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/cg-Xlib b/cg-Xlib
index 308d798..e17c82f 100644
--- a/cg-Xlib
+++ b/cg-Xlib
@@ -236,6 +236,32 @@ list_untracked_files()
 	git-ls-files -z --others $listdirs "${EXCLUDE[@]}"
 }
 
+pick_author()
+{
+	local pick_author_script='
+		/^author /{
+			s/'\''/'\''\\'\'\''/g
+			h
+			s/^author \([^<]*\) <[^>]*> .*$/\1/
+			s/'\''/'\''\'\'\''/g
+			s/.*/export GIT_AUTHOR_NAME='\''&'\''/p
+
+			g
+			s/^author [^<]* <\([^>]*\)> .*$/\1/
+			s/'\''/'\''\'\'\''/g
+			s/.*/export GIT_AUTHOR_EMAIL='\''&'\''/p
+
+			g
+			s/^author [^<]* <[^>]*> \(.*\)$/\1/
+			s/'\''/'\''\'\'\''/g
+			s/.*/export GIT_AUTHOR_DATE='\''&'\''/p
+
+			q
+		}
+	'
+	LANG=C LC_ALL=C sed -ne "$pick_author_script"
+}
+
 # Usage: showdate SECONDS TIMEZONE [FORMAT]
 # Display date nicely based on how GIT stores it.
 # Save the date to $_showdate
diff --git a/cg-commit b/cg-commit
index e5e98b4..06ab0c0 100755
--- a/cg-commit
+++ b/cg-commit
@@ -276,33 +276,7 @@ for msg in "${msgs[@]}"; do
 done
 
 if [ "$copy_commit" ]; then
-	pick_author_script='
-		/^author /{
-			s/'\''/'\''\\'\'\''/g
-			h
-			s/^author \([^<]*\) <[^>]*> .*$/\1/
-			s/'\''/'\''\'\'\''/g
-			s/.*/GIT_AUTHOR_NAME='\''&'\''/p
-
-			g
-			s/^author [^<]* <\([^>]*\)> .*$/\1/
-			s/'\''/'\''\'\'\''/g
-			s/.*/GIT_AUTHOR_EMAIL='\''&'\''/p
-
-			g
-			s/^author [^<]* <[^>]*> \(.*\)$/\1/
-			s/'\''/'\''\'\'\''/g
-			s/.*/GIT_AUTHOR_DATE='\''&'\''/p
-
-			q
-		}
-	'
-	set_author_env="$(git-cat-file commit "$copy_commit" |
-	                  LANG=C LC_ALL=C sed -ne "$pick_author_script")"
-	eval "$set_author_env"
-	export GIT_AUTHOR_NAME
-	export GIT_AUTHOR_EMAIL
-	export GIT_AUTHOR_DATE
+	eval "$(git-cat-file commit "$copy_commit" | pick_author)"
 	git-cat-file commit "$copy_commit" | sed -e '1,/^$/d'
         written=1
 fi >>"$LOGMSG"
-- 
Jonas Fonseca
Message 1 of 1 in “cg-commit: Move author picking to cg-Xlib”
  1. 1/3 cg-commit: Move author picking to cg-XlibJonas Fonseca, Feb 7, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.