Solving simple vector-valued equations



hi,

I am trying to solve a simple vector-valued equation:
  solve([1,1] = [p1x,p1y] + u*([p2x,p2y]-[p1x,p1y]), u);
("intersection" between (1,1) and the line defined by p1 and p2)
=> [[(p1x - p2x) u - p1x + 1, (p1y - p2y) u - p1y + 1] = 0]

I know I can easily formulate this with two scalar equations,
but I would like to solve more complicated vector equations
where the vector representation is much more readable.

I guess it's a limitation of maxima because:
  solve([(p1x - p2x) *u - p1x + 1, (p1y - p2y) *u - p1y + 1] = [0,0],u);
yields:
  [[(p1x - p2x) u - p1x + 1, (p1y - p2y) u - p1y + 1] = 0]
but is there a better way to solve this?

Thanks!
-- 
Felix Natter