internal static unsafe SvnPropertyValue Create(sbyte *propertyName, svn_string_t value, SvnTarget target, string name) { if (propertyName == null) { throw new ArgumentNullException(nameof(propertyName)); } if (value == null) { throw new ArgumentNullException(nameof(value)); } if (name == null) { throw new ArgumentNullException(nameof(name)); } object val = SvnBase.PtrToStringOrByteArray(value.data, (int)value.len); if (val is string strVal) { if (svn_props.svn_prop_needs_translation(propertyName)) { strVal = strVal.Replace("\n", Environment.NewLine); } return(new SvnPropertyValue(name, SvnBase.PtrToByteArray(value.data, (int)value.len), strVal, target)); } return(new SvnPropertyValue(name, (byte[])val, target)); }
internal static unsafe SvnPropertyValue Create(sbyte *propertyName, svn_string_t value, SvnTarget target) { if (propertyName == null) { throw new ArgumentNullException(nameof(propertyName)); } string name = SvnBase.Utf8_PtrToString(propertyName); return(Create(propertyName, value, target, name)); }
unsafe bool InternalSetProperty(string target, string propertyName, svn_string_t value, SvnSetPropertyArgs args, AprPool pool) { if (target == null) { throw new ArgumentNullException(nameof(target)); } if (string.IsNullOrEmpty(propertyName)) { throw new ArgumentNullException(nameof(propertyName)); } if (string.IsNullOrEmpty(propertyName)) { throw new ArgumentNullException(nameof(propertyName)); } EnsureState(SvnContextState.ConfigLoaded); // We might need repository access using var store = new ArgsStore(this, args, pool); sbyte *pcPropertyName = pool.AllocString(propertyName); if (!svn_props.svn_prop_name_is_valid(pcPropertyName)) { throw new ArgumentException(SharpSvnStrings.PropertyNameIsNotValid, nameof(propertyName)); } svn_error_t r = svn_client.svn_client_propset_local( pcPropertyName, value, AllocDirentArray(NewSingleItemCollection(SvnTools.GetNormalizedFullPath(target)), pool), (svn_depth_t)args.Depth, args.SkipChecks, CreateChangeListsList(args.ChangeLists, pool), // Intersect ChangeLists CtxHandle, pool.Handle); return(args.HandleResult(this, r, target)); }
private SvnString(svn_string_t *ptr) { mString = ptr; }