1/*
2 * This macro displays a popup menu showing all lines in the file that are named
3 * as a result of a SET POINT command. When a line is selected, that line becomes current.
4 */
5Trace o
6lf = D2c(10)
7'extract /line/point *'
8If point.0 = 0 Then Call Abort 'No named lines exist'
9line = ''
10max_line = 0
11max_name = 0
12save_line = line.1
13Do i = 1 To point.0
14   If Length( Word( point.i, 1 ) ) > max_line Then max_line = Length( Word( point.i, 1 ) )
15   If Length( Word( point.i, 2 ) ) > max_name Then max_name = Length( Word( point.i, 2 ) )
16   ':'Word( point.i, 1 )
17   'extract /curline'
18   point.i = point.i curline.3
19End
20':'save_line
21Do i = 1 To point.0
22   line = line || Right( Word( point.i, 1 ), max_line ) Left( Word( point.i, 2 ), max_name) Subword( point.i, 3 ) || lf
23End
24'popup centre' lf || line
25idx = popup.2
26If idx \= 0 Then ':'Word( point.idx, 1 )
27Return
28
29Abort:
30Parse Arg msg
31'emsg' msg
32exit 0
33