From 91748b8fa2cb43093a3e9e7ff141a594914b005e Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Tue, 6 May 2003 22:14:33 +0000
Subject: [PATCH] Add support for sorting output by job name.

---
 src/squeue/opts.c  |  1 +
 src/squeue/print.c | 11 +++++++++++
 src/squeue/print.h |  3 +++
 3 files changed, 15 insertions(+)

diff --git a/src/squeue/opts.c b/src/squeue/opts.c
index e5626af2467..8c97e20eaf5 100644
--- a/src/squeue/opts.c
+++ b/src/squeue/opts.c
@@ -501,6 +501,7 @@ _print_options()
 	printf( "step_flag %d\n", params.step_flag );
 	printf( "jobs %s\n", params.jobs );
 	printf( "partitions %s\n", params.partitions ) ;
+	printf( "sort %s\n", params.sort ) ;
 	printf( "states %s\n", params.states ) ;
 	printf( "steps %s\n", params.steps );	
 	printf( "users %s\n", params.users );	
diff --git a/src/squeue/print.c b/src/squeue/print.c
index c78032ff547..3fbdda84ce2 100644
--- a/src/squeue/print.c
+++ b/src/squeue/print.c
@@ -107,6 +107,8 @@ int print_jobs_array(job_info_t * jobs, int size, List format)
 				continue;
 			else if (params.sort[i] == 'i')
 				sort_job_by_job_id(job_list);
+			else if (params.sort[i] == 'j')
+				sort_job_by_job_name(job_list);
 			else if (params.sort[i] == 'p')
 				sort_job_by_priority(job_list);
 			else if (params.sort[i] == 'P')
@@ -948,6 +950,15 @@ int _sort_job_by_id(void *void1, void *void2)
 	return job1->job_id - job2->job_id;
 }
 
+/* sort lower to higher */
+int _sort_job_by_name(void *void1, void *void2)
+{
+	job_info_t *job1 = (job_info_t *) void1;
+	job_info_t *job2 = (job_info_t *) void2;
+
+	return strcmp(job1->name, job2->name);
+}
+
 /* sort higher to lower */
 int _sort_job_by_priority(void *void1, void *void2)
 {
diff --git a/src/squeue/print.h b/src/squeue/print.h
index e03cb95a212..b8c1eaf9514 100644
--- a/src/squeue/print.h
+++ b/src/squeue/print.h
@@ -216,6 +216,8 @@ int _print_step_nodes(job_step_info_t * step, int width,
  *****************************************************************************/
 #define sort_job_by_job_id(list) \
 		list_sort(list,_sort_job_by_id)
+#define sort_job_by_job_name(list) \
+		list_sort(list,_sort_job_by_name)
 #define sort_job_by_priority(list) \
 		list_sort(list,_sort_job_by_priority)
 #define sort_job_by_partition(list) \
@@ -226,6 +228,7 @@ int _print_step_nodes(job_step_info_t * step, int width,
 		list_sort(list,_sort_job_by_user)
 
 int _sort_job_by_id(void *void1, void *void2);
+int _sort_job_by_name(void *void1, void *void2);
 int _sort_job_by_priority(void *void1, void *void2);
 int _sort_job_by_partition(void *void1, void *void2);
 int _sort_job_by_state(void *void1, void *void2);
-- 
GitLab