FROM Nathaniel Daw Carnegie Mellon University 28 August 2002 Fixes I applied: * Windows Matlab is case-insensitive for function names, Linux is not. Much of the code is haphazard about the capitalization of functions, causing lots of random crashes on Linux when called functions aren't found due to case mismatch. I have fixed this in every place I have found it, which is to say for all of the MClust features I actually use, but there may still be some problems with this here and there that I haven't run into. * I did not attempt to impose any consistency with regard to function naming conventions (findfiles versus FindFiles versus Find_files) -- I just changed function references to match exisiting filename case (to produce the simplest patch). * The patch also fixes a minor bug in MClustCallbacks.m, involving a regular expression that is too permissive and matches fd files for Sc10, 11 and 12 when looking for Sc1. * I also change some dos-specific stuff in RunClustBatch.m, but tried to leave the result windows compatible. Linux versions of the various executables: * Of the loading functions, I have only mex-compiled LoadTT_NeuralynxNT.cpp -- the Linux C++ compiler doesn't like the SE and ST ones (there is a variable namespace error) and I didn't bother trying to fit them. * I have also not been able to build a linux version of bubbleclust since I don't have the source. Consequently I don't know if any of the matlab that links into it works on Linux. In fact, it probably doesn't. (i.e. it probably has some of the capitalization issues discussed above.) Aesthetics/Annoyances: * Some of the files use control-Ms for newlines (this is the windows convention, but a pain to edit on Linux). I have done nothing about this. * The "color merge" feature in the klustakwik selection window works poorly because, unlike Windows, the Linux Matlab color picker doesn't offer several discrete colors to choose from so it's very hard to match up colors for later merging. The "hold" feature is also annoying on linux (once you turn it on, you can't turn it off). * The command unix('whatever') or dos('whatever') is very poorly implemented on Linux. Specifically, matlab busywaits on the process to terminate. This means that the RunClustBatch function takes twice as long as it should, since Matlab uses 50% of the CPU just doing nothing while klustakwik is running. This is a very serious problem and I have been unable to find a clean workaround. A friend of mine was going to write a mex function that does the right thing (i.e. runs a command and sleeps until it terminates), but he has not done so yet.