rem: name_length = length_of_file_name_and_frills (files + filesno); max_name_length = line_fmt->col_arr[col++];
context: print_many_per_line (void){  struct column_info *line_fmt;  int filesno;			/* Index into files. */  int row;			/* Current row. */  int max_name_length;		/* Length of longest file name + frills. */  int name_length;		/* Length of each file name + frills. */  int pos;			/* Current character column. */  int cols;			/* Number of files across. */  int rows;			/* Maximum number of files down. */  int max_cols;  /* Normally the maximum number of columns is determined by the     screen width.  But if few files are available this might limit it     as well.  */  max_cols = max_idx > files_index ? files_index : max_idx;  /* Compute the maximum number of possible columns.  */  for (filesno = 0; filesno < files_index; ++filesno)    {      int i;      name_length = length_of_file_name_and_frills (files + filesno);      for (i = 0; i < max_cols; ++i)	{	  if (column_info[i].valid_len)	    {	      int idx = filesno / ((files_index + i) / (i + 1));	      int real_length = name_length + (idx == i ? 0 : 2);	      if (real_length > column_info[i].col_arr[idx])		{		  column_info[i].line_len += (real_length					   - column_info[i].col_arr[idx]);		  column_info[i].col_arr[idx] = real_length;		  column_info[i].valid_len = column_info[i].line_len < line_length;		}	    }	}    }  /* Find maximum allowed columns.  */  for (cols = max_cols; cols > 1; --cols)    {      if (column_info[cols - 1].valid_len)	break;    }  line_fmt = &column_info[cols - 1];  /* Calculate the number of rows that will be in each column except possibly     for a short column on the right. */  rows = files_index / cols + (files_index % cols != 0);  for (row = 0; row < rows; row++)    {      int col = 0;      filesno = row;      pos = 0;      /* Print the next row.  */      while (1)	{	  print_file_name_and_frills (files + filesno);	  name_length = length_of_file_name_and_frills (files + filesno);	  max_name_length = line_fmt->col_arr[col++];	  filesno += rows;	  if (filesno >= files_index)	    break;	  indent (pos + name_length, pos + max_name_length);	  pos += max_name_length;	}      putchar ('\n');    }}