rem: name_length = length_of_file_name_and_frills (files); max_name_length = line_fmt->col_arr[0];
context: print_horizontal (void){  struct column_info *line_fmt;  int filesno;  int max_name_length;  int name_length;  int cols;  int pos;  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 file name length.  */  max_name_length = 0;  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 % (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];  pos = 0;  /* Print first entry.  */  print_file_name_and_frills (files);  name_length = length_of_file_name_and_frills (files);  max_name_length = line_fmt->col_arr[0];  /* Now the rest.  */  for (filesno = 1; filesno < files_index; ++filesno)    {      int col = filesno % cols;      if (col == 0)	{	  putchar ('\n');	  pos = 0;	}      else	{	  indent (pos + name_length, pos + max_name_length);	  pos += max_name_length;	}      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];    }  putchar ('\n');}