diff --git a/src/api/job_info.c b/src/api/job_info.c index aa3db1a498760d277fe3666dbb14bb323ee9b2c8..04c8f0dc5e528b073ce29f4e33d351221103d07e 100644 --- a/src/api/job_info.c +++ b/src/api/job_info.c @@ -230,14 +230,13 @@ slurm_sprint_job_info ( job_info_t * job_ptr, int one_liner ) } sprintf(tmp_line, " %sIndices=", nodelist); xstrcat(out, tmp_line); - for (j = 0; job_ptr->node_inx; j++) { + for (j = 0; (job_ptr->node_inx && (job_ptr->node_inx[j] != -1)); + j+=2) { if (j > 0) - sprintf(tmp_line, ",%d", job_ptr->node_inx[j]); - else - sprintf(tmp_line, "%d", job_ptr->node_inx[j]); + xstrcat(out, ","); + sprintf(tmp_line, "%d-%d", job_ptr->node_inx[j], + job_ptr->node_inx[j+1]); xstrcat(out, tmp_line); - if (job_ptr->node_inx[j] == -1) - break; } if (one_liner) xstrcat(out, " "); @@ -296,14 +295,13 @@ slurm_sprint_job_info ( job_info_t * job_ptr, int one_liner ) snprintf(tmp_line, sizeof(tmp_line), "Req%s=%s Req%sIndices=", nodelist, job_ptr->req_nodes, nodelist); xstrcat(out, tmp_line); - for (j = 0; job_ptr->req_node_inx; j++) { + for (j = 0; (job_ptr->req_node_inx && (job_ptr->req_node_inx[j] != -1)); + j+=2) { if (j > 0) - sprintf(tmp_line, ",%d", job_ptr->req_node_inx[j]); - else - sprintf(tmp_line, "%d", job_ptr->req_node_inx[j]); + xstrcat(out, ","); + sprintf(tmp_line, "%d-%d", job_ptr->req_node_inx[j], + job_ptr->req_node_inx[j+1]); xstrcat(out, tmp_line); - if (job_ptr->req_node_inx[j] == -1) - break; } if (one_liner) xstrcat(out, " "); @@ -314,14 +312,13 @@ slurm_sprint_job_info ( job_info_t * job_ptr, int one_liner ) snprintf(tmp_line, sizeof(tmp_line), "Exc%s=%s Exc%sIndices=", nodelist, job_ptr->exc_nodes, nodelist); xstrcat(out, tmp_line); - for (j = 0; job_ptr->exc_node_inx; j++) { + for (j = 0; (job_ptr->exc_node_inx && (job_ptr->exc_node_inx[j] != -1)); + j+=2) { if (j > 0) - sprintf(tmp_line, ",%d", job_ptr->exc_node_inx[j]); - else - sprintf(tmp_line, "%d", job_ptr->exc_node_inx[j]); + xstrcat(out, ","); + sprintf(tmp_line, "%d-%d", job_ptr->exc_node_inx[j], + job_ptr->exc_node_inx[j+1]); xstrcat(out, tmp_line); - if (job_ptr->exc_node_inx[j] == -1) - break; } if (one_liner) xstrcat(out, " "); diff --git a/src/api/partition_info.c b/src/api/partition_info.c index 8ecbe6954226c9a0187c49716e3525d16e44ada4..21d1a43556b9ff50584c5833d7fccf0bbad38d09 100644 --- a/src/api/partition_info.c +++ b/src/api/partition_info.c @@ -205,14 +205,13 @@ char *slurm_sprint_partition_info ( partition_info_t * part_ptr, sprintf(tmp_line, "Nodes=%s NodeIndices=", part_ptr->nodes); #endif xstrcat(out, tmp_line); - for (j = 0; part_ptr->node_inx; j++) { + for (j = 0; (part_ptr->node_inx && (part_ptr->node_inx[j] != -1)); + j+=2) { if (j > 0) - sprintf(tmp_line, ",%d", part_ptr->node_inx[j]); - else - sprintf(tmp_line, "%d", part_ptr->node_inx[j]); + xstrcat(out, ","); + sprintf(tmp_line, "%d-%d", part_ptr->node_inx[j], + part_ptr->node_inx[j+1]); xstrcat(out, tmp_line); - if (part_ptr->node_inx[j] == -1) - break; } if (one_liner) xstrcat(out, "\n");