The first detail is that your application may draw two kinds of polylines: old-style and lightweight. These different polyline types return their entity data in different formats. The old-style polyline returns a list of twelve reals: four sets of X, Y, and Z points. The lightweight polyline, though, returns a list eight reals: four sets of X and Y points.
You need to do some calculations to determine the revised polyline boundary after a user moves one of the vertices. It will be a lot easier to do the calculations if the polyline data has a consistent format.
xyzList->ListOfPoints extracts and formats 3D point lists into a list of lists, and xyList->ListOfPoints extracts and formats 2D point lists into a list of lists.The Lesson 7 version of the utils.lsp file contains functions to perform the necessary format conversions:
In addition to the two functions that reformat polyline data, utils.lsp contains additional utility functions needed in handling user alterations to the garden path.