about select_non_manifold

I understand I can call the operator in 2.5
Is there a way to call it in 2.49?

If not, I need to implement it myself. Is there a way to access the mesh structure?(the INTERNAL mesh structure, that stores the information about the topology of faces)

thanks

From Yorik Van Havre: http://yorik.uncreated.net/guestblog.php?tag=blender&complete=3

#!BPY
“”"
Name: ‘Check Integrity’
Blender: 245
Group: ‘Object’
Tooltip: ‘Hilights non-manifold edges in the active mesh’
“”"
author = [“Yorik van Havre”]
url = (“blender”, “blenderartists”, “http://yorik.orgfree.com”)
version = “0”
bpydoc = “”"
This script checks the active mesh for open or non-manifold edges.
If all edges have exactly 2 faces, this means we have a perfectly closed manifold mesh.
Otherwise, the 1-face or 3-face meshes are selected, so you can fix them easily…
“”"

***** BEGIN GPL LICENSE BLOCK *****

This program is free software; you can redistribute it and/or

modify it under the terms of the GNU General Public License

as published by the Free Software Foundation; either version 2

of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program; if not, write to the Free Software Foundation,

Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

***** END GPL LICENCE BLOCK *****

import Blender,BPyMessages
from Blender import Mesh,Scene,Window

def search(mymesh):
culprits=[]
for e in mymesh.edges:
e.sel = 0
shared=0
for f in mymesh.faces:
for vf1 in f.v:
if vf1 == e.v1:
for vf2 in f.v:
if vf2 == e.v2:
shared = shared+1
if (shared > 2):
# non-manifold
culprits.append(e)
e.sel=1
if (shared < 2):
# open
culprits.append(e)
e.sel=1
return culprits

def main():

  # Gets the current scene, there can be many scenes in 1 blend file.
  sce = Scene.GetCurrent()
  # Get the active object, there can only ever be 1
  # and the active object is always the editmode object.
  ob_act = sce.objects.active
  if not ob_act or ob_act.type != 'Mesh':
  		BPyMessages.Error_NoMeshActive()
  		return 
  # Saves the editmode state and go's out of 
  # editmode if its enabled, we cant make
  # changes to the mesh data while in editmode.
  is_editmode = Window.EditMode()
  if is_editmode: Window.EditMode(1)
  Window.WaitCursor(1)
  mymesh = ob_act.getData(mesh=1)
  culprits = search(mymesh)
  if len(culprits) == 0:
  	print "No problematic edge. This mesh is manifold."
  else:
  	print "Found ",len(culprits)," problematic edges."
  Window.WaitCursor(0)
  Blender.Redraw()

This lets you import the script without running it

if name == ‘main’:
main()

Script for Blender 2.45 and too for 2.49!

Thanks!
brute force method is a solution for me.