igor-public/pearl/pearl-compat.ipf

58 lines
1.6 KiB
Igor

#pragma rtGlobals=3 // Use modern global access method and strict wave access.
#pragma IgorVersion = 6.1
#pragma ModuleName = PearlCompat
#pragma version = 1.01
// copyright (c) 2019 Paul Scherrer Institut
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http:///www.apache.org/licenses/LICENSE-2.0
/// @file
/// @brief compatibility procedures for igor 8
/// @ingroup ArpesPackage
///
///
/// the compatibility procedures ensure that igor experiments
/// created with the PEARL procedures under igor 8
/// can be opened with earlier igor versions (>= 6.34).
///
/// the following possible issues are addressed:
///
/// @arg length of object names
/// @namespace PearlCompat
/// @brief compatibility procedures for igor 8
///
/// PearlCompat is declared in @ref pearl-compat.ipf.
// Compatible CleanupName function
//
// Igor 8's CleanupName may return long object names (> 31 characters).
// This breaks compatibility with earlier Igor versions.
// Experiments that include waves, folders, windows etc. with long names
// cannot be loaded with an earlier version.
//
// This is a drop-in replacement function for CleanupName.
// In addition to the behaviour of CleanupName,
// this replacement ensures that names are limited to 31 characters.
//
// @param name object name to clean up
//
// @return (str) clean object name
//
function /s PearlCleanupName(name)
string name
#if IgorVersion() >= 8.00
// note: this function is not threadsafe
return CleanupName(name, 0, 31)
#else
return CleanupName(name, 0)
#endif
end