+ return @out;
+}
+
+# format a spot for user output in 'broadcast' mode
+sub formatb
+{
+ my @dx = @_;
+ my $t = ztime($dx[2]);
+ my $ref = DXUser->get_current($dx[4]);
+ my $loc = $ref->qra if $ref && $ref->qra;
+ $loc = substr($ref->qra, 0, 4) if $loc;
+ $loc = "" unless $loc;
+ return sprintf "DX de %-7.7s%11.1f %-12.12s %-30s %s $loc", "$dx[4]:", $dx[0], $dx[1], $dx[3], $t ;
+}
+
+# format a spot for user output in list mode
+sub formatl
+{
+ my @dx = @_;
+ my $t = ztime($dx[2]);
+ my $d = cldate($dx[2]);
+ return sprintf "%8.1f %-11s %s %s %-28.28s%7s>", $dx[0], $dx[1], $d, $t, $dx[3], "<$dx[4]" ;
+}
+
+#
+# return all the spots from a day's file as an array of references
+# the parameter passed is a julian day
+sub readfile
+{
+ my @spots;
+
+ my $fh = $fp->open(@_);
+ if ($fh) {
+ my $in;
+ while (<$fh>) {
+ chomp;
+ push @spots, [ split '\^' ];
+ }
+ }
+ return @spots;