uppsrc_merged.diff

Proposed merged patch for layout and image designers (since 13633 revision) - Sender Ghost, 10/09/2019 07:43 AM

Download (6.75 KB)

View differences:

uppsrc/Core/Util.cpp
664 664
	return h;
665 665
}
666 666

  
667
String GetLineEndings(const String& data, const String& default_eol)
668
{
669
	int q = data.ReverseFind("\n");
670
	if(q >= 0) {
671
		if(data.Mid(q - 1, 1) == "\r")
672
			return "\r\n";
673
		else
674
			return "\n";
675
	}
676
#if 0
677
	else if(data.ReverseFind("\r") >= 0)
678
		return "\r";
679
#endif
680
	return default_eol;
681
}
682

  
667 683
void    RegisterGlobalConfig(const char *name)
668 684
{
669 685
	Mutex::Lock __(sGCfgLock);
uppsrc/Core/Util.h
449 449
	return Load(x, ss);
450 450
}
451 451

  
452
String GetLineEndings(const String& data, const String& default_eol = "\r\n");
453

  
452 454
void             RegisterGlobalConfig(const char *name);
453 455
void             RegisterGlobalSerialize(const char *name, Event<Stream&> WhenSerialize);
454 456
void             RegisterGlobalConfig(const char *name, Event<>  WhenFlush);
uppsrc/IconDes/ImlFile.cpp
185 185
	}
186 186
}
187 187

  
188
String ImlEOL("\r\n");
189

  
188 190
bool LoadIml(const String& data, Array<ImlImage>& img, int& format)
189 191
{
192
	ImlEOL = GetLineEndings(data);
190 193
	CParser p(data);
191 194
	format = 0;
192 195
	try {
......
277 280
	int64 start = out.GetPos();
278 281
	while(b < e) {
279 282
		if(split && out.GetPos() >= start + 200u) {
280
			out.Put("\"\r\n\t\"");
283
			out << "\"" << ImlEOL << "\t\"";
281 284
			start = out.GetPos();
282 285
		}
283 286
		if((byte)*b >= ' ' && *b != '\x7F' && *b != '\xFF') {
......
299 302
		for(int i = 0; i < iml.GetCount(); i++) {
300 303
			const ImlImage& c = iml[i];
301 304
			if(c.exp)
302
				out << "IMAGE_META(\"exp\", \"\")\r\n";
305
				out << "IMAGE_META(\"exp\", \"\")" << ImlEOL;
303 306
			String name = c.name;
304 307
			Image buffer = c.image;
305 308
			if(IsNull(name))
......
314 317
						out.PutLine("\tIMAGE_SCAN(\"\")");
315 318
					out.Put("\tIMAGE_SCAN(");
316 319
					PutOctalString(out, scan.Begin(), scan.End(), true);
317
					out.Put(")\r\n");
320
					out << ")" << ImlEOL;
318 321
					last = i + 1;
319 322
				}
320 323
			}
......
331 334
			ASSERT(!datastrm.IsError());
332 335
			String s = datastrm.GetResult();
333 336
			PutOctalString(out, s.Begin(), s.End());
334
			out.Put(")\r\n");
337
			out << ")" << ImlEOL;
335 338
		}
336 339
	}
337 340
	else {
338
		out << "PREMULTIPLIED\r\n";
341
		out << "PREMULTIPLIED" << ImlEOL;
339 342
		Index<String> std_name;
340 343
		for(int i = 0; i < iml.GetCount(); i++) {
341 344
			const ImlImage& c = iml[i];
......
351 354
				out << "__DARK";
352 355
			out << ")";
353 356
			if(c.exp)
354
				out << " IMAGE_META(\"exp\", \"\")\r\n";
355
			out << "\r\n";
357
				out << " IMAGE_META(\"exp\", \"\")" << ImlEOL;
358
			out << ImlEOL;
356 359
		}
357 360
		int ii = 0;
358 361
		while(ii < iml.GetCount()) {
......
372 375
				bn++;
373 376
			}
374 377
			String bs = PackImlData(bimg);
375
			out << "\r\nIMAGE_BEGIN_DATA\r\n";
378
			out << ImlEOL << "IMAGE_BEGIN_DATA" << ImlEOL;
376 379
			bs.Cat(0, ((bs.GetCount() + 31) & ~31) - bs.GetCount());
377 380
			const byte *s = bs;
378 381
			for(int n = bs.GetCount() / 32; n--;) {
......
381 384
					if(j) out << ',';
382 385
					out << (int)*s++;
383 386
				}
384
				out << ")\r\n";
387
				out << ")" << ImlEOL;
385 388
			}
386
			out << "IMAGE_END_DATA(" << bs.GetCount() << ", " << bn << ")\r\n";
389
			out << "IMAGE_END_DATA(" << bs.GetCount() << ", " << bn << ")" << ImlEOL;
387 390
		}
388 391
	}
389 392
	return out.GetResult();
uppsrc/ide/LayDes/LayDes.h
276 276
	virtual void   Layout() override;
277 277
	virtual bool   HotKey(dword key) override;
278 278

  
279
	static String EOL;
280
	static void SetEOL(const String& le) { EOL = le; }
281

  
279 282
private:
280 283
	bool   DoKey(dword key, int count);
281 284
	bool   DoHotKey(dword key);
uppsrc/ide/LayDes/item.cpp
212 212
	else
213 213
		out << "\tITEM(" << type << ", ";
214 214
	String var = variable.IsEmpty() ? Format("dv___%d", i) : variable;
215
	out << var << ", " << SaveProperties(y) << ")\r\n";
215
	out << var << ", " << SaveProperties(y) << ")" << LayDes::EOL;
216 216
	return out;
217 217
}
218 218

  
uppsrc/ide/LayDes/layfile.cpp
107 107
		newfile = false;
108 108
		filetime = in.GetTime();
109 109
		fileerror.Clear();
110
		SetEOL(GetLineEndings(layfile));
110 111
		try {
111 112
			CParser p(layfile);
112 113
			if(p.Char('#') && p.Id("ifdef")) {
......
129 130
	else {
130 131
		newfile = true;
131 132
		filetime = Null;
133
		SetEOL("\r\n");
132 134
	}
133 135
	search <<= Null;
134 136
	SyncLayoutList();
......
149 151
	String r;
150 152
	for(int i = 0; i < layout.GetCount(); i++) {
151 153
		layout[i].SetCharset(charset);
152
		r << layout[i].Save(0) << "\r\n";
154
		r << layout[i].Save(0) << LayDes::EOL;
153 155
	}
154 156
	layfile = r;
155 157
	if(!SaveChangedFileFinish(filename, r))
uppsrc/ide/LayDes/layout.cpp
94 94
String LayoutData::Save(int y)
95 95
{
96 96
	String out;
97
	out << "LAYOUT(" << name << ", " << size.cx << ", " << size.cy << ")\r\n";
97
	out << "LAYOUT(" << name << ", " << size.cx << ", " << size.cy << ")" << LayDes::EOL;
98 98
	for(int i = 0; i < item.GetCount(); i++) {
99 99
		out << item[i].Save(i, y);
100 100
	}
101
	out << "END_LAYOUT\r\n";
101
	out << "END_LAYOUT" << LayDes::EOL;
102 102
	return out;
103 103
}
104 104

  
......
107 107
	Vector<int> cs(sel, 1);
108 108
	Sort(cs);
109 109
	String out;
110
	out << "LAYOUT(" << name << ", " << size.cx << ", " << size.cy << ")\r\n";
110
	out << "LAYOUT(" << name << ", " << size.cx << ", " << size.cy << ")" << LayDes::EOL;
111 111
	for(int i = 0; i < cs.GetCount(); i++)
112 112
		out << item[cs[i]].Save(cs[i], y);
113
	out << "END_LAYOUT\r\n";
113
	out << "END_LAYOUT" << LayDes::EOL;
114 114
	return out;
115 115
}
116 116

  
uppsrc/ide/LayDes/laywin.cpp
278 278
	       StaticRect::HotKey(key);
279 279
}
280 280

  
281
String LayDes::EOL("\r\n");
282

  
281 283
LayDes::LayDes()
282 284
{
283 285
	charset = CHARSET_UTF8;