Эх сурвалжийг харах

Removed trash from WIP notepadA module

Toby Chui 3 жил өмнө
parent
commit
94902cff0e
100 өөрчлөгдсөн 0 нэмэгдсэн , 15340 устгасан
  1. 0 32
      web/NotepadA/backup/FloatWindow.js
  2. 0 14
      web/NotepadA/backup/FloatWindow.php
  3. 0 38
      web/NotepadA/backup/README.txt
  4. 0 20
      web/NotepadA/backup/checkCodePathValid.php
  5. 0 1
      web/NotepadA/backup/description.txt
  6. 0 352
      web/NotepadA/backup/editor.php
  7. 0 49
      web/NotepadA/backup/embedded.php
  8. 0 648
      web/NotepadA/backup/index.php
  9. 0 20
      web/NotepadA/backup/writeCode.php
  10. 0 161
      web/NotepadA/utils/colorpicker/css/colorpicker.css
  11. 0 218
      web/NotepadA/utils/colorpicker/css/layout.css
  12. BIN
      web/NotepadA/utils/colorpicker/images/blank.gif
  13. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_background.png
  14. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_hex.png
  15. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_hsb_b.png
  16. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_hsb_h.png
  17. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_hsb_s.png
  18. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_indic.gif
  19. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_overlay.png
  20. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_rgb_b.png
  21. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_rgb_g.png
  22. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_rgb_r.png
  23. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_select.gif
  24. BIN
      web/NotepadA/utils/colorpicker/images/colorpicker_submit.png
  25. BIN
      web/NotepadA/utils/colorpicker/images/custom_background.png
  26. BIN
      web/NotepadA/utils/colorpicker/images/custom_hex.png
  27. BIN
      web/NotepadA/utils/colorpicker/images/custom_hsb_b.png
  28. BIN
      web/NotepadA/utils/colorpicker/images/custom_hsb_h.png
  29. BIN
      web/NotepadA/utils/colorpicker/images/custom_hsb_s.png
  30. BIN
      web/NotepadA/utils/colorpicker/images/custom_indic.gif
  31. BIN
      web/NotepadA/utils/colorpicker/images/custom_rgb_b.png
  32. BIN
      web/NotepadA/utils/colorpicker/images/custom_rgb_g.png
  33. BIN
      web/NotepadA/utils/colorpicker/images/custom_rgb_r.png
  34. BIN
      web/NotepadA/utils/colorpicker/images/custom_submit.png
  35. BIN
      web/NotepadA/utils/colorpicker/images/select.png
  36. BIN
      web/NotepadA/utils/colorpicker/images/select2.png
  37. BIN
      web/NotepadA/utils/colorpicker/images/slider.png
  38. 0 16
      web/NotepadA/utils/colorpicker/index.html
  39. 0 484
      web/NotepadA/utils/colorpicker/js/colorpicker.js
  40. 0 34
      web/NotepadA/utils/colorpicker/js/eye.js
  41. 0 4376
      web/NotepadA/utils/colorpicker/js/jquery.js
  42. 0 67
      web/NotepadA/utils/colorpicker/js/layout.js
  43. 0 252
      web/NotepadA/utils/colorpicker/js/utils.js
  44. 0 71
      web/NotepadA/utils/gcci/compile.php
  45. 0 184
      web/NotepadA/utils/gcci/index.php
  46. 0 1
      web/NotepadA/utils/gcci/output.txt
  47. 0 1
      web/NotepadA/utils/gcci/src/jquery.min.js
  48. 0 0
      web/NotepadA/utils/gcci/src/tocas.css
  49. 0 114
      web/NotepadA/utils/gcci/tcc/doc/readme.txt
  50. 0 2331
      web/NotepadA/utils/gcci/tcc/doc/tcc-doc.html
  51. 0 15
      web/NotepadA/utils/gcci/tcc/examples/dll.c
  52. 0 6
      web/NotepadA/utils/gcci/tcc/examples/dll.def
  53. 0 23
      web/NotepadA/utils/gcci/tcc/examples/fib.c
  54. 0 19
      web/NotepadA/utils/gcci/tcc/examples/hello_dll.c
  55. 0 159
      web/NotepadA/utils/gcci/tcc/examples/hello_win.c
  56. 0 54
      web/NotepadA/utils/gcci/tcc/include/_mingw.h
  57. 0 71
      web/NotepadA/utils/gcci/tcc/include/assert.h
  58. 0 159
      web/NotepadA/utils/gcci/tcc/include/conio.h
  59. 0 232
      web/NotepadA/utils/gcci/tcc/include/ctype.h
  60. 0 26
      web/NotepadA/utils/gcci/tcc/include/dir.h
  61. 0 95
      web/NotepadA/utils/gcci/tcc/include/direct.h
  62. 0 96
      web/NotepadA/utils/gcci/tcc/include/dirent.h
  63. 0 110
      web/NotepadA/utils/gcci/tcc/include/dos.h
  64. 0 117
      web/NotepadA/utils/gcci/tcc/include/errno.h
  65. 0 20
      web/NotepadA/utils/gcci/tcc/include/excpt.h
  66. 0 135
      web/NotepadA/utils/gcci/tcc/include/fcntl.h
  67. 0 85
      web/NotepadA/utils/gcci/tcc/include/fenv.h
  68. 0 224
      web/NotepadA/utils/gcci/tcc/include/float.h
  69. 0 275
      web/NotepadA/utils/gcci/tcc/include/inttypes.h
  70. 0 296
      web/NotepadA/utils/gcci/tcc/include/io.h
  71. 0 115
      web/NotepadA/utils/gcci/tcc/include/limits.h
  72. 0 100
      web/NotepadA/utils/gcci/tcc/include/locale.h
  73. 0 87
      web/NotepadA/utils/gcci/tcc/include/malloc.h
  74. 0 438
      web/NotepadA/utils/gcci/tcc/include/math.h
  75. 0 8
      web/NotepadA/utils/gcci/tcc/include/mem.h
  76. 0 9
      web/NotepadA/utils/gcci/tcc/include/memory.h
  77. 0 158
      web/NotepadA/utils/gcci/tcc/include/process.h
  78. 0 72
      web/NotepadA/utils/gcci/tcc/include/setjmp.h
  79. 0 44
      web/NotepadA/utils/gcci/tcc/include/share.h
  80. 0 111
      web/NotepadA/utils/gcci/tcc/include/signal.h
  81. 0 16
      web/NotepadA/utils/gcci/tcc/include/stdarg.h
  82. 0 10
      web/NotepadA/utils/gcci/tcc/include/stdbool.h
  83. 0 26
      web/NotepadA/utils/gcci/tcc/include/stddef.h
  84. 0 184
      web/NotepadA/utils/gcci/tcc/include/stdint.h
  85. 0 413
      web/NotepadA/utils/gcci/tcc/include/stdio.h
  86. 0 482
      web/NotepadA/utils/gcci/tcc/include/stdlib.h
  87. 0 206
      web/NotepadA/utils/gcci/tcc/include/string.h
  88. 0 8
      web/NotepadA/utils/gcci/tcc/include/sys/fcntl.h
  89. 0 9
      web/NotepadA/utils/gcci/tcc/include/sys/file.h
  90. 0 52
      web/NotepadA/utils/gcci/tcc/include/sys/locking.h
  91. 0 190
      web/NotepadA/utils/gcci/tcc/include/sys/stat.h
  92. 0 3
      web/NotepadA/utils/gcci/tcc/include/sys/time.h
  93. 0 82
      web/NotepadA/utils/gcci/tcc/include/sys/timeb.h
  94. 0 118
      web/NotepadA/utils/gcci/tcc/include/sys/types.h
  95. 0 9
      web/NotepadA/utils/gcci/tcc/include/sys/unistd.h
  96. 0 89
      web/NotepadA/utils/gcci/tcc/include/sys/utime.h
  97. 0 367
      web/NotepadA/utils/gcci/tcc/include/tchar.h
  98. 0 219
      web/NotepadA/utils/gcci/tcc/include/time.h
  99. 0 10
      web/NotepadA/utils/gcci/tcc/include/unistd.h
  100. 0 4
      web/NotepadA/utils/gcci/tcc/include/values.h

+ 0 - 32
web/NotepadA/backup/FloatWindow.js

@@ -1,32 +0,0 @@
-//FloatWindow.js
-//ArOZ Online Beta Project 
-//This function is developed for launching a FloatWindow in Function Bar environment
-//[Variables Meaning]
-//src: The path in which the new window points to
-//title: The title text that displace on the window top bar
-//iconTag: The icon used for the window label and buttons. Reference Tocas UI for the iconTag information
-//uid: The uid is the unique id for this window. If duplicated uid is found, the old window will be replaced.
-//ww, wh: Window Width, Window Height
-//posx, posy: Window Position x, Window Position y
-//resizable: If the float window is resizable
-
-class FloatWindow {
-  constructor(src, title, iconTag="folder", uid ,ww=undefined, wh=undefined, posx=undefined, posy=undefined, resizable=true, glassEffect=false) {
-	this.src =  location.href.replace(/[^/]*$/, '') + src;
-	this.title = title;
-	this.iconTag = iconTag;
-	this.uid = uid;
-    this.ww = ww;
-    this.wh = wh;
-	this.posx = posx;
-	this.posy = posy;
-	this.resizable = resizable;
-	this.glassEffect = glassEffect;
-  }
-  
-  // Method
-  launch() {
-    parent.newEmbededWindow(this.src,this.title,this.iconTag,this.uid,this.ww,this.wh,this.posx,this.posy,this.resizable,this.glassEffect);
-	//console.log(this.src,this.title,this.iconTag,this.uid,this.ww,this.wh,this.posx,this.posy,this.resizable,this.glassEffect);
-  }
-}

+ 0 - 14
web/NotepadA/backup/FloatWindow.php

@@ -1,14 +0,0 @@
-<?php
-include '../auth.php';
-?>
-<html>
-<body>
-Now Loading...
-<script src="FloatWindow.js"></script>
-<script>
-var uid = "notepadA";
-var fw = new FloatWindow("index.php","NotepadA","code", uid,840,500,0,0,undefined,true);
-fw.launch();
-</script>
-</body>
-</html>

+ 0 - 38
web/NotepadA/backup/README.txt

@@ -1,38 +0,0 @@
-
-  _____  _           _           _____ _        _   _             
- |  __ \| |         | |         / ____| |      | | (_)            
- | |__) | |__   ___ | |_ ___   | (___ | |_ __ _| |_ _  ___  _ __  
- |  ___/| '_ \ / _ \| __/ _ \   \___ \| __/ _` | __| |/ _ \| '_ \ 
- | |    | | | | (_) | || (_) |  ____) | || (_| | |_| | (_) | | | |
- |_|    |_| |_|\___/ \__\___/  |_____/ \__\__,_|\__|_|\___/|_| |_|
-                                                                  
-                                                                  
-=================================================================
-Standard Photo Station - ArOZ Online BETA Standard Functional Module
-
-# Introduction
-The Photo Station allow user to view image uploaded to the system.
-Photo Station support folder sorting and filename sorting. And this
-is just a simple system that show you image store in this module.
-
-# Functions
-1. View Photos
-2. Download Photos
-3. Upload Photos (via ArOZ Online BETA Upload Manager)
-4. Sort Photos into different directory
-5. Support jpg,jpeg,gif and png
-
-# API
-The photo station provide extremely simple API for applying custom
-search, sorting and folder viewing.
-
-The API has the following format:
-Photo/index.php?folder=folder_name&search=keyword&sort=mode
-
-folder_name is the name of the directory for image scanning
-keyword is the keyword for searching the image. (in string, not hex code)
-mode is the sorting mode used. Left empty for filename in ascending order,
-set to "reverse" for descending order.
-
-(C)IMUS Laboratory 2016-2017
-Licensed under MIT

+ 0 - 20
web/NotepadA/backup/checkCodePathValid.php

@@ -1,20 +0,0 @@
-<?php
-include_once '../auth.php';
-function checkIfFilepathAllowed($filepath){
-	$allowedEditingDirectory = [realpath(__DIR__ . DIRECTORY_SEPARATOR . "../"),"/media/storage"]; //Default: AOR + /media/storage
-	if (isset($filepath) != false && $filepath != ""){
-		$realFilepath = realpath($filepath);
-		$allowed = false;
-		foreach ($allowedEditingDirectory as $dir){
-			if (strpos($realFilepath,$dir) === 0){
-				$allowed = true;
-			}
-		}
-		return $allowed;
-	}else{
-		return false;
-	}
-}
-
-//echo checkIfFilepathAllowed("/media/storage1/text.php")? "true" : "false";
-?>

+ 0 - 1
web/NotepadA/backup/description.txt

@@ -1 +0,0 @@
-Notepad / Script editor for ArOZ Online in-System modification.

+ 0 - 352
web/NotepadA/backup/editor.php

@@ -1,352 +0,0 @@
-<?php
-include '../../auth.php';
-?>
-<!DOCTYPE html>
-<html lang="en">
-<!-- Special modification for NotepadA system, ArOZ Online Beta-->
-<head>
-<?php
-//Init of the editor
-function mv($var){
-	if (isset($_GET[$var]) == true && $_GET[$var] != ""){
-		return $_GET[$var];
-	}else{
-		return "";
-	}
-}
-//Default value
-$filename = "";
-$displayName = "";
-$fileExt = "";
-$theme = "tomorrow_night";
-$mode = "php";
-$fontsize = "12"; 
-//check if a correct filename has been provided
-if (mv("filename") != ""){
-	//Editing an existed file
-	$filename = mv("filename");
-	if (!file_exists($filename)){
-		//File not found, creating a new one instead
-		$file = fopen($filename, 'w') or die('Error opening file: ' + $filename); 
-		fclose($file); 
-	}
-	$displayName = $filename;
-	$fileExt = pathinfo($filename, PATHINFO_EXTENSION);
-	//Handle the AOB Upload Manger type of naming methods
-	if (substr($filename,0,5) == "inith"){
-		$nameOnly = basename($filename, "." . $fileExt);
-		$nameOnly = str_replace("inith","",$nameOnly);
-		$displayName = hex2bin($nameOnly) . "." . $fileExt . " (Encoded Filename)";
-	}else{
-		$displayName = basename($filename);
-	}
-	//Set the mode of the editor to the extension of the file, but something this might be incorrect.
-	$mode = $fileExt;
-}else{
-	//Creating a new file instead
-	$filename = "";
-	$displayName = "untitled";
-}
-
-if (mv("theme") != ""){
-	$theme = mv("theme");
-}
-
-if (mv("fontsize") != ""){
-	$fontsize = mv("fontsize");
-}
-
-
-?>
-  <meta charset="UTF-8">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-  <title><?php echo "Editing " . $displayName;?></title>
-  <script src="../../script/jquery.min.js"></script>
-  <style type="text/css" media="screen">
-    body {
-        overflow: hidden;
-		padding-bottom:5px;
-    }
-
-    #editor {
-        margin: 0;
-        position: absolute;
-        top: 0;
-        bottom: 15px;
-        left: 0;
-        right: 0;
-    }
-	
-  </style>
-</head>
-<body>
-<pre id="editor"><?php
-	if ($filename != ""){
-		echo str_replace("<","&lt;",file_get_contents($filename));
-	}
-
-?></pre>
-
-<script src="src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
-<script>
-	var filename = "<?php echo $filename;?>";
-	var filepath = "<?php echo str_replace("\\",'/',realpath($filename));?>";
-	var lastSave = "";
-	//Init editor
-    var editor = ace.edit("editor");
-    editor.setTheme("ace/theme/<?php echo $theme;?>");
-	var detectMode = getMode(filepath);
-	//console.log("[NotepadA] Chaning mode to " + detectMode.toLowerCase());
-	if ( detectMode != undefined){
-		editor.session.setMode("ace/mode/" + detectMode.toLowerCase());
-		
-	}else{
-		//Default mode: php
-		editor.session.setMode("ace/mode/php");
-	}
-	editor.setOptions({
-	  //fontFamily: "tahoma",
-	  fontSize: "<?php echo $fontsize;?>pt"
-	});
-	
-	$(document).ready(function(){
-		//Initial assume saved
-		lastSave = editor.getValue();
-		
-	});
-	//Listener for Ctrl+S
-	$(window).keypress(function(event) {
-		if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true;
-		//console.log(filepath);
-		Save();
-		event.preventDefault();
-		return false;
-	});
-	
-	$(document).on("click","#editor",function() {
-		//Hide the parent window in NotepadA condition
-        window.parent.hideToggleMenu();
-    });
-
-	function Print() {
-		try {
-			var printWindow = window.open("", "", "height=400,width=800");
-			printWindow.document.write("<html><head><title>NotepadA Print Window</title>");
-			printWindow.document.write("</head><xmp>");
-			printWindow.document.write("filename: " + filename + " \nprint-time: " + new Date().toLocaleString() + "\n");
-			printWindow.document.write(editor.getSession().getDocument().getValue());
-			printWindow.document.write("</xmp></html>");
-			printWindow.document.close();
-			printWindow.print();
-		}catch (ex) {
-			console.error("Error: " + ex.message);
-		}
-	}
-	
-	//Absolute path is used for saving. So no need to worry about the relative path over php issues
-	function Save(){
-		code = editor.getValue();
-		$.post("../writeCode.php", { filename: filepath, content: code })
-		  .done(function( data ) {
-			if (data.includes("ERROR") == false){
-				console.log("Saved!");
-				lastSave = code;
-			}else{
-				console.log(data);
-			}
-		  });
-	}
-	
-	function checkIsSaved(){
-		if (lastSave ==  editor.getValue()){
-			return true;
-		}else{
-			return false;
-		}
-	}
-
-var nameOverrides = {
-    ObjectiveC: "Objective-C",
-    CSharp: "C#",
-    golang: "Go",
-    C_Cpp: "C and C++",
-    Csound_Document: "Csound Document",
-    Csound_Orchestra: "Csound",
-    Csound_Score: "Csound Score",
-    coffee: "CoffeeScript",
-    HTML_Ruby: "HTML (Ruby)",
-    HTML_Elixir: "HTML (Elixir)",
-    FTL: "FreeMarker"
-};
-
-
-function getMode(filePath){
-	var ext = filePath.split(".").pop();
-	var supportedModes = {
-		ABAP:        ["abap"],
-		ABC:         ["abc"],
-		ActionScript:["as"],
-		ADA:         ["ada|adb"],
-		Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],
-		AsciiDoc:    ["asciidoc|adoc"],
-		ASL:         ["dsl|asl"],
-		Assembly_x86:["asm|a"],
-		AutoHotKey:  ["ahk"],
-		BatchFile:   ["bat|cmd"],
-		Bro:         ["bro"],
-		C_Cpp:       ["cpp|c|cc|cxx|h|hh|hpp|ino"],
-		C9Search:    ["c9search_results"],
-		Cirru:       ["cirru|cr"],
-		Clojure:     ["clj|cljs"],
-		Cobol:       ["CBL|COB"],
-		coffee:      ["coffee|cf|cson|^Cakefile"],
-		ColdFusion:  ["cfm"],
-		CSharp:      ["cs"],
-		Csound_Document: ["csd"],
-		Csound_Orchestra: ["orc"],
-		Csound_Score: ["sco"],
-		CSS:         ["css"],
-		Curly:       ["curly"],
-		D:           ["d|di"],
-		Dart:        ["dart"],
-		Diff:        ["diff|patch"],
-		Dockerfile:  ["^Dockerfile"],
-		Dot:         ["dot"],
-		Drools:      ["drl"],
-		Edifact:     ["edi"],
-		Eiffel:      ["e|ge"],
-		EJS:         ["ejs"],
-		Elixir:      ["ex|exs"],
-		Elm:         ["elm"],
-		Erlang:      ["erl|hrl"],
-		Forth:       ["frt|fs|ldr|fth|4th"],
-		Fortran:     ["f|f90"],
-		FTL:         ["ftl"],
-		Gcode:       ["gcode"],
-		Gherkin:     ["feature"],
-		Gitignore:   ["^.gitignore"],
-		Glsl:        ["glsl|frag|vert"],
-		Gobstones:   ["gbs"],
-		golang:      ["go"],
-		GraphQLSchema: ["gql"],
-		Groovy:      ["groovy"],
-		HAML:        ["haml"],
-		Handlebars:  ["hbs|handlebars|tpl|mustache"],
-		Haskell:     ["hs"],
-		Haskell_Cabal:     ["cabal"],
-		haXe:        ["hx"],
-		Hjson:       ["hjson"],
-		HTML:        ["html|htm|xhtml|vue|we|wpy"],
-		HTML_Elixir: ["eex|html.eex"],
-		HTML_Ruby:   ["erb|rhtml|html.erb"],
-		INI:         ["ini|conf|cfg|prefs"],
-		Io:          ["io"],
-		Jack:        ["jack"],
-		Jade:        ["jade|pug"],
-		Java:        ["java"],
-		JavaScript:  ["js|jsm|jsx"],
-		JSON:        ["json"],
-		JSONiq:      ["jq"],
-		JSP:         ["jsp"],
-		JSSM:        ["jssm|jssm_state"],
-		JSX:         ["jsx"],
-		Julia:       ["jl"],
-		Kotlin:      ["kt|kts"],
-		LaTeX:       ["tex|latex|ltx|bib"],
-		LESS:        ["less"],
-		Liquid:      ["liquid"],
-		Lisp:        ["lisp"],
-		LiveScript:  ["ls"],
-		LogiQL:      ["logic|lql"],
-		LSL:         ["lsl"],
-		Lua:         ["lua"],
-		LuaPage:     ["lp"],
-		Lucene:      ["lucene"],
-		Makefile:    ["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],
-		Markdown:    ["md|markdown"],
-		Mask:        ["mask"],
-		MATLAB:      ["matlab"],
-		Maze:        ["mz"],
-		MEL:         ["mel"],
-		MIXAL:       ["mixal"],
-		MUSHCode:    ["mc|mush"],
-		MySQL:       ["mysql"],
-		Nix:         ["nix"],
-		NSIS:        ["nsi|nsh"],
-		ObjectiveC:  ["m|mm"],
-		OCaml:       ["ml|mli"],
-		Pascal:      ["pas|p"],
-		Perl:        ["pl|pm"],
-		pgSQL:       ["pgsql"],
-		PHP:         ["php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],
-		Pig:         ["pig"],
-		Powershell:  ["ps1"],
-		Praat:       ["praat|praatscript|psc|proc"],
-		Prolog:      ["plg|prolog"],
-		Properties:  ["properties"],
-		Protobuf:    ["proto"],
-		Python:      ["py"],
-		R:           ["r"],
-		Razor:       ["cshtml|asp"],
-		RDoc:        ["Rd"],
-		Red:         ["red|reds"],
-		RHTML:       ["Rhtml"],
-		RST:         ["rst"],
-		Ruby:        ["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],
-		Rust:        ["rs"],
-		SASS:        ["sass"],
-		SCAD:        ["scad"],
-		Scala:       ["scala"],
-		Scheme:      ["scm|sm|rkt|oak|scheme"],
-		SCSS:        ["scss"],
-		SH:          ["sh|bash|^.bashrc"],
-		SJS:         ["sjs"],
-		Smarty:      ["smarty|tpl"],
-		snippets:    ["snippets"],
-		Soy_Template:["soy"],
-		Space:       ["space"],
-		SQL:         ["sql"],
-		SQLServer:   ["sqlserver"],
-		Stylus:      ["styl|stylus"],
-		SVG:         ["svg"],
-		Swift:       ["swift"],
-		Tcl:         ["tcl"],
-		Tex:         ["tex"],
-		Text:        ["txt"],
-		Textile:     ["textile"],
-		Toml:        ["toml"],
-		TSX:         ["tsx"],
-		Twig:        ["twig|swig"],
-		Typescript:  ["ts|typescript|str"],
-		Vala:        ["vala"],
-		VBScript:    ["vbs|vb"],
-		Velocity:    ["vm"],
-		Verilog:     ["v|vh|sv|svh"],
-		VHDL:        ["vhd|vhdl"],
-		Wollok:      ["wlk|wpgm|wtest"],
-		XML:         ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],
-		XQuery:      ["xq"],
-		YAML:        ["yaml|yml"],
-		Django:      ["html"]
-	};
-	for (var key in supportedModes) {
-		if (supportedModes.hasOwnProperty(key)) {
-			var thisExtension = supportedModes[key][0].split("|");
-			if (thisExtension.length == 1){
-				if (ext == thisExtension[0]){
-					return key;
-				}
-			}else{
-				for(var i =0; i < thisExtension.length;i++){
-					if (ext == thisExtension[i]){
-						return key;
-					}
-				}
-			}
-		}
-	}
-}
-
-</script>
-</body>
-</html>

+ 0 - 49
web/NotepadA/backup/embedded.php

@@ -1,49 +0,0 @@
-<html>
-<head>
-<?php
-include_once '../auth.php';
-?>
-</head>
-<body>
-Initializing Environment...
-<?php
-$filepath = "";
-$filename = "";
-if (isset($_GET['filepath'])){
-	$filepath = str_replace("./","",str_replace("../","",str_replace("\\","/",$_GET['filepath'])));
-}
-if (isset($_GET['filename'])){
-	$filename = $_GET['filename'];
-}
-?>
-<script src="../script/jquery.min.js"></script>
-<script src="../script/ao_module.js"></script>
-<script>
-ao_module_setWindowSize(0,0);
-ao_module_setWindowTitle("NotepadA Initializing...");
-var instances = ao_module_getProcessID("NotepadA");
-var filepath = "<?php echo $filepath;?>";
-var filename = "<?php echo $filename;?>";
-remove(instances,ao_module_windowID);
-if (instances.includes("newWindow")){
-	remove(instances,"newWindow");
-}
-if (instances.length == 0){
-	//Open a new window for the file
-	console.log("[NotepadA] Opening " + filepath + " in a new floatWindow");
-	window.location.href = "index.php?filename=" + filename + "&filepath=" + filepath;
-}else if (instances.length > 0){
-	//Open the new page in the first instances in list
-	var targetWindow = instances[0];
-	console.log("[NotepadA] Opening " + filepath + " in floatWindo " + targetWindow);
-	parent.crossFrameFunctionCall(targetWindow,"newEditor('" + filepath + "');");
-	ao_module_close();
-}
-
-function remove(array, element) {
-    const index = array.indexOf(element);
-    array.splice(index, 1);
-}
-</script>
-</body>
-</html>

+ 0 - 648
web/NotepadA/backup/index.php

@@ -1,648 +0,0 @@
-<?php
-include '../auth.php';
-?>
-<!DOCTYPE html>
-<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-<html lang="en">
-<head>
-  <meta charset="UTF-8">
-<script type='text/javascript' charset='utf-8'>
-    // Hides mobile browser's address bar when page is done loading.
-      window.addEventListener('load', function(e) {
-        setTimeout(function() { window.scrollTo(0, 1); }, 1);
-      }, false);
-</script>
-    <meta charset="UTF-8">
-	<script src="../script/jquery.min.js"></script>
-	<script src="../script/ao_module.js"></script>
-	<title>ArOZ Onlineβ</title>
-	<style>
-	* {
-      font-family: arial;
-    }
-	
-	.topbar{
-		background-color: #d6d6d6;
-		overflow: hidden;
-		position:fixed;
-		top:0;left:0;
-		width:100%;height:25px;
-		padding-left: 5px;
-	}
-	
-	button{
-		padding: 5;
-		border: none;
-		background: none;
-		height:25px;
-	}
-	
-	button:hover {
-		background-color: #edeaea;
-		cursor: pointer;
-	}
-	
-	#codeArea{
-		width:100%;
-		position:fixed;
-		top:50px;
-		left:0px;
-	}
-	
-	#tabs{
-		background-color: #d6d6d6;
-		position:fixed;
-		width:100%;
-		height:25px;
-		top:25px;
-		left:0px;
-	}
-	
-	.fileTab{
-		background-color: #bcbcbc;
-		display:inline;
-		padding-left: 8px;
-		padding-right: 1px;
-		marign-left:1px;
-		height:25px;
-		border-bottom: 3px solid #878787;
-		cursor: pointer;
-	}
-	
-	.fileTab.focused{
-		background-color: #edeaea;
-		display:inline;
-		border-bottom: 3px solid #5b4cff;
-		cursor: pointer;
-	}
-
-	.closeBtn{
-		display:inline;
-	}
-	
-	.contextmenu{
-		position:fixed;
-		top:25px;
-		left:0px;
-		width:auto;
-		height:auto;
-		background-color:#d6d6d6;
-		z-index:100;
-		border-style: solid;
-		border-width: 1px;
-		border-color: #626263;
-		font-size:small;
-		max-height: 100%;
-		overflow-y: auto;
-	}
-	
-	.menuitem{
-		padding-top: 2px;
-		padding-bottom: 3px;
-		padding-left: 25px;
-		padding-right: 10px;
-	}
-	
-	.menuitem:hover{
-		background-color: #edeaea;
-		cursor: pointer;
-	}
-	
-	.middleFloat{
-		position:fixed;
-		top:10%;
-		bottom: 10%;
-		left: 30%;
-		right: 30%;
-		background-color:#efefef;
-		padding:25px;
-		overflow-y:auto;
-	}
-	
-	</style>
-</head>
-<body>
-<div class="topbar">
-	<button onClick="startTooggleMenu(this);">File</button>
-	<button onClick="startTooggleMenu(this);">Edit</button>
-	<button onClick="startTooggleMenu(this);">Search</button>
-	<button onClick="startTooggleMenu(this);">View</button>
-	<button onClick="startTooggleMenu(this);">Theme</button>
-	<button onClick="startTooggleMenu(this);">Font_Size</button>
-	<button onClick="startTooggleMenu(this);">About</button>
-</div>
-<div id="tabs" onClick="hideToggleMenu();">
-
-</div>
-<div id="codeArea">
-
-</div>
-<div id="topbarMenu" class="contextmenu" style="display:none;">
-
-</div>
-<div id="aboutus" class="middleFloat" style="display:none;">
-	<h3>📝 NotepadA ArOZ Online In-System Text Editor</h3>
-	<p>Author: Toby Chui 2017-2018</p>
-	<hr>
-	<p>This web based text editor for ArOZ Online System are made possible by the ace editor, jQuery and ArOZ Project. Part of the system are licensed under BSD License or MIT license. Please refer to the individual license information under the library folder. <br><br>For the rest of the system and interface, all codes are CopyRight Toby Chui feat. IMUS Laboratory and licnesed under IMUS license (which is something similar to MIT license but with some extra licensing information about hardware). Developed under ArOZ Online System for experimental purpose.<br><br>
-Visit <a href="https://github.com/tobychui">https://github.com/tobychui</a> for more information.</p>
-	<hr>
-	<p>MIT License<p>
-	<p style="font-size:70%;">Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.</p>
-	<p>BSD License<p>
-	<p style="font-size:70%;">All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. All advertising materials mentioning features or use of this software
-   must display the following acknowledgement:
-   This product includes software developed by the <organization>.
-4. Neither the name of the <organization> nor the
-   names of its contributors may be used to endorse or promote products
-   derived from this software without specific prior written permission.
-THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
-	<hr>
-	<button style="background-color:white;border: 1px solid #707070;" onClick="$('#aboutus').hide();">Close</button>
-	<br><br><br><br><br>
-</div>
-
-<?php
-	$draginFilePath = "";
-	if (isset($_GET['filepath'])){
-		$rootRealPath = str_replace("\\","/",realpath("../")). "/";
-		if (file_exists($_GET['filepath']) == false){
-			$_GET['filepath'] = "../" . $_GET['filepath'];
-		}
-		$fileRealPath = str_replace("\\","/",realpath($_GET['filepath']));
-		$draginFilePath = str_replace($rootRealPath,"",$fileRealPath);
-		echo $_GET['filepath'];
-	}
-?>
-<script>
-//Global variables
-var dragIn = "<?php echo $draginFilePath;?>";
-var theme = 'github';
-var lastSelectedMenuItem = "";
-var username = loadStorage("ArOZusername");
-var fontsize = 12;
-var VDI = !(!parent.isFunctionBar);
-var openedFilePath = [];
-var previousSavedState = true;
-var functionList = {
-	File: ["New","Open file","Open current directory","Reload","Save","Save As","Close All Files","Print","Exit"],
-	Edit: [],
-	Theme:["ambiance","chaos","chrome","clouds","clouds_midnight","cobalt","crimson_editor","dawn","dracula","dreamweaver","eclipse","github","gob","gruvbox","idle_fingers","iplastic","katzenmilch","kr_theme","kuroir","merbivore","merbivore_soft","mono_industrial","monokai","pastel_on_dark","solarized_dark","solarized_light","sqlserver","terminal","textmate","tomorrow","tomorrow_night","tomorrow_night_blue","tomorrow_night_bright","tomorrow_night_eighties","twilight","vibrant_ink","xcode"],
-	Font_Size:["8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"],
-	About:["About NotepadA"]
-	
-};
-
-//Init functions
-adjustCodeAreaHeight();
-bindListener();
-initTheme();
-initFontSize();
-initNotepadA();
-reloadAllTabs();
-
-//Init notepadA. If there are previos stored page, load them into the environment. Or otherwise, just open a blank page.
-function initNotepadA(){
-	ao_module_setGlassEffectMode()
-	ao_module_setWindowIcon("code");
-	ao_module_setWindowSize(1080,600);
-	if (loadStorage("NotepadA_" + username + "_sessionFiles") != ""){
-		var pages = JSON.parse(loadStorage("NotepadA_" + username + "_sessionFiles"));
-		for (var i =0; i < pages.length;i++){
-			let page = pages[i];
-			newEditor(page);
-		}
-		if (dragIn != ""){
-			//If there is a file dragin, and it hasn't been opened, open it
-			if (pages.indexOf(dragIn) == -1){
-				newEditor(dragIn);
-			}else{
-				focusTab($($(".fileTab")[pages.indexOf(dragIn)]).attr("tabid"));
-			}
-			//alert(dragIn);
-		}
-	}else{
-		if (dragIn != ""){
-			//If there is a file dragin, open it as well.
-			newEditor(dragIn);
-		}else{
-			newTab();
-		}
-	}
-	setTimeout(function(){
-		setInterval(function(){
-			var tabid = getFocusedTab();
-			if (tabid.length == 0){
-				return;
-			}
-			var tab = findTabWithAttr("framematch",tabid[0]);
-			var saved = checkTabSaved(tabid[0]);
-			if (saved != previousSavedState){
-				previousSavedState = saved;
-				if (saved){
-					ao_module_setWindowTitle("NotepadA &#8195; 	 📝 " + tab.attr("filename").replace("../../","/aor/"));
-				}else{
-					ao_module_setWindowTitle("NotepadA &#8195; 	 *💾 📝 " + tab.attr("filename").replace("../../","/aor/"));
-				}
-			}
-			
-			
-		},1000);
-	},500);
-}
-
-//Add a new editor window to the editor (?) -->ALL FILE PATH PASSED IN MUST BE FROM AOR OR /media/storage*
-function newEditor(filepath){
-	let tabid = Math.round((new Date()).getTime());
-	var tab = '<div class="fileTab" tabid="'+tabid+'" framematch="ca'+tabid+'" filename="../../' + filepath +'">\
-					loading... <div class="closeBtn">⨯</div>\
-					</div>';
-	var frame = '<iframe id="ca'+tabid+'" class="editor" src="ace/editor.php?theme='+theme+'&filename=../../'+filepath+'&fontsize=' + fontsize + '" width="100%" frameBorder="0"></iframe>';
-	$("#tabs").append(tab);
-	$("#codeArea").append(frame);
-	updateFrameAttr('ca' + tabid);
-	focusTab(tabid + "");
-	if (openedFilePath.indexOf(filepath) == -1){
-		openedFilePath.push(filepath);
-	}
-	setStorage("NotepadA_" + username + "_sessionFiles",JSON.stringify(openedFilePath));
-}
-
-function newTab(){
-	let tabid = Math.round((new Date()).getTime());
-	let filepath = 'NotepadA/tmp/newfile_' + tabid;
-	var tab = '<div class="fileTab" tabid="'+tabid+'" framematch="ca'+tabid+'" filename="../../'+filepath+'">\
-					loading... <div class="closeBtn">⨯</div>\
-					</div>';
-	var frame = '<iframe id="ca'+tabid+'" class="editor" src="ace/editor.php?theme='+theme+'&filename=../../'+filepath+'&fontsize=' + fontsize + '" width="100%" frameBorder="0"></iframe>';
-	$("#tabs").append(tab);
-	$("#codeArea").append(frame);
-	updateFrameAttr('ca' + tabid);
-	setTimeout(function(){focusTab(tabid + "");},100);
-	if (openedFilePath.indexOf(filepath) == -1){
-		openedFilePath.push(filepath);
-	}
-	setStorage("NotepadA_" + username + "_sessionFiles",JSON.stringify(openedFilePath));
-}
-
-function adjustCodeAreaHeight(){
-	if (VDI){
-	var h = window.innerHeight;
-		$("#codeArea").css("height",h - 50);
-		$(".editor").each(function(i) {
-			$(this).attr("height",h-50);
-		});
-	}else{
-		$(".editor").each(function(i) {
-			$(this).css("height",$(document).height());
-		});
-	}
-}
-
-function checkTabSaved(framematch){
-	var result = $("#" + framematch)[0].contentWindow.checkIsSaved();
-	return result;
-}
-
-$( window ).resize(function() {
-	adjustCodeAreaHeight();
-});
-
-function bindListener(){
-	$(document).on('click', '.closeBtn', function () {
-		removeTab($(this).parent().attr('tabid'));
-	});
-
-	$(document).on('click','.fileTab',function(){
-		if ($(this).hasClass("closeBtn") == false){
-			focusTab($(this).attr('tabid'));
-		}
-	});
-
-	$(document).on('click','#codeArea',function(){
-		$("#topbarMenu").hide();
-	});
-	
-	$(document).on('click','.menuitem',function(){
-		if (lastSelectedMenuItem == "Theme"){
-			setTheme($(this).text());
-			$("#topbarMenu").hide();
-		}else if (lastSelectedMenuItem == "Font_Size"){
-			setFontSize($(this).text());
-			$("#topbarMenu").hide();
-		}else if (lastSelectedMenuItem == "File"){
-			handleFileMenu($(this).text());
-			$("#topbarMenu").hide();
-		}else if (lastSelectedMenuItem == "About"){
-			handleAboutMenu($(this).text());
-			$("#topbarMenu").hide();
-		}else{
-			alert(lastSelectedMenuItem);
-		}
-		
-	});
-	
-}
-
-function updateFrameAttr(framematch){
-	//This function will update the tab title, iframe attr at the same time. 
-	var frame = $("#" + framematch);
-	var tab = findTabWithAttr("framematch",framematch);
-	var filepath = tab.attr("filename");
-	var filedata = getFilenameAndBasedir(filepath);
-	var basedir = filedata[0];
-	var filename = filedata[1];
-	
-	//Update the tag text to the filename
-	$(tab).html(filename + ' <div class="closeBtn">⨯</div>');
-	//Update the iframe attr
-	$(frame).attr("basedir",basedir);
-	$(frame).attr("filename",filename);
-	//
-	adjustCodeAreaHeight();
-}
-
-function getFilenameAndBasedir(filepath){
-	var f = filepath.split("/").pop();
-	var b = filepath.replace(f,"");
-	return [b,f];
-}
-
-function reloadAllTabs(){
-	$(".fileTab").each(function(){
-		var tid = $(this).attr("tabid");
-		reloadTab(tid + "");
-		updateFrameAttr($(this).attr("framematch"));
-	});
-}
-
-function reloadTab(tabID){
-	var object = findTabWithAttr("tabid",tabID);
-	var filename = $(object).attr("filename");
-	var codeAreaID = $(object).attr("framematch");
-	$("#" + codeAreaID).attr("src","ace/editor.php?theme=" + theme + "&fontsize="+fontsize+"&filename=" + filename);
-}
-
-function handleFileMenu(itemText){
-	var indexvalue = functionList.File.indexOf(itemText);
-	switch (indexvalue){
-		case 0:
-			//nothing
-			break;
-			
-		case 2:
-			//Open the current folder in explorer
-			var base = getFocusedTab()[1];
-			if (base == undefined){
-				break;
-			}
-			var uid = Math.round((new Date()).getTime() / 1000);
-			var url = "SystemAOB/functions/file_system/index.php?controlLv=2&finishing=embedded&subdir=" + base;
-			var title = "NotepadA" + " - Folder View";
-			var icon = "folder open";
-			newfw(url,title,icon,uid,1080,580);
-			break;
-		case 3:
-			//Reload is pressed
-			var currentFocusedtid = getFocusedTab()[0];
-			if (currentFocusedtid == undefined){
-				break;
-			}
-			var tabobject = findTabWithAttr("framematch",currentFocusedtid);
-			reloadTab(tabobject.attr("tabid") + "");
-			break;
-		case 4:
-			//Save is pressed
-			var currentFocusedtid = getFocusedTab()[0];
-			if (currentFocusedtid == undefined){
-				break;
-			}
-			$("#" + currentFocusedtid)[0].contentWindow.Save();
-			break;
-		case 7:
-			var id = getFocusedTab()[0];
-			$("#" + id)[0].contentWindow.Print();
-			break;
-		case 8:
-			if (VDI){
-				window.location.href = "../SystemAOB/functions/killProcess.php"
-			}else{
-				window.location.href = "../index.php"
-			}
-			break;
-	}
-}
-
-function handleAboutMenu(itemText){
-	var indexvalue = functionList.About.indexOf(itemText);
-	if (indexvalue == 0){
-		$("#aboutus").show();
-	}
-}
-
-function newfw(src,windowname,icon,uid,sizex,sizey,posx = undefined,posy = undefined,fixsize = undefined,tran = undefined){
-	//Example
-	//newEmbededWindow('Memo/index.php','Memo','sticky note outline','memoEmbedded',475,700);
-	if (!VDI){
-		return;
-	}
-	parent.newEmbededWindow(src,windowname,icon,uid,sizex,sizey,posx,posy,fixsize,tran);
-}
-
-function getFocusedTab(){
-	result = [];
-	$(".fileTab").each(function(){
-		if ($(this).hasClass("focused")){
-			//This tab is focused. Check its filename and pathinfo
-			var id = $(this).attr("framematch");
-			var filename = $("#" + id).attr("filename");
-			var basedir = $("#" + id).attr("basedir");
-			result = [id,basedir,filename];
-		}
-	});
-	return result;
-}
-
-function setTheme(themeName){
-	setStorage("NotepadA_theme",themeName);
-	theme = themeName;
-	console.log("Updating theme to: " + themeName);
-	//Reload all tabs with the corrispoding themes after changing theme settings
-	reloadAllTabs();
-}
-
-function setFontSize(newsize){
-	setStorage("NotepadA_fontsize",newsize);
-	fontsize = newsize;
-	reloadAllTabs();
-}
-
-function initTheme(){
-	if (loadStorage("NotepadA_theme") != ""){
-		theme = loadStorage("NotepadA_theme");
-	}
-}
-
-function initFontSize(){
-	if (loadStorage("NotepadA_fontsize") != ""){
-		fontsize = loadStorage("NotepadA_fontsize");
-	}
-}
-
-function setStorage(name,value){
-	localStorage.setItem(name, value);
-	return true;
-}
-
-function loadStorage(name){
-	if (localStorage.getItem(name) == null){
-		return "";
-	}else{
-		return localStorage.getItem(name);
-	}
-	
-}
-
-function removeTab(tabid){
-	var focusingTabFramematchBeforeRemove = getFocusedTab()[0];
-	let origianlTabID = findTabWithAttr("framematch",focusingTabFramematchBeforeRemove).attr("tabid");
-	var targetTab = findTabWithAttr("tabid",tabid);
-	var filepath = targetTab.attr("filename").replace("../../","");
-	var codeAreaTag = $(targetTab).attr("framematch");
-	//Check if the tab is saved
-	var saved = checkTabSaved(targetTab.attr("framematch"));
-	if (saved == false){
-		//Ask the user if confirm close
-		var confirmClose = confirm("This file is not saved. Confirm closing?");
-		if (confirmClose == false){
-			return false;
-		}
-	}
-	//Remove this record from the filepath so we will not open this again by the enxt time we startup NotepadA
-	openedFilePath.remove(filepath);
-	if ($(targetTab).hasClass("focused")){
-		//This tab is currently focused, move focus to another tab after closing
-		$(targetTab).remove();
-		//I have no idea why this only works with a delay... but just don't change this.
-		setTimeout(function(){
-			var focusTarget = $(".fileTab").first().attr("tabid");
-			focusTab(focusTarget); }, 100);
-	}else{
-		$(targetTab).remove();
-		setTimeout(function(){ focusTab(origianlTabID);}, 100);
-	}
-	$("#" + codeAreaTag).remove();
-	if ($(".fileTab").length == 0){
-		//There is no more tab left, create a new tab instead
-		setTimeout(function(){ newTab("untitled"); }, 100);
-	}
-	setStorage("NotepadA_" + username + "_sessionFiles",JSON.stringify(openedFilePath));
-}
-
-function hideToggleMenu(){
-	$("#topbarMenu").hide();
-}
-
-function startTooggleMenu(object){
-	var menu = $(object).text();
-	var pos = $(object).offset().left - 5;
-	toogleMenu(pos,menu);
-}
-
-function toogleMenu(left,contentID){
-	$("#topbarMenu").css("left",left + "px");
-	if (contentID != lastSelectedMenuItem && $("#topbarMenu").is(":visible")){
-		$("#topbarMenu").hide();
-	}
-	loadOptionToMenu(contentID);
-	$("#topbarMenu").toggle();
-	lastSelectedMenuItem = contentID;
-}
-
-function loadOptionToMenu(menuItem){
-	var items = functionList[menuItem];
-	$("#topbarMenu").html("");
-	for (var i=0; i < items.length;i++){
-		$("#topbarMenu").append("<div class='menuitem'>" + items[i] + "</div>");
-	}
-}
-
-function focusTab(tabid){
-	//Defocus every tabs and hide all coding windows
-	$(".fileTab").each(function(i) {
-		$(this).removeClass("focused");
-	});
-	$(".editor").each(function(i) {
-		$(this).hide();
-	});
-	//Only show the tab and code window selected
-	var selectedTab = findTabWithAttr("tabid",tabid);
-	$(selectedTab).addClass("focused");
-	var corrispondingCodingTab = $(selectedTab).attr("framematch");
-	$("#" + corrispondingCodingTab).show();
-	if (selectedTab.attr("filename") != undefined){
-		ao_module_setWindowTitle("NotepadA &#8195; 	 📝 " + selectedTab.attr("filename").replace("../../","/aor/"));
-	}else{
-		ao_module_setWindowTitle("NotepadA &#8195; 	 📝 newfile");
-	}
-	
-}
-
-function findTabWithAttr(attr,value){
-	return $('div['+attr+'="'+value+'"]').each(function() {
-		return this;
-	});
-}
-
-Array.prototype.remove = function() {
-    var what, a = arguments, L = a.length, ax;
-    while (L && this.length) {
-        what = a[--L];
-        while ((ax = this.indexOf(what)) !== -1) {
-            this.splice(ax, 1);
-        }
-    }
-    return this;
-};
-
-</script>
-</body>
-</html>
-
-
-
-    
-

+ 0 - 20
web/NotepadA/backup/writeCode.php

@@ -1,20 +0,0 @@
-<?php
-include_once '../auth.php';
-include_once 'checkCodePathValid.php';
-if (isset($_POST['filename']) && isset($_POST['content'])){
-	$filename = $_POST['filename'];
-	$content = $_POST['content'];
-	if (checkIfFilepathAllowed($filename)){
-		file_put_contents($filename,$content);
-	}else{
-		die("ERROR. No permission to write to this file.");
-	}
-	echo "DONE";
-	exit(0);
-}else{
-	die("ERROR. filepath or content undefined.");
-	
-}
-
-
-?>

+ 0 - 161
web/NotepadA/utils/colorpicker/css/colorpicker.css

@@ -1,161 +0,0 @@
-.colorpicker {
-	width: 356px;
-	height: 176px;
-	overflow: hidden;
-	position: absolute;
-	background: url(../images/colorpicker_background.png);
-	font-family: Arial, Helvetica, sans-serif;
-	display: none;
-}
-.colorpicker_color {
-	width: 150px;
-	height: 150px;
-	left: 14px;
-	top: 13px;
-	position: absolute;
-	background: #f00;
-	overflow: hidden;
-	cursor: crosshair;
-}
-.colorpicker_color div {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 150px;
-	height: 150px;
-	background: url(../images/colorpicker_overlay.png);
-}
-.colorpicker_color div div {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 11px;
-	height: 11px;
-	overflow: hidden;
-	background: url(../images/colorpicker_select.gif);
-	margin: -5px 0 0 -5px;
-}
-.colorpicker_hue {
-	position: absolute;
-	top: 13px;
-	left: 171px;
-	width: 35px;
-	height: 150px;
-	cursor: n-resize;
-}
-.colorpicker_hue div {
-	position: absolute;
-	width: 35px;
-	height: 9px;
-	overflow: hidden;
-	background: url(../images/colorpicker_indic.gif) left top;
-	margin: -4px 0 0 0;
-	left: 0px;
-}
-.colorpicker_new_color {
-	position: absolute;
-	width: 60px;
-	height: 30px;
-	left: 213px;
-	top: 13px;
-	background: #f00;
-}
-.colorpicker_current_color {
-	position: absolute;
-	width: 60px;
-	height: 30px;
-	left: 283px;
-	top: 13px;
-	background: #f00;
-}
-.colorpicker input {
-	background-color: transparent;
-	border: 1px solid transparent;
-	position: absolute;
-	font-size: 10px;
-	font-family: Arial, Helvetica, sans-serif;
-	color: #898989;
-	top: 4px;
-	right: 11px;
-	text-align: right;
-	margin: 0;
-	padding: 0;
-	height: 11px;
-}
-.colorpicker_hex {
-	position: absolute;
-	width: 72px;
-	height: 22px;
-	background: url(../images/colorpicker_hex.png) top;
-	left: 212px;
-	top: 142px;
-}
-.colorpicker_hex input {
-	right: 6px;
-}
-.colorpicker_field {
-	height: 22px;
-	width: 62px;
-	background-position: top;
-	position: absolute;
-}
-.colorpicker_field span {
-	position: absolute;
-	width: 12px;
-	height: 22px;
-	overflow: hidden;
-	top: 0;
-	right: 0;
-	cursor: n-resize;
-}
-.colorpicker_rgb_r {
-	background-image: url(../images/colorpicker_rgb_r.png);
-	top: 52px;
-	left: 212px;
-}
-.colorpicker_rgb_g {
-	background-image: url(../images/colorpicker_rgb_g.png);
-	top: 82px;
-	left: 212px;
-}
-.colorpicker_rgb_b {
-	background-image: url(../images/colorpicker_rgb_b.png);
-	top: 112px;
-	left: 212px;
-}
-.colorpicker_hsb_h {
-	background-image: url(../images/colorpicker_hsb_h.png);
-	top: 52px;
-	left: 282px;
-}
-.colorpicker_hsb_s {
-	background-image: url(../images/colorpicker_hsb_s.png);
-	top: 82px;
-	left: 282px;
-}
-.colorpicker_hsb_b {
-	background-image: url(../images/colorpicker_hsb_b.png);
-	top: 112px;
-	left: 282px;
-}
-.colorpicker_submit {
-	position: absolute;
-	width: 22px;
-	height: 22px;
-	background: url(../images/colorpicker_submit.png) top;
-	left: 322px;
-	top: 142px;
-	overflow: hidden;
-}
-.colorpicker_focus {
-	background-position: center;
-}
-.colorpicker_hex.colorpicker_focus {
-	background-position: bottom;
-}
-.colorpicker_submit.colorpicker_focus {
-	background-position: bottom;
-}
-.colorpicker_slider {
-	background-position: bottom;
-}

+ 0 - 218
web/NotepadA/utils/colorpicker/css/layout.css

@@ -1,218 +0,0 @@
-body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { 
-	margin:0;
-	padding:0;
-}
-table {
-	border-collapse:collapse;
-	border-spacing:0;
-}
-fieldset,img { 
-	border:0;
-}
-address,caption,cite,code,dfn,em,strong,th,var {
-	font-style:normal;
-	font-weight:normal;
-}
-ol,ul {
-	list-style:none;
-}
-caption,th {
-	text-align:left;
-}
-h1,h2,h3,h4,h5,h6 {
-	font-size:100%;
-	font-weight:normal;
-}
-q:before,q:after {
-	content:'';
-}
-abbr,acronym { border:0;
-}
-html, body {
-	background-color: #fff;
-	font-family: Arial, Helvetica, sans-serif;
-	font-size: 12px;
-	line-height: 18px;
-	color: #52697E;
-}
-body {
-	text-align: center;
-	overflow: auto;
-}
-.wrapper {
-	width: 700px;
-	margin: 0 auto;
-	text-align: left;
-}
-h1 {
-	font-size: 21px;
-	height: 47px;
-	line-height: 47px;
-	text-transform: uppercase;
-}
-.navigationTabs {
-	height: 23px;
-	line-height: 23px;
-	border-bottom: 1px solid #ccc;
-}
-.navigationTabs li {
-	float: left;
-	height: 23px;
-	line-height: 23px;
-	padding-right: 3px;
-}
-.navigationTabs li a{
-	float: left;
-	dispaly: block;
-	height: 23px;
-	line-height: 23px;
-	padding: 0 10px;
-	overflow: hidden;
-	color: #52697E;
-	background-color: #eee;
-	position: relative;
-	text-decoration: none;
-}
-.navigationTabs li a:hover {
-	background-color: #f0f0f0;
-}
-.navigationTabs li a.active {
-	background-color: #fff;
-	border: 1px solid #ccc;
-	border-bottom: 0px solid;
-}
-.tabsContent {
-	border: 1px solid #ccc;
-	border-top: 0px solid;
-	width: 698px;
-	overflow: hidden;
-}
-.tab {
-	padding: 16px;
-	display: none;
-}
-.tab h2 {
-	font-weight: bold;
-	font-size: 16px;
-}
-.tab h3 {
-	font-weight: bold;
-	font-size: 14px;
-	margin-top: 20px;
-}
-.tab p {
-	margin-top: 16px;
-	clear: both;
-}
-.tab ul {
-	margin-top: 16px;
-	list-style: disc;
-}
-.tab li {
-	margin: 10px 0 0 35px;
-}
-.tab a {
-	color: #8FB0CF;
-}
-.tab strong {
-	font-weight: bold;
-}
-.tab pre {
-	font-size: 11px;
-	margin-top: 20px;
-	width: 668px;
-	overflow: auto;
-	clear: both;
-}
-.tab table {
-	width: 100%;
-}
-.tab table td {
-	padding: 6px 10px 6px 0;
-	vertical-align: top;
-}
-.tab dt {
-	margin-top: 16px;
-}
-
-#colorSelector {
-	position: relative;
-	width: 36px;
-	height: 36px;
-	background: url(../images/select.png);
-}
-#colorSelector div {
-	position: absolute;
-	top: 3px;
-	left: 3px;
-	width: 30px;
-	height: 30px;
-	background: url(../images/select.png) center;
-}
-#colorSelector2 {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 36px;
-	height: 36px;
-	background: url(../images/select2.png);
-}
-#colorSelector2 div {
-	position: absolute;
-	top: 4px;
-	left: 4px;
-	width: 28px;
-	height: 28px;
-	background: url(../images/select2.png) center;
-}
-#colorpickerHolder2 {
-	top: 32px;
-	left: 0;
-	width: 356px;
-	height: 0;
-	overflow: hidden;
-	position: absolute;
-}
-#colorpickerHolder2 .colorpicker {
-	background-image: url(../images/custom_background.png);
-	position: absolute;
-	bottom: 0;
-	left: 0;
-}
-#colorpickerHolder2 .colorpicker_hue div {
-	background-image: url(../images/custom_indic.gif);
-}
-#colorpickerHolder2 .colorpicker_hex {
-	background-image: url(../images/custom_hex.png);
-}
-#colorpickerHolder2 .colorpicker_rgb_r {
-	background-image: url(../images/custom_rgb_r.png);
-}
-#colorpickerHolder2 .colorpicker_rgb_g {
-	background-image: url(../images/custom_rgb_g.png);
-}
-#colorpickerHolder2 .colorpicker_rgb_b {
-	background-image: url(../images/custom_rgb_b.png);
-}
-#colorpickerHolder2 .colorpicker_hsb_s {
-	background-image: url(../images/custom_hsb_s.png);
-	display: none;
-}
-#colorpickerHolder2 .colorpicker_hsb_h {
-	background-image: url(../images/custom_hsb_h.png);
-	display: none;
-}
-#colorpickerHolder2 .colorpicker_hsb_b {
-	background-image: url(../images/custom_hsb_b.png);
-	display: none;
-}
-#colorpickerHolder2 .colorpicker_submit {
-	background-image: url(../images/custom_submit.png);
-}
-#colorpickerHolder2 .colorpicker input {
-	color: #778398;
-}
-#customWidget {
-	position: relative;
-	height: 36px;
-}

BIN
web/NotepadA/utils/colorpicker/images/blank.gif


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_background.png


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_hex.png


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_hsb_b.png


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_hsb_h.png


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_hsb_s.png


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_indic.gif


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_overlay.png


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_rgb_b.png


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_rgb_g.png


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_rgb_r.png


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_select.gif


BIN
web/NotepadA/utils/colorpicker/images/colorpicker_submit.png


BIN
web/NotepadA/utils/colorpicker/images/custom_background.png


BIN
web/NotepadA/utils/colorpicker/images/custom_hex.png


BIN
web/NotepadA/utils/colorpicker/images/custom_hsb_b.png


BIN
web/NotepadA/utils/colorpicker/images/custom_hsb_h.png


BIN
web/NotepadA/utils/colorpicker/images/custom_hsb_s.png


BIN
web/NotepadA/utils/colorpicker/images/custom_indic.gif


BIN
web/NotepadA/utils/colorpicker/images/custom_rgb_b.png


BIN
web/NotepadA/utils/colorpicker/images/custom_rgb_g.png


BIN
web/NotepadA/utils/colorpicker/images/custom_rgb_r.png


BIN
web/NotepadA/utils/colorpicker/images/custom_submit.png


BIN
web/NotepadA/utils/colorpicker/images/select.png


BIN
web/NotepadA/utils/colorpicker/images/select2.png


BIN
web/NotepadA/utils/colorpicker/images/slider.png


+ 0 - 16
web/NotepadA/utils/colorpicker/index.html

@@ -1,16 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-	<link rel="stylesheet" href="css/colorpicker.css" type="text/css" />
-    <link rel="stylesheet" media="screen" type="text/css" href="css/layout.css" />
-    <title>ColorPicker</title>
-	<script type="text/javascript" src="js/jquery.js"></script>
-	<script type="text/javascript" src="js/colorpicker.js"></script>
-    <script type="text/javascript" src="js/eye.js"></script>
-    <script type="text/javascript" src="js/utils.js"></script>
-    <script type="text/javascript" src="js/layout.js?ver=1.0.2"></script>
-</head>
-<body style="background-color:black;">
-    <p id="colorpickerHolder"></p>
-</body>
-</html>

+ 0 - 484
web/NotepadA/utils/colorpicker/js/colorpicker.js

@@ -1,484 +0,0 @@
-/**
- *
- * Color picker
- * Author: Stefan Petre www.eyecon.ro
- * 
- * Dual licensed under the MIT and GPL licenses
- * 
- */
-(function ($) {
-	var ColorPicker = function () {
-		var
-			ids = {},
-			inAction,
-			charMin = 65,
-			visible,
-			tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
-			defaults = {
-				eventName: 'click',
-				onShow: function () {},
-				onBeforeShow: function(){},
-				onHide: function () {},
-				onChange: function () {},
-				onSubmit: function () {},
-				color: 'ff0000',
-				livePreview: true,
-				flat: false
-			},
-			fillRGBFields = function  (hsb, cal) {
-				var rgb = HSBToRGB(hsb);
-				$(cal).data('colorpicker').fields
-					.eq(1).val(rgb.r).end()
-					.eq(2).val(rgb.g).end()
-					.eq(3).val(rgb.b).end();
-			},
-			fillHSBFields = function  (hsb, cal) {
-				$(cal).data('colorpicker').fields
-					.eq(4).val(hsb.h).end()
-					.eq(5).val(hsb.s).end()
-					.eq(6).val(hsb.b).end();
-			},
-			fillHexFields = function (hsb, cal) {
-				$(cal).data('colorpicker').fields
-					.eq(0).val(HSBToHex(hsb)).end();
-			},
-			setSelector = function (hsb, cal) {
-				$(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
-				$(cal).data('colorpicker').selectorIndic.css({
-					left: parseInt(150 * hsb.s/100, 10),
-					top: parseInt(150 * (100-hsb.b)/100, 10)
-				});
-			},
-			setHue = function (hsb, cal) {
-				$(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
-			},
-			setCurrentColor = function (hsb, cal) {
-				$(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
-			},
-			setNewColor = function (hsb, cal) {
-				$(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
-			},
-			keyDown = function (ev) {
-				var pressedKey = ev.charCode || ev.keyCode || -1;
-				if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
-					return false;
-				}
-				var cal = $(this).parent().parent();
-				if (cal.data('colorpicker').livePreview === true) {
-					change.apply(this);
-				}
-			},
-			change = function (ev) {
-				var cal = $(this).parent().parent(), col;
-				if (this.parentNode.className.indexOf('_hex') > 0) {
-					cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
-				} else if (this.parentNode.className.indexOf('_hsb') > 0) {
-					cal.data('colorpicker').color = col = fixHSB({
-						h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
-						s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
-						b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
-					});
-				} else {
-					cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
-						r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
-						g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
-						b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
-					}));
-				}
-				if (ev) {
-					fillRGBFields(col, cal.get(0));
-					fillHexFields(col, cal.get(0));
-					fillHSBFields(col, cal.get(0));
-				}
-				setSelector(col, cal.get(0));
-				setHue(col, cal.get(0));
-				setNewColor(col, cal.get(0));
-				cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
-			},
-			blur = function (ev) {
-				var cal = $(this).parent().parent();
-				cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus');
-			},
-			focus = function () {
-				charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
-				$(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
-				$(this).parent().addClass('colorpicker_focus');
-			},
-			downIncrement = function (ev) {
-				var field = $(this).parent().find('input').focus();
-				var current = {
-					el: $(this).parent().addClass('colorpicker_slider'),
-					max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
-					y: ev.pageY,
-					field: field,
-					val: parseInt(field.val(), 10),
-					preview: $(this).parent().parent().data('colorpicker').livePreview					
-				};
-				$(document).bind('mouseup', current, upIncrement);
-				$(document).bind('mousemove', current, moveIncrement);
-			},
-			moveIncrement = function (ev) {
-				ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
-				if (ev.data.preview) {
-					change.apply(ev.data.field.get(0), [true]);
-				}
-				return false;
-			},
-			upIncrement = function (ev) {
-				change.apply(ev.data.field.get(0), [true]);
-				ev.data.el.removeClass('colorpicker_slider').find('input').focus();
-				$(document).unbind('mouseup', upIncrement);
-				$(document).unbind('mousemove', moveIncrement);
-				return false;
-			},
-			downHue = function (ev) {
-				var current = {
-					cal: $(this).parent(),
-					y: $(this).offset().top
-				};
-				current.preview = current.cal.data('colorpicker').livePreview;
-				$(document).bind('mouseup', current, upHue);
-				$(document).bind('mousemove', current, moveHue);
-			},
-			moveHue = function (ev) {
-				change.apply(
-					ev.data.cal.data('colorpicker')
-						.fields
-						.eq(4)
-						.val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
-						.get(0),
-					[ev.data.preview]
-				);
-				return false;
-			},
-			upHue = function (ev) {
-				fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
-				fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
-				$(document).unbind('mouseup', upHue);
-				$(document).unbind('mousemove', moveHue);
-				return false;
-			},
-			downSelector = function (ev) {
-				var current = {
-					cal: $(this).parent(),
-					pos: $(this).offset()
-				};
-				current.preview = current.cal.data('colorpicker').livePreview;
-				$(document).bind('mouseup', current, upSelector);
-				$(document).bind('mousemove', current, moveSelector);
-			},
-			moveSelector = function (ev) {
-				change.apply(
-					ev.data.cal.data('colorpicker')
-						.fields
-						.eq(6)
-						.val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
-						.end()
-						.eq(5)
-						.val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
-						.get(0),
-					[ev.data.preview]
-				);
-				return false;
-			},
-			upSelector = function (ev) {
-				fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
-				fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
-				$(document).unbind('mouseup', upSelector);
-				$(document).unbind('mousemove', moveSelector);
-				return false;
-			},
-			enterSubmit = function (ev) {
-				$(this).addClass('colorpicker_focus');
-			},
-			leaveSubmit = function (ev) {
-				$(this).removeClass('colorpicker_focus');
-			},
-			clickSubmit = function (ev) {
-				var cal = $(this).parent();
-				var col = cal.data('colorpicker').color;
-				cal.data('colorpicker').origColor = col;
-				setCurrentColor(col, cal.get(0));
-				cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el);
-			},
-			show = function (ev) {
-				var cal = $('#' + $(this).data('colorpickerId'));
-				cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
-				var pos = $(this).offset();
-				var viewPort = getViewport();
-				var top = pos.top + this.offsetHeight;
-				var left = pos.left;
-				if (top + 176 > viewPort.t + viewPort.h) {
-					top -= this.offsetHeight + 176;
-				}
-				if (left + 356 > viewPort.l + viewPort.w) {
-					left -= 356;
-				}
-				cal.css({left: left + 'px', top: top + 'px'});
-				if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
-					cal.show();
-				}
-				$(document).bind('mousedown', {cal: cal}, hide);
-				return false;
-			},
-			hide = function (ev) {
-				if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
-					if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
-						ev.data.cal.hide();
-					}
-					$(document).unbind('mousedown', hide);
-				}
-			},
-			isChildOf = function(parentEl, el, container) {
-				if (parentEl == el) {
-					return true;
-				}
-				if (parentEl.contains) {
-					return parentEl.contains(el);
-				}
-				if ( parentEl.compareDocumentPosition ) {
-					return !!(parentEl.compareDocumentPosition(el) & 16);
-				}
-				var prEl = el.parentNode;
-				while(prEl && prEl != container) {
-					if (prEl == parentEl)
-						return true;
-					prEl = prEl.parentNode;
-				}
-				return false;
-			},
-			getViewport = function () {
-				var m = document.compatMode == 'CSS1Compat';
-				return {
-					l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
-					t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
-					w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
-					h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
-				};
-			},
-			fixHSB = function (hsb) {
-				return {
-					h: Math.min(360, Math.max(0, hsb.h)),
-					s: Math.min(100, Math.max(0, hsb.s)),
-					b: Math.min(100, Math.max(0, hsb.b))
-				};
-			}, 
-			fixRGB = function (rgb) {
-				return {
-					r: Math.min(255, Math.max(0, rgb.r)),
-					g: Math.min(255, Math.max(0, rgb.g)),
-					b: Math.min(255, Math.max(0, rgb.b))
-				};
-			},
-			fixHex = function (hex) {
-				var len = 6 - hex.length;
-				if (len > 0) {
-					var o = [];
-					for (var i=0; i<len; i++) {
-						o.push('0');
-					}
-					o.push(hex);
-					hex = o.join('');
-				}
-				return hex;
-			}, 
-			HexToRGB = function (hex) {
-				var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
-				return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
-			},
-			HexToHSB = function (hex) {
-				return RGBToHSB(HexToRGB(hex));
-			},
-			RGBToHSB = function (rgb) {
-				var hsb = {
-					h: 0,
-					s: 0,
-					b: 0
-				};
-				var min = Math.min(rgb.r, rgb.g, rgb.b);
-				var max = Math.max(rgb.r, rgb.g, rgb.b);
-				var delta = max - min;
-				hsb.b = max;
-				if (max != 0) {
-					
-				}
-				hsb.s = max != 0 ? 255 * delta / max : 0;
-				if (hsb.s != 0) {
-					if (rgb.r == max) {
-						hsb.h = (rgb.g - rgb.b) / delta;
-					} else if (rgb.g == max) {
-						hsb.h = 2 + (rgb.b - rgb.r) / delta;
-					} else {
-						hsb.h = 4 + (rgb.r - rgb.g) / delta;
-					}
-				} else {
-					hsb.h = -1;
-				}
-				hsb.h *= 60;
-				if (hsb.h < 0) {
-					hsb.h += 360;
-				}
-				hsb.s *= 100/255;
-				hsb.b *= 100/255;
-				return hsb;
-			},
-			HSBToRGB = function (hsb) {
-				var rgb = {};
-				var h = Math.round(hsb.h);
-				var s = Math.round(hsb.s*255/100);
-				var v = Math.round(hsb.b*255/100);
-				if(s == 0) {
-					rgb.r = rgb.g = rgb.b = v;
-				} else {
-					var t1 = v;
-					var t2 = (255-s)*v/255;
-					var t3 = (t1-t2)*(h%60)/60;
-					if(h==360) h = 0;
-					if(h<60) {rgb.r=t1;	rgb.b=t2; rgb.g=t2+t3}
-					else if(h<120) {rgb.g=t1; rgb.b=t2;	rgb.r=t1-t3}
-					else if(h<180) {rgb.g=t1; rgb.r=t2;	rgb.b=t2+t3}
-					else if(h<240) {rgb.b=t1; rgb.r=t2;	rgb.g=t1-t3}
-					else if(h<300) {rgb.b=t1; rgb.g=t2;	rgb.r=t2+t3}
-					else if(h<360) {rgb.r=t1; rgb.g=t2;	rgb.b=t1-t3}
-					else {rgb.r=0; rgb.g=0;	rgb.b=0}
-				}
-				return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
-			},
-			RGBToHex = function (rgb) {
-				var hex = [
-					rgb.r.toString(16),
-					rgb.g.toString(16),
-					rgb.b.toString(16)
-				];
-				$.each(hex, function (nr, val) {
-					if (val.length == 1) {
-						hex[nr] = '0' + val;
-					}
-				});
-				return hex.join('');
-			},
-			HSBToHex = function (hsb) {
-				return RGBToHex(HSBToRGB(hsb));
-			},
-			restoreOriginal = function () {
-				var cal = $(this).parent();
-				var col = cal.data('colorpicker').origColor;
-				cal.data('colorpicker').color = col;
-				fillRGBFields(col, cal.get(0));
-				fillHexFields(col, cal.get(0));
-				fillHSBFields(col, cal.get(0));
-				setSelector(col, cal.get(0));
-				setHue(col, cal.get(0));
-				setNewColor(col, cal.get(0));
-			};
-		return {
-			init: function (opt) {
-				opt = $.extend({}, defaults, opt||{});
-				if (typeof opt.color == 'string') {
-					opt.color = HexToHSB(opt.color);
-				} else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) {
-					opt.color = RGBToHSB(opt.color);
-				} else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) {
-					opt.color = fixHSB(opt.color);
-				} else {
-					return this;
-				}
-				return this.each(function () {
-					if (!$(this).data('colorpickerId')) {
-						var options = $.extend({}, opt);
-						options.origColor = opt.color;
-						var id = 'collorpicker_' + parseInt(Math.random() * 1000);
-						$(this).data('colorpickerId', id);
-						var cal = $(tpl).attr('id', id);
-						if (options.flat) {
-							cal.appendTo(this).show();
-						} else {
-							cal.appendTo(document.body);
-						}
-						options.fields = cal
-											.find('input')
-												.bind('keyup', keyDown)
-												.bind('change', change)
-												.bind('blur', blur)
-												.bind('focus', focus);
-						cal
-							.find('span').bind('mousedown', downIncrement).end()
-							.find('>div.colorpicker_current_color').bind('click', restoreOriginal);
-						options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
-						options.selectorIndic = options.selector.find('div div');
-						options.el = this;
-						options.hue = cal.find('div.colorpicker_hue div');
-						cal.find('div.colorpicker_hue').bind('mousedown', downHue);
-						options.newColor = cal.find('div.colorpicker_new_color');
-						options.currentColor = cal.find('div.colorpicker_current_color');
-						cal.data('colorpicker', options);
-						cal.find('div.colorpicker_submit')
-							.bind('mouseenter', enterSubmit)
-							.bind('mouseleave', leaveSubmit)
-							.bind('click', clickSubmit);
-						fillRGBFields(options.color, cal.get(0));
-						fillHSBFields(options.color, cal.get(0));
-						fillHexFields(options.color, cal.get(0));
-						setHue(options.color, cal.get(0));
-						setSelector(options.color, cal.get(0));
-						setCurrentColor(options.color, cal.get(0));
-						setNewColor(options.color, cal.get(0));
-						if (options.flat) {
-							cal.css({
-								position: 'relative',
-								display: 'block'
-							});
-						} else {
-							$(this).bind(options.eventName, show);
-						}
-					}
-				});
-			},
-			showPicker: function() {
-				return this.each( function () {
-					if ($(this).data('colorpickerId')) {
-						show.apply(this);
-					}
-				});
-			},
-			hidePicker: function() {
-				return this.each( function () {
-					if ($(this).data('colorpickerId')) {
-						$('#' + $(this).data('colorpickerId')).hide();
-					}
-				});
-			},
-			setColor: function(col) {
-				if (typeof col == 'string') {
-					col = HexToHSB(col);
-				} else if (col.r != undefined && col.g != undefined && col.b != undefined) {
-					col = RGBToHSB(col);
-				} else if (col.h != undefined && col.s != undefined && col.b != undefined) {
-					col = fixHSB(col);
-				} else {
-					return this;
-				}
-				return this.each(function(){
-					if ($(this).data('colorpickerId')) {
-						var cal = $('#' + $(this).data('colorpickerId'));
-						cal.data('colorpicker').color = col;
-						cal.data('colorpicker').origColor = col;
-						fillRGBFields(col, cal.get(0));
-						fillHSBFields(col, cal.get(0));
-						fillHexFields(col, cal.get(0));
-						setHue(col, cal.get(0));
-						setSelector(col, cal.get(0));
-						setCurrentColor(col, cal.get(0));
-						setNewColor(col, cal.get(0));
-					}
-				});
-			}
-		};
-	}();
-	$.fn.extend({
-		ColorPicker: ColorPicker.init,
-		ColorPickerHide: ColorPicker.hidePicker,
-		ColorPickerShow: ColorPicker.showPicker,
-		ColorPickerSetColor: ColorPicker.setColor
-	});
-})(jQuery)

+ 0 - 34
web/NotepadA/utils/colorpicker/js/eye.js

@@ -1,34 +0,0 @@
-/**
- *
- * Zoomimage
- * Author: Stefan Petre www.eyecon.ro
- * 
- */
-(function($){
-	var EYE = window.EYE = function() {
-		var _registered = {
-			init: []
-		};
-		return {
-			init: function() {
-				$.each(_registered.init, function(nr, fn){
-					fn.call();
-				});
-			},
-			extend: function(prop) {
-				for (var i in prop) {
-					if (prop[i] != undefined) {
-						this[i] = prop[i];
-					}
-				}
-			},
-			register: function(fn, type) {
-				if (!_registered[type]) {
-					_registered[type] = [];
-				}
-				_registered[type].push(fn);
-			}
-		};
-	}();
-	$(EYE.init);
-})(jQuery);

+ 0 - 4376
web/NotepadA/utils/colorpicker/js/jquery.js

@@ -1,4376 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.3.2
- * http://jquery.com/
- *
- * Copyright (c) 2009 John Resig
- * Dual licensed under the MIT and GPL licenses.
- * http://docs.jquery.com/License
- *
- * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
- * Revision: 6246
- */
-(function(){
-
-var 
-	// Will speed up references to window, and allows munging its name.
-	window = this,
-	// Will speed up references to undefined, and allows munging its name.
-	undefined,
-	// Map over jQuery in case of overwrite
-	_jQuery = window.jQuery,
-	// Map over the $ in case of overwrite
-	_$ = window.$,
-
-	jQuery = window.jQuery = window.$ = function( selector, context ) {
-		// The jQuery object is actually just the init constructor 'enhanced'
-		return new jQuery.fn.init( selector, context );
-	},
-
-	// A simple way to check for HTML strings or ID strings
-	// (both of which we optimize for)
-	quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
-	// Is it a simple selector
-	isSimple = /^.[^:#\[\.,]*$/;
-
-jQuery.fn = jQuery.prototype = {
-	init: function( selector, context ) {
-		// Make sure that a selection was provided
-		selector = selector || document;
-
-		// Handle $(DOMElement)
-		if ( selector.nodeType ) {
-			this[0] = selector;
-			this.length = 1;
-			this.context = selector;
-			return this;
-		}
-		// Handle HTML strings
-		if ( typeof selector === "string" ) {
-			// Are we dealing with HTML string or an ID?
-			var match = quickExpr.exec( selector );
-
-			// Verify a match, and that no context was specified for #id
-			if ( match && (match[1] || !context) ) {
-
-				// HANDLE: $(html) -> $(array)
-				if ( match[1] )
-					selector = jQuery.clean( [ match[1] ], context );
-
-				// HANDLE: $("#id")
-				else {
-					var elem = document.getElementById( match[3] );
-
-					// Handle the case where IE and Opera return items
-					// by name instead of ID
-					if ( elem && elem.id != match[3] )
-						return jQuery().find( selector );
-
-					// Otherwise, we inject the element directly into the jQuery object
-					var ret = jQuery( elem || [] );
-					ret.context = document;
-					ret.selector = selector;
-					return ret;
-				}
-
-			// HANDLE: $(expr, [context])
-			// (which is just equivalent to: $(content).find(expr)
-			} else
-				return jQuery( context ).find( selector );
-
-		// HANDLE: $(function)
-		// Shortcut for document ready
-		} else if ( jQuery.isFunction( selector ) )
-			return jQuery( document ).ready( selector );
-
-		// Make sure that old selector state is passed along
-		if ( selector.selector && selector.context ) {
-			this.selector = selector.selector;
-			this.context = selector.context;
-		}
-
-		return this.setArray(jQuery.isArray( selector ) ?
-			selector :
-			jQuery.makeArray(selector));
-	},
-
-	// Start with an empty selector
-	selector: "",
-
-	// The current version of jQuery being used
-	jquery: "1.3.2",
-
-	// The number of elements contained in the matched element set
-	size: function() {
-		return this.length;
-	},
-
-	// Get the Nth element in the matched element set OR
-	// Get the whole matched element set as a clean array
-	get: function( num ) {
-		return num === undefined ?
-
-			// Return a 'clean' array
-			Array.prototype.slice.call( this ) :
-
-			// Return just the object
-			this[ num ];
-	},
-
-	// Take an array of elements and push it onto the stack
-	// (returning the new matched element set)
-	pushStack: function( elems, name, selector ) {
-		// Build a new jQuery matched element set
-		var ret = jQuery( elems );
-
-		// Add the old object onto the stack (as a reference)
-		ret.prevObject = this;
-
-		ret.context = this.context;
-
-		if ( name === "find" )
-			ret.selector = this.selector + (this.selector ? " " : "") + selector;
-		else if ( name )
-			ret.selector = this.selector + "." + name + "(" + selector + ")";
-
-		// Return the newly-formed element set
-		return ret;
-	},
-
-	// Force the current matched set of elements to become
-	// the specified array of elements (destroying the stack in the process)
-	// You should use pushStack() in order to do this, but maintain the stack
-	setArray: function( elems ) {
-		// Resetting the length to 0, then using the native Array push
-		// is a super-fast way to populate an object with array-like properties
-		this.length = 0;
-		Array.prototype.push.apply( this, elems );
-
-		return this;
-	},
-
-	// Execute a callback for every element in the matched set.
-	// (You can seed the arguments with an array of args, but this is
-	// only used internally.)
-	each: function( callback, args ) {
-		return jQuery.each( this, callback, args );
-	},
-
-	// Determine the position of an element within
-	// the matched set of elements
-	index: function( elem ) {
-		// Locate the position of the desired element
-		return jQuery.inArray(
-			// If it receives a jQuery object, the first element is used
-			elem && elem.jquery ? elem[0] : elem
-		, this );
-	},
-
-	attr: function( name, value, type ) {
-		var options = name;
-
-		// Look for the case where we're accessing a style value
-		if ( typeof name === "string" )
-			if ( value === undefined )
-				return this[0] && jQuery[ type || "attr" ]( this[0], name );
-
-			else {
-				options = {};
-				options[ name ] = value;
-			}
-
-		// Check to see if we're setting style values
-		return this.each(function(i){
-			// Set all the styles
-			for ( name in options )
-				jQuery.attr(
-					type ?
-						this.style :
-						this,
-					name, jQuery.prop( this, options[ name ], type, i, name )
-				);
-		});
-	},
-
-	css: function( key, value ) {
-		// ignore negative width and height values
-		if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
-			value = undefined;
-		return this.attr( key, value, "curCSS" );
-	},
-
-	text: function( text ) {
-		if ( typeof text !== "object" && text != null )
-			return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
-
-		var ret = "";
-
-		jQuery.each( text || this, function(){
-			jQuery.each( this.childNodes, function(){
-				if ( this.nodeType != 8 )
-					ret += this.nodeType != 1 ?
-						this.nodeValue :
-						jQuery.fn.text( [ this ] );
-			});
-		});
-
-		return ret;
-	},
-
-	wrapAll: function( html ) {
-		if ( this[0] ) {
-			// The elements to wrap the target around
-			var wrap = jQuery( html, this[0].ownerDocument ).clone();
-
-			if ( this[0].parentNode )
-				wrap.insertBefore( this[0] );
-
-			wrap.map(function(){
-				var elem = this;
-
-				while ( elem.firstChild )
-					elem = elem.firstChild;
-
-				return elem;
-			}).append(this);
-		}
-
-		return this;
-	},
-
-	wrapInner: function( html ) {
-		return this.each(function(){
-			jQuery( this ).contents().wrapAll( html );
-		});
-	},
-
-	wrap: function( html ) {
-		return this.each(function(){
-			jQuery( this ).wrapAll( html );
-		});
-	},
-
-	append: function() {
-		return this.domManip(arguments, true, function(elem){
-			if (this.nodeType == 1)
-				this.appendChild( elem );
-		});
-	},
-
-	prepend: function() {
-		return this.domManip(arguments, true, function(elem){
-			if (this.nodeType == 1)
-				this.insertBefore( elem, this.firstChild );
-		});
-	},
-
-	before: function() {
-		return this.domManip(arguments, false, function(elem){
-			this.parentNode.insertBefore( elem, this );
-		});
-	},
-
-	after: function() {
-		return this.domManip(arguments, false, function(elem){
-			this.parentNode.insertBefore( elem, this.nextSibling );
-		});
-	},
-
-	end: function() {
-		return this.prevObject || jQuery( [] );
-	},
-
-	// For internal use only.
-	// Behaves like an Array's method, not like a jQuery method.
-	push: [].push,
-	sort: [].sort,
-	splice: [].splice,
-
-	find: function( selector ) {
-		if ( this.length === 1 ) {
-			var ret = this.pushStack( [], "find", selector );
-			ret.length = 0;
-			jQuery.find( selector, this[0], ret );
-			return ret;
-		} else {
-			return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){
-				return jQuery.find( selector, elem );
-			})), "find", selector );
-		}
-	},
-
-	clone: function( events ) {
-		// Do the clone
-		var ret = this.map(function(){
-			if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) {
-				// IE copies events bound via attachEvent when
-				// using cloneNode. Calling detachEvent on the
-				// clone will also remove the events from the orignal
-				// In order to get around this, we use innerHTML.
-				// Unfortunately, this means some modifications to
-				// attributes in IE that are actually only stored
-				// as properties will not be copied (such as the
-				// the name attribute on an input).
-				var html = this.outerHTML;
-				if ( !html ) {
-					var div = this.ownerDocument.createElement("div");
-					div.appendChild( this.cloneNode(true) );
-					html = div.innerHTML;
-				}
-
-				return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0];
-			} else
-				return this.cloneNode(true);
-		});
-
-		// Copy the events from the original to the clone
-		if ( events === true ) {
-			var orig = this.find("*").andSelf(), i = 0;
-
-			ret.find("*").andSelf().each(function(){
-				if ( this.nodeName !== orig[i].nodeName )
-					return;
-
-				var events = jQuery.data( orig[i], "events" );
-
-				for ( var type in events ) {
-					for ( var handler in events[ type ] ) {
-						jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data );
-					}
-				}
-
-				i++;
-			});
-		}
-
-		// Return the cloned set
-		return ret;
-	},
-
-	filter: function( selector ) {
-		return this.pushStack(
-			jQuery.isFunction( selector ) &&
-			jQuery.grep(this, function(elem, i){
-				return selector.call( elem, i );
-			}) ||
-
-			jQuery.multiFilter( selector, jQuery.grep(this, function(elem){
-				return elem.nodeType === 1;
-			}) ), "filter", selector );
-	},
-
-	closest: function( selector ) {
-		var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null,
-			closer = 0;
-
-		return this.map(function(){
-			var cur = this;
-			while ( cur && cur.ownerDocument ) {
-				if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) {
-					jQuery.data(cur, "closest", closer);
-					return cur;
-				}
-				cur = cur.parentNode;
-				closer++;
-			}
-		});
-	},
-
-	not: function( selector ) {
-		if ( typeof selector === "string" )
-			// test special case where just one selector is passed in
-			if ( isSimple.test( selector ) )
-				return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector );
-			else
-				selector = jQuery.multiFilter( selector, this );
-
-		var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
-		return this.filter(function() {
-			return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
-		});
-	},
-
-	add: function( selector ) {
-		return this.pushStack( jQuery.unique( jQuery.merge(
-			this.get(),
-			typeof selector === "string" ?
-				jQuery( selector ) :
-				jQuery.makeArray( selector )
-		)));
-	},
-
-	is: function( selector ) {
-		return !!selector && jQuery.multiFilter( selector, this ).length > 0;
-	},
-
-	hasClass: function( selector ) {
-		return !!selector && this.is( "." + selector );
-	},
-
-	val: function( value ) {
-		if ( value === undefined ) {			
-			var elem = this[0];
-
-			if ( elem ) {
-				if( jQuery.nodeName( elem, 'option' ) )
-					return (elem.attributes.value || {}).specified ? elem.value : elem.text;
-				
-				// We need to handle select boxes special
-				if ( jQuery.nodeName( elem, "select" ) ) {
-					var index = elem.selectedIndex,
-						values = [],
-						options = elem.options,
-						one = elem.type == "select-one";
-
-					// Nothing was selected
-					if ( index < 0 )
-						return null;
-
-					// Loop through all the selected options
-					for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
-						var option = options[ i ];
-
-						if ( option.selected ) {
-							// Get the specifc value for the option
-							value = jQuery(option).val();
-
-							// We don't need an array for one selects
-							if ( one )
-								return value;
-
-							// Multi-Selects return an array
-							values.push( value );
-						}
-					}
-
-					return values;				
-				}
-
-				// Everything else, we just grab the value
-				return (elem.value || "").replace(/\r/g, "");
-
-			}
-
-			return undefined;
-		}
-
-		if ( typeof value === "number" )
-			value += '';
-
-		return this.each(function(){
-			if ( this.nodeType != 1 )
-				return;
-
-			if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) )
-				this.checked = (jQuery.inArray(this.value, value) >= 0 ||
-					jQuery.inArray(this.name, value) >= 0);
-
-			else if ( jQuery.nodeName( this, "select" ) ) {
-				var values = jQuery.makeArray(value);
-
-				jQuery( "option", this ).each(function(){
-					this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
-						jQuery.inArray( this.text, values ) >= 0);
-				});
-
-				if ( !values.length )
-					this.selectedIndex = -1;
-
-			} else
-				this.value = value;
-		});
-	},
-
-	html: function( value ) {
-		return value === undefined ?
-			(this[0] ?
-				this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") :
-				null) :
-			this.empty().append( value );
-	},
-
-	replaceWith: function( value ) {
-		return this.after( value ).remove();
-	},
-
-	eq: function( i ) {
-		return this.slice( i, +i + 1 );
-	},
-
-	slice: function() {
-		return this.pushStack( Array.prototype.slice.apply( this, arguments ),
-			"slice", Array.prototype.slice.call(arguments).join(",") );
-	},
-
-	map: function( callback ) {
-		return this.pushStack( jQuery.map(this, function(elem, i){
-			return callback.call( elem, i, elem );
-		}));
-	},
-
-	andSelf: function() {
-		return this.add( this.prevObject );
-	},
-
-	domManip: function( args, table, callback ) {
-		if ( this[0] ) {
-			var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(),
-				scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ),
-				first = fragment.firstChild;
-
-			if ( first )
-				for ( var i = 0, l = this.length; i < l; i++ )
-					callback.call( root(this[i], first), this.length > 1 || i > 0 ?
-							fragment.cloneNode(true) : fragment );
-		
-			if ( scripts )
-				jQuery.each( scripts, evalScript );
-		}
-
-		return this;
-		
-		function root( elem, cur ) {
-			return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ?
-				(elem.getElementsByTagName("tbody")[0] ||
-				elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
-				elem;
-		}
-	}
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-function evalScript( i, elem ) {
-	if ( elem.src )
-		jQuery.ajax({
-			url: elem.src,
-			async: false,
-			dataType: "script"
-		});
-
-	else
-		jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
-
-	if ( elem.parentNode )
-		elem.parentNode.removeChild( elem );
-}
-
-function now(){
-	return +new Date;
-}
-
-jQuery.extend = jQuery.fn.extend = function() {
-	// copy reference to target object
-	var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
-
-	// Handle a deep copy situation
-	if ( typeof target === "boolean" ) {
-		deep = target;
-		target = arguments[1] || {};
-		// skip the boolean and the target
-		i = 2;
-	}
-
-	// Handle case when target is a string or something (possible in deep copy)
-	if ( typeof target !== "object" && !jQuery.isFunction(target) )
-		target = {};
-
-	// extend jQuery itself if only one argument is passed
-	if ( length == i ) {
-		target = this;
-		--i;
-	}
-
-	for ( ; i < length; i++ )
-		// Only deal with non-null/undefined values
-		if ( (options = arguments[ i ]) != null )
-			// Extend the base object
-			for ( var name in options ) {
-				var src = target[ name ], copy = options[ name ];
-
-				// Prevent never-ending loop
-				if ( target === copy )
-					continue;
-
-				// Recurse if we're merging object values
-				if ( deep && copy && typeof copy === "object" && !copy.nodeType )
-					target[ name ] = jQuery.extend( deep, 
-						// Never move original objects, clone them
-						src || ( copy.length != null ? [ ] : { } )
-					, copy );
-
-				// Don't bring in undefined values
-				else if ( copy !== undefined )
-					target[ name ] = copy;
-
-			}
-
-	// Return the modified object
-	return target;
-};
-
-// exclude the following css properties to add px
-var	exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
-	// cache defaultView
-	defaultView = document.defaultView || {},
-	toString = Object.prototype.toString;
-
-jQuery.extend({
-	noConflict: function( deep ) {
-		window.$ = _$;
-
-		if ( deep )
-			window.jQuery = _jQuery;
-
-		return jQuery;
-	},
-
-	// See test/unit/core.js for details concerning isFunction.
-	// Since version 1.3, DOM methods and functions like alert
-	// aren't supported. They return false on IE (#2968).
-	isFunction: function( obj ) {
-		return toString.call(obj) === "[object Function]";
-	},
-
-	isArray: function( obj ) {
-		return toString.call(obj) === "[object Array]";
-	},
-
-	// check if an element is in a (or is an) XML document
-	isXMLDoc: function( elem ) {
-		return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
-			!!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument );
-	},
-
-	// Evalulates a script in a global context
-	globalEval: function( data ) {
-		if ( data && /\S/.test(data) ) {
-			// Inspired by code by Andrea Giammarchi
-			// http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
-			var head = document.getElementsByTagName("head")[0] || document.documentElement,
-				script = document.createElement("script");
-
-			script.type = "text/javascript";
-			if ( jQuery.support.scriptEval )
-				script.appendChild( document.createTextNode( data ) );
-			else
-				script.text = data;
-
-			// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
-			// This arises when a base node is used (#2709).
-			head.insertBefore( script, head.firstChild );
-			head.removeChild( script );
-		}
-	},
-
-	nodeName: function( elem, name ) {
-		return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
-	},
-
-	// args is for internal usage only
-	each: function( object, callback, args ) {
-		var name, i = 0, length = object.length;
-
-		if ( args ) {
-			if ( length === undefined ) {
-				for ( name in object )
-					if ( callback.apply( object[ name ], args ) === false )
-						break;
-			} else
-				for ( ; i < length; )
-					if ( callback.apply( object[ i++ ], args ) === false )
-						break;
-
-		// A special, fast, case for the most common use of each
-		} else {
-			if ( length === undefined ) {
-				for ( name in object )
-					if ( callback.call( object[ name ], name, object[ name ] ) === false )
-						break;
-			} else
-				for ( var value = object[0];
-					i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
-		}
-
-		return object;
-	},
-
-	prop: function( elem, value, type, i, name ) {
-		// Handle executable functions
-		if ( jQuery.isFunction( value ) )
-			value = value.call( elem, i );
-
-		// Handle passing in a number to a CSS property
-		return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ?
-			value + "px" :
-			value;
-	},
-
-	className: {
-		// internal only, use addClass("class")
-		add: function( elem, classNames ) {
-			jQuery.each((classNames || "").split(/\s+/), function(i, className){
-				if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
-					elem.className += (elem.className ? " " : "") + className;
-			});
-		},
-
-		// internal only, use removeClass("class")
-		remove: function( elem, classNames ) {
-			if (elem.nodeType == 1)
-				elem.className = classNames !== undefined ?
-					jQuery.grep(elem.className.split(/\s+/), function(className){
-						return !jQuery.className.has( classNames, className );
-					}).join(" ") :
-					"";
-		},
-
-		// internal only, use hasClass("class")
-		has: function( elem, className ) {
-			return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
-		}
-	},
-
-	// A method for quickly swapping in/out CSS properties to get correct calculations
-	swap: function( elem, options, callback ) {
-		var old = {};
-		// Remember the old values, and insert the new ones
-		for ( var name in options ) {
-			old[ name ] = elem.style[ name ];
-			elem.style[ name ] = options[ name ];
-		}
-
-		callback.call( elem );
-
-		// Revert the old values
-		for ( var name in options )
-			elem.style[ name ] = old[ name ];
-	},
-
-	css: function( elem, name, force, extra ) {
-		if ( name == "width" || name == "height" ) {
-			var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ];
-
-			function getWH() {
-				val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
-
-				if ( extra === "border" )
-					return;
-
-				jQuery.each( which, function() {
-					if ( !extra )
-						val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
-					if ( extra === "margin" )
-						val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0;
-					else
-						val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
-				});
-			}
-
-			if ( elem.offsetWidth !== 0 )
-				getWH();
-			else
-				jQuery.swap( elem, props, getWH );
-
-			return Math.max(0, Math.round(val));
-		}
-
-		return jQuery.curCSS( elem, name, force );
-	},
-
-	curCSS: function( elem, name, force ) {
-		var ret, style = elem.style;
-
-		// We need to handle opacity special in IE
-		if ( name == "opacity" && !jQuery.support.opacity ) {
-			ret = jQuery.attr( style, "opacity" );
-
-			return ret == "" ?
-				"1" :
-				ret;
-		}
-
-		// Make sure we're using the right name for getting the float value
-		if ( name.match( /float/i ) )
-			name = styleFloat;
-
-		if ( !force && style && style[ name ] )
-			ret = style[ name ];
-
-		else if ( defaultView.getComputedStyle ) {
-
-			// Only "float" is needed here
-			if ( name.match( /float/i ) )
-				name = "float";
-
-			name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
-
-			var computedStyle = defaultView.getComputedStyle( elem, null );
-
-			if ( computedStyle )
-				ret = computedStyle.getPropertyValue( name );
-
-			// We should always get a number back from opacity
-			if ( name == "opacity" && ret == "" )
-				ret = "1";
-
-		} else if ( elem.currentStyle ) {
-			var camelCase = name.replace(/\-(\w)/g, function(all, letter){
-				return letter.toUpperCase();
-			});
-
-			ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];
-
-			// From the awesome hack by Dean Edwards
-			// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
-			// If we're not dealing with a regular pixel number
-			// but a number that has a weird ending, we need to convert it to pixels
-			if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
-				// Remember the original values
-				var left = style.left, rsLeft = elem.runtimeStyle.left;
-
-				// Put in the new values to get a computed value out
-				elem.runtimeStyle.left = elem.currentStyle.left;
-				style.left = ret || 0;
-				ret = style.pixelLeft + "px";
-
-				// Revert the changed values
-				style.left = left;
-				elem.runtimeStyle.left = rsLeft;
-			}
-		}
-
-		return ret;
-	},
-
-	clean: function( elems, context, fragment ) {
-		context = context || document;
-
-		// !context.createElement fails in IE with an error but returns typeof 'object'
-		if ( typeof context.createElement === "undefined" )
-			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
-
-		// If a single string is passed in and it's a single tag
-		// just do a createElement and skip the rest
-		if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) {
-			var match = /^<(\w+)\s*\/?>$/.exec(elems[0]);
-			if ( match )
-				return [ context.createElement( match[1] ) ];
-		}
-
-		var ret = [], scripts = [], div = context.createElement("div");
-
-		jQuery.each(elems, function(i, elem){
-			if ( typeof elem === "number" )
-				elem += '';
-
-			if ( !elem )
-				return;
-
-			// Convert html string into DOM nodes
-			if ( typeof elem === "string" ) {
-				// Fix "XHTML"-style tags in all browsers
-				elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
-					return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ?
-						all :
-						front + "></" + tag + ">";
-				});
-
-				// Trim whitespace, otherwise indexOf won't work as expected
-				var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase();
-
-				var wrap =
-					// option or optgroup
-					!tags.indexOf("<opt") &&
-					[ 1, "<select multiple='multiple'>", "</select>" ] ||
-
-					!tags.indexOf("<leg") &&
-					[ 1, "<fieldset>", "</fieldset>" ] ||
-
-					tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
-					[ 1, "<table>", "</table>" ] ||
-
-					!tags.indexOf("<tr") &&
-					[ 2, "<table><tbody>", "</tbody></table>" ] ||
-
-				 	// <thead> matched above
-					(!tags.indexOf("<td") || !tags.indexOf("<th")) &&
-					[ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] ||
-
-					!tags.indexOf("<col") &&
-					[ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] ||
-
-					// IE can't serialize <link> and <script> tags normally
-					!jQuery.support.htmlSerialize &&
-					[ 1, "div<div>", "</div>" ] ||
-
-					[ 0, "", "" ];
-
-				// Go to html and back, then peel off extra wrappers
-				div.innerHTML = wrap[1] + elem + wrap[2];
-
-				// Move to the right depth
-				while ( wrap[0]-- )
-					div = div.lastChild;
-
-				// Remove IE's autoinserted <tbody> from table fragments
-				if ( !jQuery.support.tbody ) {
-
-					// String was a <table>, *may* have spurious <tbody>
-					var hasBody = /<tbody/i.test(elem),
-						tbody = !tags.indexOf("<table") && !hasBody ?
-							div.firstChild && div.firstChild.childNodes :
-
-						// String was a bare <thead> or <tfoot>
-						wrap[1] == "<table>" && !hasBody ?
-							div.childNodes :
-							[];
-
-					for ( var j = tbody.length - 1; j >= 0 ; --j )
-						if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length )
-							tbody[ j ].parentNode.removeChild( tbody[ j ] );
-
-					}
-
-				// IE completely kills leading whitespace when innerHTML is used
-				if ( !jQuery.support.leadingWhitespace && /^\s/.test( elem ) )
-					div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild );
-				
-				elem = jQuery.makeArray( div.childNodes );
-			}
-
-			if ( elem.nodeType )
-				ret.push( elem );
-			else
-				ret = jQuery.merge( ret, elem );
-
-		});
-
-		if ( fragment ) {
-			for ( var i = 0; ret[i]; i++ ) {
-				if ( jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
-					scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
-				} else {
-					if ( ret[i].nodeType === 1 )
-						ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
-					fragment.appendChild( ret[i] );
-				}
-			}
-			
-			return scripts;
-		}
-
-		return ret;
-	},
-
-	attr: function( elem, name, value ) {
-		// don't set attributes on text and comment nodes
-		if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
-			return undefined;
-
-		var notxml = !jQuery.isXMLDoc( elem ),
-			// Whether we are setting (or getting)
-			set = value !== undefined;
-
-		// Try to normalize/fix the name
-		name = notxml && jQuery.props[ name ] || name;
-
-		// Only do all the following if this is a node (faster for style)
-		// IE elem.getAttribute passes even for style
-		if ( elem.tagName ) {
-
-			// These attributes require special treatment
-			var special = /href|src|style/.test( name );
-
-			// Safari mis-reports the default selected property of a hidden option
-			// Accessing the parent's selectedIndex property fixes it
-			if ( name == "selected" && elem.parentNode )
-				elem.parentNode.selectedIndex;
-
-			// If applicable, access the attribute via the DOM 0 way
-			if ( name in elem && notxml && !special ) {
-				if ( set ){
-					// We can't allow the type property to be changed (since it causes problems in IE)
-					if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
-						throw "type property can't be changed";
-
-					elem[ name ] = value;
-				}
-
-				// browsers index elements by id/name on forms, give priority to attributes.
-				if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) )
-					return elem.getAttributeNode( name ).nodeValue;
-
-				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
-				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
-				if ( name == "tabIndex" ) {
-					var attributeNode = elem.getAttributeNode( "tabIndex" );
-					return attributeNode && attributeNode.specified
-						? attributeNode.value
-						: elem.nodeName.match(/(button|input|object|select|textarea)/i)
-							? 0
-							: elem.nodeName.match(/^(a|area)$/i) && elem.href
-								? 0
-								: undefined;
-				}
-
-				return elem[ name ];
-			}
-
-			if ( !jQuery.support.style && notxml &&  name == "style" )
-				return jQuery.attr( elem.style, "cssText", value );
-
-			if ( set )
-				// convert the value to a string (all browsers do this but IE) see #1070
-				elem.setAttribute( name, "" + value );
-
-			var attr = !jQuery.support.hrefNormalized && notxml && special
-					// Some attributes require a special call on IE
-					? elem.getAttribute( name, 2 )
-					: elem.getAttribute( name );
-
-			// Non-existent attributes return null, we normalize to undefined
-			return attr === null ? undefined : attr;
-		}
-
-		// elem is actually elem.style ... set the style
-
-		// IE uses filters for opacity
-		if ( !jQuery.support.opacity && name == "opacity" ) {
-			if ( set ) {
-				// IE has trouble with opacity if it does not have layout
-				// Force it by setting the zoom level
-				elem.zoom = 1;
-
-				// Set the alpha filter to set the opacity
-				elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
-					(parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
-			}
-
-			return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
-				(parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':
-				"";
-		}
-
-		name = name.replace(/-([a-z])/ig, function(all, letter){
-			return letter.toUpperCase();
-		});
-
-		if ( set )
-			elem[ name ] = value;
-
-		return elem[ name ];
-	},
-
-	trim: function( text ) {
-		return (text || "").replace( /^\s+|\s+$/g, "" );
-	},
-
-	makeArray: function( array ) {
-		var ret = [];
-
-		if( array != null ){
-			var i = array.length;
-			// The window, strings (and functions) also have 'length'
-			if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval )
-				ret[0] = array;
-			else
-				while( i )
-					ret[--i] = array[i];
-		}
-
-		return ret;
-	},
-
-	inArray: function( elem, array ) {
-		for ( var i = 0, length = array.length; i < length; i++ )
-		// Use === because on IE, window == document
-			if ( array[ i ] === elem )
-				return i;
-
-		return -1;
-	},
-
-	merge: function( first, second ) {
-		// We have to loop this way because IE & Opera overwrite the length
-		// expando of getElementsByTagName
-		var i = 0, elem, pos = first.length;
-		// Also, we need to make sure that the correct elements are being returned
-		// (IE returns comment nodes in a '*' query)
-		if ( !jQuery.support.getAll ) {
-			while ( (elem = second[ i++ ]) != null )
-				if ( elem.nodeType != 8 )
-					first[ pos++ ] = elem;
-
-		} else
-			while ( (elem = second[ i++ ]) != null )
-				first[ pos++ ] = elem;
-
-		return first;
-	},
-
-	unique: function( array ) {
-		var ret = [], done = {};
-
-		try {
-
-			for ( var i = 0, length = array.length; i < length; i++ ) {
-				var id = jQuery.data( array[ i ] );
-
-				if ( !done[ id ] ) {
-					done[ id ] = true;
-					ret.push( array[ i ] );
-				}
-			}
-
-		} catch( e ) {
-			ret = array;
-		}
-
-		return ret;
-	},
-
-	grep: function( elems, callback, inv ) {
-		var ret = [];
-
-		// Go through the array, only saving the items
-		// that pass the validator function
-		for ( var i = 0, length = elems.length; i < length; i++ )
-			if ( !inv != !callback( elems[ i ], i ) )
-				ret.push( elems[ i ] );
-
-		return ret;
-	},
-
-	map: function( elems, callback ) {
-		var ret = [];
-
-		// Go through the array, translating each of the items to their
-		// new value (or values).
-		for ( var i = 0, length = elems.length; i < length; i++ ) {
-			var value = callback( elems[ i ], i );
-
-			if ( value != null )
-				ret[ ret.length ] = value;
-		}
-
-		return ret.concat.apply( [], ret );
-	}
-});
-
-// Use of jQuery.browser is deprecated.
-// It's included for backwards compatibility and plugins,
-// although they should work to migrate away.
-
-var userAgent = navigator.userAgent.toLowerCase();
-
-// Figure out what browser is being used
-jQuery.browser = {
-	version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
-	safari: /webkit/.test( userAgent ),
-	opera: /opera/.test( userAgent ),
-	msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
-	mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
-};
-
-jQuery.each({
-	parent: function(elem){return elem.parentNode;},
-	parents: function(elem){return jQuery.dir(elem,"parentNode");},
-	next: function(elem){return jQuery.nth(elem,2,"nextSibling");},
-	prev: function(elem){return jQuery.nth(elem,2,"previousSibling");},
-	nextAll: function(elem){return jQuery.dir(elem,"nextSibling");},
-	prevAll: function(elem){return jQuery.dir(elem,"previousSibling");},
-	siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},
-	children: function(elem){return jQuery.sibling(elem.firstChild);},
-	contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}
-}, function(name, fn){
-	jQuery.fn[ name ] = function( selector ) {
-		var ret = jQuery.map( this, fn );
-
-		if ( selector && typeof selector == "string" )
-			ret = jQuery.multiFilter( selector, ret );
-
-		return this.pushStack( jQuery.unique( ret ), name, selector );
-	};
-});
-
-jQuery.each({
-	appendTo: "append",
-	prependTo: "prepend",
-	insertBefore: "before",
-	insertAfter: "after",
-	replaceAll: "replaceWith"
-}, function(name, original){
-	jQuery.fn[ name ] = function( selector ) {
-		var ret = [], insert = jQuery( selector );
-
-		for ( var i = 0, l = insert.length; i < l; i++ ) {
-			var elems = (i > 0 ? this.clone(true) : this).get();
-			jQuery.fn[ original ].apply( jQuery(insert[i]), elems );
-			ret = ret.concat( elems );
-		}
-
-		return this.pushStack( ret, name, selector );
-	};
-});
-
-jQuery.each({
-	removeAttr: function( name ) {
-		jQuery.attr( this, name, "" );
-		if (this.nodeType == 1)
-			this.removeAttribute( name );
-	},
-
-	addClass: function( classNames ) {
-		jQuery.className.add( this, classNames );
-	},
-
-	removeClass: function( classNames ) {
-		jQuery.className.remove( this, classNames );
-	},
-
-	toggleClass: function( classNames, state ) {
-		if( typeof state !== "boolean" )
-			state = !jQuery.className.has( this, classNames );
-		jQuery.className[ state ? "add" : "remove" ]( this, classNames );
-	},
-
-	remove: function( selector ) {
-		if ( !selector || jQuery.filter( selector, [ this ] ).length ) {
-			// Prevent memory leaks
-			jQuery( "*", this ).add([this]).each(function(){
-				jQuery.event.remove(this);
-				jQuery.removeData(this);
-			});
-			if (this.parentNode)
-				this.parentNode.removeChild( this );
-		}
-	},
-
-	empty: function() {
-		// Remove element nodes and prevent memory leaks
-		jQuery(this).children().remove();
-
-		// Remove any remaining nodes
-		while ( this.firstChild )
-			this.removeChild( this.firstChild );
-	}
-}, function(name, fn){
-	jQuery.fn[ name ] = function(){
-		return this.each( fn, arguments );
-	};
-});
-
-// Helper function used by the dimensions and offset modules
-function num(elem, prop) {
-	return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
-}
-var expando = "jQuery" + now(), uuid = 0, windowData = {};
-
-jQuery.extend({
-	cache: {},
-
-	data: function( elem, name, data ) {
-		elem = elem == window ?
-			windowData :
-			elem;
-
-		var id = elem[ expando ];
-
-		// Compute a unique ID for the element
-		if ( !id )
-			id = elem[ expando ] = ++uuid;
-
-		// Only generate the data cache if we're
-		// trying to access or manipulate it
-		if ( name && !jQuery.cache[ id ] )
-			jQuery.cache[ id ] = {};
-
-		// Prevent overriding the named cache with undefined values
-		if ( data !== undefined )
-			jQuery.cache[ id ][ name ] = data;
-
-		// Return the named cache data, or the ID for the element
-		return name ?
-			jQuery.cache[ id ][ name ] :
-			id;
-	},
-
-	removeData: function( elem, name ) {
-		elem = elem == window ?
-			windowData :
-			elem;
-
-		var id = elem[ expando ];
-
-		// If we want to remove a specific section of the element's data
-		if ( name ) {
-			if ( jQuery.cache[ id ] ) {
-				// Remove the section of cache data
-				delete jQuery.cache[ id ][ name ];
-
-				// If we've removed all the data, remove the element's cache
-				name = "";
-
-				for ( name in jQuery.cache[ id ] )
-					break;
-
-				if ( !name )
-					jQuery.removeData( elem );
-			}
-
-		// Otherwise, we want to remove all of the element's data
-		} else {
-			// Clean up the element expando
-			try {
-				delete elem[ expando ];
-			} catch(e){
-				// IE has trouble directly removing the expando
-				// but it's ok with using removeAttribute
-				if ( elem.removeAttribute )
-					elem.removeAttribute( expando );
-			}
-
-			// Completely remove the data cache
-			delete jQuery.cache[ id ];
-		}
-	},
-	queue: function( elem, type, data ) {
-		if ( elem ){
-	
-			type = (type || "fx") + "queue";
-	
-			var q = jQuery.data( elem, type );
-	
-			if ( !q || jQuery.isArray(data) )
-				q = jQuery.data( elem, type, jQuery.makeArray(data) );
-			else if( data )
-				q.push( data );
-	
-		}
-		return q;
-	},
-
-	dequeue: function( elem, type ){
-		var queue = jQuery.queue( elem, type ),
-			fn = queue.shift();
-		
-		if( !type || type === "fx" )
-			fn = queue[0];
-			
-		if( fn !== undefined )
-			fn.call(elem);
-	}
-});
-
-jQuery.fn.extend({
-	data: function( key, value ){
-		var parts = key.split(".");
-		parts[1] = parts[1] ? "." + parts[1] : "";
-
-		if ( value === undefined ) {
-			var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
-
-			if ( data === undefined && this.length )
-				data = jQuery.data( this[0], key );
-
-			return data === undefined && parts[1] ?
-				this.data( parts[0] ) :
-				data;
-		} else
-			return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
-				jQuery.data( this, key, value );
-			});
-	},
-
-	removeData: function( key ){
-		return this.each(function(){
-			jQuery.removeData( this, key );
-		});
-	},
-	queue: function(type, data){
-		if ( typeof type !== "string" ) {
-			data = type;
-			type = "fx";
-		}
-
-		if ( data === undefined )
-			return jQuery.queue( this[0], type );
-
-		return this.each(function(){
-			var queue = jQuery.queue( this, type, data );
-			
-			 if( type == "fx" && queue.length == 1 )
-				queue[0].call(this);
-		});
-	},
-	dequeue: function(type){
-		return this.each(function(){
-			jQuery.dequeue( this, type );
-		});
-	}
-});/*!
- * Sizzle CSS Selector Engine - v0.9.3
- *  Copyright 2009, The Dojo Foundation
- *  Released under the MIT, BSD, and GPL Licenses.
- *  More information: http://sizzlejs.com/
- */
-(function(){
-
-var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,
-	done = 0,
-	toString = Object.prototype.toString;
-
-var Sizzle = function(selector, context, results, seed) {
-	results = results || [];
-	context = context || document;
-
-	if ( context.nodeType !== 1 && context.nodeType !== 9 )
-		return [];
-	
-	if ( !selector || typeof selector !== "string" ) {
-		return results;
-	}
-
-	var parts = [], m, set, checkSet, check, mode, extra, prune = true;
-	
-	// Reset the position of the chunker regexp (start from head)
-	chunker.lastIndex = 0;
-	
-	while ( (m = chunker.exec(selector)) !== null ) {
-		parts.push( m[1] );
-		
-		if ( m[2] ) {
-			extra = RegExp.rightContext;
-			break;
-		}
-	}
-
-	if ( parts.length > 1 && origPOS.exec( selector ) ) {
-		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
-			set = posProcess( parts[0] + parts[1], context );
-		} else {
-			set = Expr.relative[ parts[0] ] ?
-				[ context ] :
-				Sizzle( parts.shift(), context );
-
-			while ( parts.length ) {
-				selector = parts.shift();
-
-				if ( Expr.relative[ selector ] )
-					selector += parts.shift();
-
-				set = posProcess( selector, set );
-			}
-		}
-	} else {
-		var ret = seed ?
-			{ expr: parts.pop(), set: makeArray(seed) } :
-			Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context) );
-		set = Sizzle.filter( ret.expr, ret.set );
-
-		if ( parts.length > 0 ) {
-			checkSet = makeArray(set);
-		} else {
-			prune = false;
-		}
-
-		while ( parts.length ) {
-			var cur = parts.pop(), pop = cur;
-
-			if ( !Expr.relative[ cur ] ) {
-				cur = "";
-			} else {
-				pop = parts.pop();
-			}
-
-			if ( pop == null ) {
-				pop = context;
-			}
-
-			Expr.relative[ cur ]( checkSet, pop, isXML(context) );
-		}
-	}
-
-	if ( !checkSet ) {
-		checkSet = set;
-	}
-
-	if ( !checkSet ) {
-		throw "Syntax error, unrecognized expression: " + (cur || selector);
-	}
-
-	if ( toString.call(checkSet) === "[object Array]" ) {
-		if ( !prune ) {
-			results.push.apply( results, checkSet );
-		} else if ( context.nodeType === 1 ) {
-			for ( var i = 0; checkSet[i] != null; i++ ) {
-				if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) {
-					results.push( set[i] );
-				}
-			}
-		} else {
-			for ( var i = 0; checkSet[i] != null; i++ ) {
-				if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
-					results.push( set[i] );
-				}
-			}
-		}
-	} else {
-		makeArray( checkSet, results );
-	}
-
-	if ( extra ) {
-		Sizzle( extra, context, results, seed );
-
-		if ( sortOrder ) {
-			hasDuplicate = false;
-			results.sort(sortOrder);
-
-			if ( hasDuplicate ) {
-				for ( var i = 1; i < results.length; i++ ) {
-					if ( results[i] === results[i-1] ) {
-						results.splice(i--, 1);
-					}
-				}
-			}
-		}
-	}
-
-	return results;
-};
-
-Sizzle.matches = function(expr, set){
-	return Sizzle(expr, null, null, set);
-};
-
-Sizzle.find = function(expr, context, isXML){
-	var set, match;
-
-	if ( !expr ) {
-		return [];
-	}
-
-	for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
-		var type = Expr.order[i], match;
-		
-		if ( (match = Expr.match[ type ].exec( expr )) ) {
-			var left = RegExp.leftContext;
-
-			if ( left.substr( left.length - 1 ) !== "\\" ) {
-				match[1] = (match[1] || "").replace(/\\/g, "");
-				set = Expr.find[ type ]( match, context, isXML );
-				if ( set != null ) {
-					expr = expr.replace( Expr.match[ type ], "" );
-					break;
-				}
-			}
-		}
-	}
-
-	if ( !set ) {
-		set = context.getElementsByTagName("*");
-	}
-
-	return {set: set, expr: expr};
-};
-
-Sizzle.filter = function(expr, set, inplace, not){
-	var old = expr, result = [], curLoop = set, match, anyFound,
-		isXMLFilter = set && set[0] && isXML(set[0]);
-
-	while ( expr && set.length ) {
-		for ( var type in Expr.filter ) {
-			if ( (match = Expr.match[ type ].exec( expr )) != null ) {
-				var filter = Expr.filter[ type ], found, item;
-				anyFound = false;
-
-				if ( curLoop == result ) {
-					result = [];
-				}
-
-				if ( Expr.preFilter[ type ] ) {
-					match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
-
-					if ( !match ) {
-						anyFound = found = true;
-					} else if ( match === true ) {
-						continue;
-					}
-				}
-
-				if ( match ) {
-					for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
-						if ( item ) {
-							found = filter( item, match, i, curLoop );
-							var pass = not ^ !!found;
-
-							if ( inplace && found != null ) {
-								if ( pass ) {
-									anyFound = true;
-								} else {
-									curLoop[i] = false;
-								}
-							} else if ( pass ) {
-								result.push( item );
-								anyFound = true;
-							}
-						}
-					}
-				}
-
-				if ( found !== undefined ) {
-					if ( !inplace ) {
-						curLoop = result;
-					}
-
-					expr = expr.replace( Expr.match[ type ], "" );
-
-					if ( !anyFound ) {
-						return [];
-					}
-
-					break;
-				}
-			}
-		}
-
-		// Improper expression
-		if ( expr == old ) {
-			if ( anyFound == null ) {
-				throw "Syntax error, unrecognized expression: " + expr;
-			} else {
-				break;
-			}
-		}
-
-		old = expr;
-	}
-
-	return curLoop;
-};
-
-var Expr = Sizzle.selectors = {
-	order: [ "ID", "NAME", "TAG" ],
-	match: {
-		ID: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
-		CLASS: /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
-		NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,
-		ATTR: /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
-		TAG: /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,
-		CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
-		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
-		PSEUDO: /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
-	},
-	attrMap: {
-		"class": "className",
-		"for": "htmlFor"
-	},
-	attrHandle: {
-		href: function(elem){
-			return elem.getAttribute("href");
-		}
-	},
-	relative: {
-		"+": function(checkSet, part, isXML){
-			var isPartStr = typeof part === "string",
-				isTag = isPartStr && !/\W/.test(part),
-				isPartStrNotTag = isPartStr && !isTag;
-
-			if ( isTag && !isXML ) {
-				part = part.toUpperCase();
-			}
-
-			for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
-				if ( (elem = checkSet[i]) ) {
-					while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
-
-					checkSet[i] = isPartStrNotTag || elem && elem.nodeName === part ?
-						elem || false :
-						elem === part;
-				}
-			}
-
-			if ( isPartStrNotTag ) {
-				Sizzle.filter( part, checkSet, true );
-			}
-		},
-		">": function(checkSet, part, isXML){
-			var isPartStr = typeof part === "string";
-
-			if ( isPartStr && !/\W/.test(part) ) {
-				part = isXML ? part : part.toUpperCase();
-
-				for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-					var elem = checkSet[i];
-					if ( elem ) {
-						var parent = elem.parentNode;
-						checkSet[i] = parent.nodeName === part ? parent : false;
-					}
-				}
-			} else {
-				for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-					var elem = checkSet[i];
-					if ( elem ) {
-						checkSet[i] = isPartStr ?
-							elem.parentNode :
-							elem.parentNode === part;
-					}
-				}
-
-				if ( isPartStr ) {
-					Sizzle.filter( part, checkSet, true );
-				}
-			}
-		},
-		"": function(checkSet, part, isXML){
-			var doneName = done++, checkFn = dirCheck;
-
-			if ( !part.match(/\W/) ) {
-				var nodeCheck = part = isXML ? part : part.toUpperCase();
-				checkFn = dirNodeCheck;
-			}
-
-			checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML);
-		},
-		"~": function(checkSet, part, isXML){
-			var doneName = done++, checkFn = dirCheck;
-
-			if ( typeof part === "string" && !part.match(/\W/) ) {
-				var nodeCheck = part = isXML ? part : part.toUpperCase();
-				checkFn = dirNodeCheck;
-			}
-
-			checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML);
-		}
-	},
-	find: {
-		ID: function(match, context, isXML){
-			if ( typeof context.getElementById !== "undefined" && !isXML ) {
-				var m = context.getElementById(match[1]);
-				return m ? [m] : [];
-			}
-		},
-		NAME: function(match, context, isXML){
-			if ( typeof context.getElementsByName !== "undefined" ) {
-				var ret = [], results = context.getElementsByName(match[1]);
-
-				for ( var i = 0, l = results.length; i < l; i++ ) {
-					if ( results[i].getAttribute("name") === match[1] ) {
-						ret.push( results[i] );
-					}
-				}
-
-				return ret.length === 0 ? null : ret;
-			}
-		},
-		TAG: function(match, context){
-			return context.getElementsByTagName(match[1]);
-		}
-	},
-	preFilter: {
-		CLASS: function(match, curLoop, inplace, result, not, isXML){
-			match = " " + match[1].replace(/\\/g, "") + " ";
-
-			if ( isXML ) {
-				return match;
-			}
-
-			for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
-				if ( elem ) {
-					if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) {
-						if ( !inplace )
-							result.push( elem );
-					} else if ( inplace ) {
-						curLoop[i] = false;
-					}
-				}
-			}
-
-			return false;
-		},
-		ID: function(match){
-			return match[1].replace(/\\/g, "");
-		},
-		TAG: function(match, curLoop){
-			for ( var i = 0; curLoop[i] === false; i++ ){}
-			return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase();
-		},
-		CHILD: function(match){
-			if ( match[1] == "nth" ) {
-				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
-				var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
-					match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" ||
-					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
-
-				// calculate the numbers (first)n+(last) including if they are negative
-				match[2] = (test[1] + (test[2] || 1)) - 0;
-				match[3] = test[3] - 0;
-			}
-
-			// TODO: Move to normal caching system
-			match[0] = done++;
-
-			return match;
-		},
-		ATTR: function(match, curLoop, inplace, result, not, isXML){
-			var name = match[1].replace(/\\/g, "");
-			
-			if ( !isXML && Expr.attrMap[name] ) {
-				match[1] = Expr.attrMap[name];
-			}
-
-			if ( match[2] === "~=" ) {
-				match[4] = " " + match[4] + " ";
-			}
-
-			return match;
-		},
-		PSEUDO: function(match, curLoop, inplace, result, not){
-			if ( match[1] === "not" ) {
-				// If we're dealing with a complex expression, or a simple one
-				if ( match[3].match(chunker).length > 1 || /^\w/.test(match[3]) ) {
-					match[3] = Sizzle(match[3], null, null, curLoop);
-				} else {
-					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
-					if ( !inplace ) {
-						result.push.apply( result, ret );
-					}
-					return false;
-				}
-			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
-				return true;
-			}
-			
-			return match;
-		},
-		POS: function(match){
-			match.unshift( true );
-			return match;
-		}
-	},
-	filters: {
-		enabled: function(elem){
-			return elem.disabled === false && elem.type !== "hidden";
-		},
-		disabled: function(elem){
-			return elem.disabled === true;
-		},
-		checked: function(elem){
-			return elem.checked === true;
-		},
-		selected: function(elem){
-			// Accessing this property makes selected-by-default
-			// options in Safari work properly
-			elem.parentNode.selectedIndex;
-			return elem.selected === true;
-		},
-		parent: function(elem){
-			return !!elem.firstChild;
-		},
-		empty: function(elem){
-			return !elem.firstChild;
-		},
-		has: function(elem, i, match){
-			return !!Sizzle( match[3], elem ).length;
-		},
-		header: function(elem){
-			return /h\d/i.test( elem.nodeName );
-		},
-		text: function(elem){
-			return "text" === elem.type;
-		},
-		radio: function(elem){
-			return "radio" === elem.type;
-		},
-		checkbox: function(elem){
-			return "checkbox" === elem.type;
-		},
-		file: function(elem){
-			return "file" === elem.type;
-		},
-		password: function(elem){
-			return "password" === elem.type;
-		},
-		submit: function(elem){
-			return "submit" === elem.type;
-		},
-		image: function(elem){
-			return "image" === elem.type;
-		},
-		reset: function(elem){
-			return "reset" === elem.type;
-		},
-		button: function(elem){
-			return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON";
-		},
-		input: function(elem){
-			return /input|select|textarea|button/i.test(elem.nodeName);
-		}
-	},
-	setFilters: {
-		first: function(elem, i){
-			return i === 0;
-		},
-		last: function(elem, i, match, array){
-			return i === array.length - 1;
-		},
-		even: function(elem, i){
-			return i % 2 === 0;
-		},
-		odd: function(elem, i){
-			return i % 2 === 1;
-		},
-		lt: function(elem, i, match){
-			return i < match[3] - 0;
-		},
-		gt: function(elem, i, match){
-			return i > match[3] - 0;
-		},
-		nth: function(elem, i, match){
-			return match[3] - 0 == i;
-		},
-		eq: function(elem, i, match){
-			return match[3] - 0 == i;
-		}
-	},
-	filter: {
-		PSEUDO: function(elem, match, i, array){
-			var name = match[1], filter = Expr.filters[ name ];
-
-			if ( filter ) {
-				return filter( elem, i, match, array );
-			} else if ( name === "contains" ) {
-				return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0;
-			} else if ( name === "not" ) {
-				var not = match[3];
-
-				for ( var i = 0, l = not.length; i < l; i++ ) {
-					if ( not[i] === elem ) {
-						return false;
-					}
-				}
-
-				return true;
-			}
-		},
-		CHILD: function(elem, match){
-			var type = match[1], node = elem;
-			switch (type) {
-				case 'only':
-				case 'first':
-					while (node = node.previousSibling)  {
-						if ( node.nodeType === 1 ) return false;
-					}
-					if ( type == 'first') return true;
-					node = elem;
-				case 'last':
-					while (node = node.nextSibling)  {
-						if ( node.nodeType === 1 ) return false;
-					}
-					return true;
-				case 'nth':
-					var first = match[2], last = match[3];
-
-					if ( first == 1 && last == 0 ) {
-						return true;
-					}
-					
-					var doneName = match[0],
-						parent = elem.parentNode;
-	
-					if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
-						var count = 0;
-						for ( node = parent.firstChild; node; node = node.nextSibling ) {
-							if ( node.nodeType === 1 ) {
-								node.nodeIndex = ++count;
-							}
-						} 
-						parent.sizcache = doneName;
-					}
-					
-					var diff = elem.nodeIndex - last;
-					if ( first == 0 ) {
-						return diff == 0;
-					} else {
-						return ( diff % first == 0 && diff / first >= 0 );
-					}
-			}
-		},
-		ID: function(elem, match){
-			return elem.nodeType === 1 && elem.getAttribute("id") === match;
-		},
-		TAG: function(elem, match){
-			return (match === "*" && elem.nodeType === 1) || elem.nodeName === match;
-		},
-		CLASS: function(elem, match){
-			return (" " + (elem.className || elem.getAttribute("class")) + " ")
-				.indexOf( match ) > -1;
-		},
-		ATTR: function(elem, match){
-			var name = match[1],
-				result = Expr.attrHandle[ name ] ?
-					Expr.attrHandle[ name ]( elem ) :
-					elem[ name ] != null ?
-						elem[ name ] :
-						elem.getAttribute( name ),
-				value = result + "",
-				type = match[2],
-				check = match[4];
-
-			return result == null ?
-				type === "!=" :
-				type === "=" ?
-				value === check :
-				type === "*=" ?
-				value.indexOf(check) >= 0 :
-				type === "~=" ?
-				(" " + value + " ").indexOf(check) >= 0 :
-				!check ?
-				value && result !== false :
-				type === "!=" ?
-				value != check :
-				type === "^=" ?
-				value.indexOf(check) === 0 :
-				type === "$=" ?
-				value.substr(value.length - check.length) === check :
-				type === "|=" ?
-				value === check || value.substr(0, check.length + 1) === check + "-" :
-				false;
-		},
-		POS: function(elem, match, i, array){
-			var name = match[2], filter = Expr.setFilters[ name ];
-
-			if ( filter ) {
-				return filter( elem, i, match, array );
-			}
-		}
-	}
-};
-
-var origPOS = Expr.match.POS;
-
-for ( var type in Expr.match ) {
-	Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
-}
-
-var makeArray = function(array, results) {
-	array = Array.prototype.slice.call( array );
-
-	if ( results ) {
-		results.push.apply( results, array );
-		return results;
-	}
-	
-	return array;
-};
-
-// Perform a simple check to determine if the browser is capable of
-// converting a NodeList to an array using builtin methods.
-try {
-	Array.prototype.slice.call( document.documentElement.childNodes );
-
-// Provide a fallback method if it does not work
-} catch(e){
-	makeArray = function(array, results) {
-		var ret = results || [];
-
-		if ( toString.call(array) === "[object Array]" ) {
-			Array.prototype.push.apply( ret, array );
-		} else {
-			if ( typeof array.length === "number" ) {
-				for ( var i = 0, l = array.length; i < l; i++ ) {
-					ret.push( array[i] );
-				}
-			} else {
-				for ( var i = 0; array[i]; i++ ) {
-					ret.push( array[i] );
-				}
-			}
-		}
-
-		return ret;
-	};
-}
-
-var sortOrder;
-
-if ( document.documentElement.compareDocumentPosition ) {
-	sortOrder = function( a, b ) {
-		var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
-		if ( ret === 0 ) {
-			hasDuplicate = true;
-		}
-		return ret;
-	};
-} else if ( "sourceIndex" in document.documentElement ) {
-	sortOrder = function( a, b ) {
-		var ret = a.sourceIndex - b.sourceIndex;
-		if ( ret === 0 ) {
-			hasDuplicate = true;
-		}
-		return ret;
-	};
-} else if ( document.createRange ) {
-	sortOrder = function( a, b ) {
-		var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
-		aRange.selectNode(a);
-		aRange.collapse(true);
-		bRange.selectNode(b);
-		bRange.collapse(true);
-		var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
-		if ( ret === 0 ) {
-			hasDuplicate = true;
-		}
-		return ret;
-	};
-}
-
-// Check to see if the browser returns elements by name when
-// querying by getElementById (and provide a workaround)
-(function(){
-	// We're going to inject a fake input element with a specified name
-	var form = document.createElement("form"),
-		id = "script" + (new Date).getTime();
-	form.innerHTML = "<input name='" + id + "'/>";
-
-	// Inject it into the root element, check its status, and remove it quickly
-	var root = document.documentElement;
-	root.insertBefore( form, root.firstChild );
-
-	// The workaround has to do additional checks after a getElementById
-	// Which slows things down for other browsers (hence the branching)
-	if ( !!document.getElementById( id ) ) {
-		Expr.find.ID = function(match, context, isXML){
-			if ( typeof context.getElementById !== "undefined" && !isXML ) {
-				var m = context.getElementById(match[1]);
-				return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : [];
-			}
-		};
-
-		Expr.filter.ID = function(elem, match){
-			var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
-			return elem.nodeType === 1 && node && node.nodeValue === match;
-		};
-	}
-
-	root.removeChild( form );
-})();
-
-(function(){
-	// Check to see if the browser returns only elements
-	// when doing getElementsByTagName("*")
-
-	// Create a fake element
-	var div = document.createElement("div");
-	div.appendChild( document.createComment("") );
-
-	// Make sure no comments are found
-	if ( div.getElementsByTagName("*").length > 0 ) {
-		Expr.find.TAG = function(match, context){
-			var results = context.getElementsByTagName(match[1]);
-
-			// Filter out possible comments
-			if ( match[1] === "*" ) {
-				var tmp = [];
-
-				for ( var i = 0; results[i]; i++ ) {
-					if ( results[i].nodeType === 1 ) {
-						tmp.push( results[i] );
-					}
-				}
-
-				results = tmp;
-			}
-
-			return results;
-		};
-	}
-
-	// Check to see if an attribute returns normalized href attributes
-	div.innerHTML = "<a href='#'></a>";
-	if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
-			div.firstChild.getAttribute("href") !== "#" ) {
-		Expr.attrHandle.href = function(elem){
-			return elem.getAttribute("href", 2);
-		};
-	}
-})();
-
-if ( document.querySelectorAll ) (function(){
-	var oldSizzle = Sizzle, div = document.createElement("div");
-	div.innerHTML = "<p class='TEST'></p>";
-
-	// Safari can't handle uppercase or unicode characters when
-	// in quirks mode.
-	if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
-		return;
-	}
-	
-	Sizzle = function(query, context, extra, seed){
-		context = context || document;
-
-		// Only use querySelectorAll on non-XML documents
-		// (ID selectors don't work in non-HTML documents)
-		if ( !seed && context.nodeType === 9 && !isXML(context) ) {
-			try {
-				return makeArray( context.querySelectorAll(query), extra );
-			} catch(e){}
-		}
-		
-		return oldSizzle(query, context, extra, seed);
-	};
-
-	Sizzle.find = oldSizzle.find;
-	Sizzle.filter = oldSizzle.filter;
-	Sizzle.selectors = oldSizzle.selectors;
-	Sizzle.matches = oldSizzle.matches;
-})();
-
-if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){
-	var div = document.createElement("div");
-	div.innerHTML = "<div class='test e'></div><div class='test'></div>";
-
-	// Opera can't find a second classname (in 9.6)
-	if ( div.getElementsByClassName("e").length === 0 )
-		return;
-
-	// Safari caches class attributes, doesn't catch changes (in 3.2)
-	div.lastChild.className = "e";
-
-	if ( div.getElementsByClassName("e").length === 1 )
-		return;
-
-	Expr.order.splice(1, 0, "CLASS");
-	Expr.find.CLASS = function(match, context, isXML) {
-		if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
-			return context.getElementsByClassName(match[1]);
-		}
-	};
-})();
-
-function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-	var sibDir = dir == "previousSibling" && !isXML;
-	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-		var elem = checkSet[i];
-		if ( elem ) {
-			if ( sibDir && elem.nodeType === 1 ){
-				elem.sizcache = doneName;
-				elem.sizset = i;
-			}
-			elem = elem[dir];
-			var match = false;
-
-			while ( elem ) {
-				if ( elem.sizcache === doneName ) {
-					match = checkSet[elem.sizset];
-					break;
-				}
-
-				if ( elem.nodeType === 1 && !isXML ){
-					elem.sizcache = doneName;
-					elem.sizset = i;
-				}
-
-				if ( elem.nodeName === cur ) {
-					match = elem;
-					break;
-				}
-
-				elem = elem[dir];
-			}
-
-			checkSet[i] = match;
-		}
-	}
-}
-
-function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-	var sibDir = dir == "previousSibling" && !isXML;
-	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-		var elem = checkSet[i];
-		if ( elem ) {
-			if ( sibDir && elem.nodeType === 1 ) {
-				elem.sizcache = doneName;
-				elem.sizset = i;
-			}
-			elem = elem[dir];
-			var match = false;
-
-			while ( elem ) {
-				if ( elem.sizcache === doneName ) {
-					match = checkSet[elem.sizset];
-					break;
-				}
-
-				if ( elem.nodeType === 1 ) {
-					if ( !isXML ) {
-						elem.sizcache = doneName;
-						elem.sizset = i;
-					}
-					if ( typeof cur !== "string" ) {
-						if ( elem === cur ) {
-							match = true;
-							break;
-						}
-
-					} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
-						match = elem;
-						break;
-					}
-				}
-
-				elem = elem[dir];
-			}
-
-			checkSet[i] = match;
-		}
-	}
-}
-
-var contains = document.compareDocumentPosition ?  function(a, b){
-	return a.compareDocumentPosition(b) & 16;
-} : function(a, b){
-	return a !== b && (a.contains ? a.contains(b) : true);
-};
-
-var isXML = function(elem){
-	return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
-		!!elem.ownerDocument && isXML( elem.ownerDocument );
-};
-
-var posProcess = function(selector, context){
-	var tmpSet = [], later = "", match,
-		root = context.nodeType ? [context] : context;
-
-	// Position selectors must be done after the filter
-	// And so must :not(positional) so we move all PSEUDOs to the end
-	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
-		later += match[0];
-		selector = selector.replace( Expr.match.PSEUDO, "" );
-	}
-
-	selector = Expr.relative[selector] ? selector + "*" : selector;
-
-	for ( var i = 0, l = root.length; i < l; i++ ) {
-		Sizzle( selector, root[i], tmpSet );
-	}
-
-	return Sizzle.filter( later, tmpSet );
-};
-
-// EXPOSE
-jQuery.find = Sizzle;
-jQuery.filter = Sizzle.filter;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.filters;
-
-Sizzle.selectors.filters.hidden = function(elem){
-	return elem.offsetWidth === 0 || elem.offsetHeight === 0;
-};
-
-Sizzle.selectors.filters.visible = function(elem){
-	return elem.offsetWidth > 0 || elem.offsetHeight > 0;
-};
-
-Sizzle.selectors.filters.animated = function(elem){
-	return jQuery.grep(jQuery.timers, function(fn){
-		return elem === fn.elem;
-	}).length;
-};
-
-jQuery.multiFilter = function( expr, elems, not ) {
-	if ( not ) {
-		expr = ":not(" + expr + ")";
-	}
-
-	return Sizzle.matches(expr, elems);
-};
-
-jQuery.dir = function( elem, dir ){
-	var matched = [], cur = elem[dir];
-	while ( cur && cur != document ) {
-		if ( cur.nodeType == 1 )
-			matched.push( cur );
-		cur = cur[dir];
-	}
-	return matched;
-};
-
-jQuery.nth = function(cur, result, dir, elem){
-	result = result || 1;
-	var num = 0;
-
-	for ( ; cur; cur = cur[dir] )
-		if ( cur.nodeType == 1 && ++num == result )
-			break;
-
-	return cur;
-};
-
-jQuery.sibling = function(n, elem){
-	var r = [];
-
-	for ( ; n; n = n.nextSibling ) {
-		if ( n.nodeType == 1 && n != elem )
-			r.push( n );
-	}
-
-	return r;
-};
-
-return;
-
-window.Sizzle = Sizzle;
-
-})();
-/*
- * A number of helper functions used for managing events.
- * Many of the ideas behind this code originated from
- * Dean Edwards' addEvent library.
- */
-jQuery.event = {
-
-	// Bind an event to an element
-	// Original by Dean Edwards
-	add: function(elem, types, handler, data) {
-		if ( elem.nodeType == 3 || elem.nodeType == 8 )
-			return;
-
-		// For whatever reason, IE has trouble passing the window object
-		// around, causing it to be cloned in the process
-		if ( elem.setInterval && elem != window )
-			elem = window;
-
-		// Make sure that the function being executed has a unique ID
-		if ( !handler.guid )
-			handler.guid = this.guid++;
-
-		// if data is passed, bind to handler
-		if ( data !== undefined ) {
-			// Create temporary function pointer to original handler
-			var fn = handler;
-
-			// Create unique handler function, wrapped around original handler
-			handler = this.proxy( fn );
-
-			// Store data in unique handler
-			handler.data = data;
-		}
-
-		// Init the element's event structure
-		var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),
-			handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){
-				// Handle the second event of a trigger and when
-				// an event is called after a page has unloaded
-				return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
-					jQuery.event.handle.apply(arguments.callee.elem, arguments) :
-					undefined;
-			});
-		// Add elem as a property of the handle function
-		// This is to prevent a memory leak with non-native
-		// event in IE.
-		handle.elem = elem;
-
-		// Handle multiple events separated by a space
-		// jQuery(...).bind("mouseover mouseout", fn);
-		jQuery.each(types.split(/\s+/), function(index, type) {
-			// Namespaced event handlers
-			var namespaces = type.split(".");
-			type = namespaces.shift();
-			handler.type = namespaces.slice().sort().join(".");
-
-			// Get the current list of functions bound to this event
-			var handlers = events[type];
-			
-			if ( jQuery.event.specialAll[type] )
-				jQuery.event.specialAll[type].setup.call(elem, data, namespaces);
-
-			// Init the event handler queue
-			if (!handlers) {
-				handlers = events[type] = {};
-
-				// Check for a special event handler
-				// Only use addEventListener/attachEvent if the special
-				// events handler returns false
-				if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem, data, namespaces) === false ) {
-					// Bind the global event handler to the element
-					if (elem.addEventListener)
-						elem.addEventListener(type, handle, false);
-					else if (elem.attachEvent)
-						elem.attachEvent("on" + type, handle);
-				}
-			}
-
-			// Add the function to the element's handler list
-			handlers[handler.guid] = handler;
-
-			// Keep track of which events have been used, for global triggering
-			jQuery.event.global[type] = true;
-		});
-
-		// Nullify elem to prevent memory leaks in IE
-		elem = null;
-	},
-
-	guid: 1,
-	global: {},
-
-	// Detach an event or set of events from an element
-	remove: function(elem, types, handler) {
-		// don't do events on text and comment nodes
-		if ( elem.nodeType == 3 || elem.nodeType == 8 )
-			return;
-
-		var events = jQuery.data(elem, "events"), ret, index;
-
-		if ( events ) {
-			// Unbind all events for the element
-			if ( types === undefined || (typeof types === "string" && types.charAt(0) == ".") )
-				for ( var type in events )
-					this.remove( elem, type + (types || "") );
-			else {
-				// types is actually an event object here
-				if ( types.type ) {
-					handler = types.handler;
-					types = types.type;
-				}
-
-				// Handle multiple events seperated by a space
-				// jQuery(...).unbind("mouseover mouseout", fn);
-				jQuery.each(types.split(/\s+/), function(index, type){
-					// Namespaced event handlers
-					var namespaces = type.split(".");
-					type = namespaces.shift();
-					var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
-
-					if ( events[type] ) {
-						// remove the given handler for the given type
-						if ( handler )
-							delete events[type][handler.guid];
-
-						// remove all handlers for the given type
-						else
-							for ( var handle in events[type] )
-								// Handle the removal of namespaced events
-								if ( namespace.test(events[type][handle].type) )
-									delete events[type][handle];
-									
-						if ( jQuery.event.specialAll[type] )
-							jQuery.event.specialAll[type].teardown.call(elem, namespaces);
-
-						// remove generic event handler if no more handlers exist
-						for ( ret in events[type] ) break;
-						if ( !ret ) {
-							if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem, namespaces) === false ) {
-								if (elem.removeEventListener)
-									elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
-								else if (elem.detachEvent)
-									elem.detachEvent("on" + type, jQuery.data(elem, "handle"));
-							}
-							ret = null;
-							delete events[type];
-						}
-					}
-				});
-			}
-
-			// Remove the expando if it's no longer used
-			for ( ret in events ) break;
-			if ( !ret ) {
-				var handle = jQuery.data( elem, "handle" );
-				if ( handle ) handle.elem = null;
-				jQuery.removeData( elem, "events" );
-				jQuery.removeData( elem, "handle" );
-			}
-		}
-	},
-
-	// bubbling is internal
-	trigger: function( event, data, elem, bubbling ) {
-		// Event object or event type
-		var type = event.type || event;
-
-		if( !bubbling ){
-			event = typeof event === "object" ?
-				// jQuery.Event object
-				event[expando] ? event :
-				// Object literal
-				jQuery.extend( jQuery.Event(type), event ) :
-				// Just the event type (string)
-				jQuery.Event(type);
-
-			if ( type.indexOf("!") >= 0 ) {
-				event.type = type = type.slice(0, -1);
-				event.exclusive = true;
-			}
-
-			// Handle a global trigger
-			if ( !elem ) {
-				// Don't bubble custom events when global (to avoid too much overhead)
-				event.stopPropagation();
-				// Only trigger if we've ever bound an event for it
-				if ( this.global[type] )
-					jQuery.each( jQuery.cache, function(){
-						if ( this.events && this.events[type] )
-							jQuery.event.trigger( event, data, this.handle.elem );
-					});
-			}
-
-			// Handle triggering a single element
-
-			// don't do events on text and comment nodes
-			if ( !elem || elem.nodeType == 3 || elem.nodeType == 8 )
-				return undefined;
-			
-			// Clean up in case it is reused
-			event.result = undefined;
-			event.target = elem;
-			
-			// Clone the incoming data, if any
-			data = jQuery.makeArray(data);
-			data.unshift( event );
-		}
-
-		event.currentTarget = elem;
-
-		// Trigger the event, it is assumed that "handle" is a function
-		var handle = jQuery.data(elem, "handle");
-		if ( handle )
-			handle.apply( elem, data );
-
-		// Handle triggering native .onfoo handlers (and on links since we don't call .click() for links)
-		if ( (!elem[type] || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on"+type] && elem["on"+type].apply( elem, data ) === false )
-			event.result = false;
-
-		// Trigger the native events (except for clicks on links)
-		if ( !bubbling && elem[type] && !event.isDefaultPrevented() && !(jQuery.nodeName(elem, 'a') && type == "click") ) {
-			this.triggered = true;
-			try {
-				elem[ type ]();
-			// prevent IE from throwing an error for some hidden elements
-			} catch (e) {}
-		}
-
-		this.triggered = false;
-
-		if ( !event.isPropagationStopped() ) {
-			var parent = elem.parentNode || elem.ownerDocument;
-			if ( parent )
-				jQuery.event.trigger(event, data, parent, true);
-		}
-	},
-
-	handle: function(event) {
-		// returned undefined or false
-		var all, handlers;
-
-		event = arguments[0] = jQuery.event.fix( event || window.event );
-		event.currentTarget = this;
-		
-		// Namespaced event handlers
-		var namespaces = event.type.split(".");
-		event.type = namespaces.shift();
-
-		// Cache this now, all = true means, any handler
-		all = !namespaces.length && !event.exclusive;
-		
-		var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
-
-		handlers = ( jQuery.data(this, "events") || {} )[event.type];
-
-		for ( var j in handlers ) {
-			var handler = handlers[j];
-
-			// Filter the functions by class
-			if ( all || namespace.test(handler.type) ) {
-				// Pass in a reference to the handler function itself
-				// So that we can later remove it
-				event.handler = handler;
-				event.data = handler.data;
-
-				var ret = handler.apply(this, arguments);
-
-				if( ret !== undefined ){
-					event.result = ret;
-					if ( ret === false ) {
-						event.preventDefault();
-						event.stopPropagation();
-					}
-				}
-
-				if( event.isImmediatePropagationStopped() )
-					break;
-
-			}
-		}
-	},
-
-	props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
-
-	fix: function(event) {
-		if ( event[expando] )
-			return event;
-
-		// store a copy of the original event object
-		// and "clone" to set read-only properties
-		var originalEvent = event;
-		event = jQuery.Event( originalEvent );
-
-		for ( var i = this.props.length, prop; i; ){
-			prop = this.props[ --i ];
-			event[ prop ] = originalEvent[ prop ];
-		}
-
-		// Fix target property, if necessary
-		if ( !event.target )
-			event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either
-
-		// check if target is a textnode (safari)
-		if ( event.target.nodeType == 3 )
-			event.target = event.target.parentNode;
-
-		// Add relatedTarget, if necessary
-		if ( !event.relatedTarget && event.fromElement )
-			event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
-
-		// Calculate pageX/Y if missing and clientX/Y available
-		if ( event.pageX == null && event.clientX != null ) {
-			var doc = document.documentElement, body = document.body;
-			event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0);
-			event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0);
-		}
-
-		// Add which for key events
-		if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
-			event.which = event.charCode || event.keyCode;
-
-		// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
-		if ( !event.metaKey && event.ctrlKey )
-			event.metaKey = event.ctrlKey;
-
-		// Add which for click: 1 == left; 2 == middle; 3 == right
-		// Note: button is not normalized, so don't use it
-		if ( !event.which && event.button )
-			event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
-
-		return event;
-	},
-
-	proxy: function( fn, proxy ){
-		proxy = proxy || function(){ return fn.apply(this, arguments); };
-		// Set the guid of unique handler to the same of original handler, so it can be removed
-		proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++;
-		// So proxy can be declared as an argument
-		return proxy;
-	},
-
-	special: {
-		ready: {
-			// Make sure the ready event is setup
-			setup: bindReady,
-			teardown: function() {}
-		}
-	},
-	
-	specialAll: {
-		live: {
-			setup: function( selector, namespaces ){
-				jQuery.event.add( this, namespaces[0], liveHandler );
-			},
-			teardown:  function( namespaces ){
-				if ( namespaces.length ) {
-					var remove = 0, name = RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)");
-					
-					jQuery.each( (jQuery.data(this, "events").live || {}), function(){
-						if ( name.test(this.type) )
-							remove++;
-					});
-					
-					if ( remove < 1 )
-						jQuery.event.remove( this, namespaces[0], liveHandler );
-				}
-			}
-		}
-	}
-};
-
-jQuery.Event = function( src ){
-	// Allow instantiation without the 'new' keyword
-	if( !this.preventDefault )
-		return new jQuery.Event(src);
-	
-	// Event object
-	if( src && src.type ){
-		this.originalEvent = src;
-		this.type = src.type;
-	// Event type
-	}else
-		this.type = src;
-
-	// timeStamp is buggy for some events on Firefox(#3843)
-	// So we won't rely on the native value
-	this.timeStamp = now();
-	
-	// Mark it as fixed
-	this[expando] = true;
-};
-
-function returnFalse(){
-	return false;
-}
-function returnTrue(){
-	return true;
-}
-
-// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
-	preventDefault: function() {
-		this.isDefaultPrevented = returnTrue;
-
-		var e = this.originalEvent;
-		if( !e )
-			return;
-		// if preventDefault exists run it on the original event
-		if (e.preventDefault)
-			e.preventDefault();
-		// otherwise set the returnValue property of the original event to false (IE)
-		e.returnValue = false;
-	},
-	stopPropagation: function() {
-		this.isPropagationStopped = returnTrue;
-
-		var e = this.originalEvent;
-		if( !e )
-			return;
-		// if stopPropagation exists run it on the original event
-		if (e.stopPropagation)
-			e.stopPropagation();
-		// otherwise set the cancelBubble property of the original event to true (IE)
-		e.cancelBubble = true;
-	},
-	stopImmediatePropagation:function(){
-		this.isImmediatePropagationStopped = returnTrue;
-		this.stopPropagation();
-	},
-	isDefaultPrevented: returnFalse,
-	isPropagationStopped: returnFalse,
-	isImmediatePropagationStopped: returnFalse
-};
-// Checks if an event happened on an element within another element
-// Used in jQuery.event.special.mouseenter and mouseleave handlers
-var withinElement = function(event) {
-	// Check if mouse(over|out) are still within the same parent element
-	var parent = event.relatedTarget;
-	// Traverse up the tree
-	while ( parent && parent != this )
-		try { parent = parent.parentNode; }
-		catch(e) { parent = this; }
-	
-	if( parent != this ){
-		// set the correct event type
-		event.type = event.data;
-		// handle event if we actually just moused on to a non sub-element
-		jQuery.event.handle.apply( this, arguments );
-	}
-};
-	
-jQuery.each({ 
-	mouseover: 'mouseenter', 
-	mouseout: 'mouseleave'
-}, function( orig, fix ){
-	jQuery.event.special[ fix ] = {
-		setup: function(){
-			jQuery.event.add( this, orig, withinElement, fix );
-		},
-		teardown: function(){
-			jQuery.event.remove( this, orig, withinElement );
-		}
-	};			   
-});
-
-jQuery.fn.extend({
-	bind: function( type, data, fn ) {
-		return type == "unload" ? this.one(type, data, fn) : this.each(function(){
-			jQuery.event.add( this, type, fn || data, fn && data );
-		});
-	},
-
-	one: function( type, data, fn ) {
-		var one = jQuery.event.proxy( fn || data, function(event) {
-			jQuery(this).unbind(event, one);
-			return (fn || data).apply( this, arguments );
-		});
-		return this.each(function(){
-			jQuery.event.add( this, type, one, fn && data);
-		});
-	},
-
-	unbind: function( type, fn ) {
-		return this.each(function(){
-			jQuery.event.remove( this, type, fn );
-		});
-	},
-
-	trigger: function( type, data ) {
-		return this.each(function(){
-			jQuery.event.trigger( type, data, this );
-		});
-	},
-
-	triggerHandler: function( type, data ) {
-		if( this[0] ){
-			var event = jQuery.Event(type);
-			event.preventDefault();
-			event.stopPropagation();
-			jQuery.event.trigger( event, data, this[0] );
-			return event.result;
-		}		
-	},
-
-	toggle: function( fn ) {
-		// Save reference to arguments for access in closure
-		var args = arguments, i = 1;
-
-		// link all the functions, so any of them can unbind this click handler
-		while( i < args.length )
-			jQuery.event.proxy( fn, args[i++] );
-
-		return this.click( jQuery.event.proxy( fn, function(event) {
-			// Figure out which function to execute
-			this.lastToggle = ( this.lastToggle || 0 ) % i;
-
-			// Make sure that clicks stop
-			event.preventDefault();
-
-			// and execute the function
-			return args[ this.lastToggle++ ].apply( this, arguments ) || false;
-		}));
-	},
-
-	hover: function(fnOver, fnOut) {
-		return this.mouseenter(fnOver).mouseleave(fnOut);
-	},
-
-	ready: function(fn) {
-		// Attach the listeners
-		bindReady();
-
-		// If the DOM is already ready
-		if ( jQuery.isReady )
-			// Execute the function immediately
-			fn.call( document, jQuery );
-
-		// Otherwise, remember the function for later
-		else
-			// Add the function to the wait list
-			jQuery.readyList.push( fn );
-
-		return this;
-	},
-	
-	live: function( type, fn ){
-		var proxy = jQuery.event.proxy( fn );
-		proxy.guid += this.selector + type;
-
-		jQuery(document).bind( liveConvert(type, this.selector), this.selector, proxy );
-
-		return this;
-	},
-	
-	die: function( type, fn ){
-		jQuery(document).unbind( liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type } : null );
-		return this;
-	}
-});
-
-function liveHandler( event ){
-	var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"),
-		stop = true,
-		elems = [];
-
-	jQuery.each(jQuery.data(this, "events").live || [], function(i, fn){
-		if ( check.test(fn.type) ) {
-			var elem = jQuery(event.target).closest(fn.data)[0];
-			if ( elem )
-				elems.push({ elem: elem, fn: fn });
-		}
-	});
-
-	elems.sort(function(a,b) {
-		return jQuery.data(a.elem, "closest") - jQuery.data(b.elem, "closest");
-	});
-	
-	jQuery.each(elems, function(){
-		if ( this.fn.call(this.elem, event, this.fn.data) === false )
-			return (stop = false);
-	});
-
-	return stop;
-}
-
-function liveConvert(type, selector){
-	return ["live", type, selector.replace(/\./g, "`").replace(/ /g, "|")].join(".");
-}
-
-jQuery.extend({
-	isReady: false,
-	readyList: [],
-	// Handle when the DOM is ready
-	ready: function() {
-		// Make sure that the DOM is not already loaded
-		if ( !jQuery.isReady ) {
-			// Remember that the DOM is ready
-			jQuery.isReady = true;
-
-			// If there are functions bound, to execute
-			if ( jQuery.readyList ) {
-				// Execute all of them
-				jQuery.each( jQuery.readyList, function(){
-					this.call( document, jQuery );
-				});
-
-				// Reset the list of functions
-				jQuery.readyList = null;
-			}
-
-			// Trigger any bound ready events
-			jQuery(document).triggerHandler("ready");
-		}
-	}
-});
-
-var readyBound = false;
-
-function bindReady(){
-	if ( readyBound ) return;
-	readyBound = true;
-
-	// Mozilla, Opera and webkit nightlies currently support this event
-	if ( document.addEventListener ) {
-		// Use the handy event callback
-		document.addEventListener( "DOMContentLoaded", function(){
-			document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
-			jQuery.ready();
-		}, false );
-
-	// If IE event model is used
-	} else if ( document.attachEvent ) {
-		// ensure firing before onload,
-		// maybe late but safe also for iframes
-		document.attachEvent("onreadystatechange", function(){
-			if ( document.readyState === "complete" ) {
-				document.detachEvent( "onreadystatechange", arguments.callee );
-				jQuery.ready();
-			}
-		});
-
-		// If IE and not an iframe
-		// continually check to see if the document is ready
-		if ( document.documentElement.doScroll && window == window.top ) (function(){
-			if ( jQuery.isReady ) return;
-
-			try {
-				// If IE is used, use the trick by Diego Perini
-				// http://javascript.nwbox.com/IEContentLoaded/
-				document.documentElement.doScroll("left");
-			} catch( error ) {
-				setTimeout( arguments.callee, 0 );
-				return;
-			}
-
-			// and execute any waiting functions
-			jQuery.ready();
-		})();
-	}
-
-	// A fallback to window.onload, that will always work
-	jQuery.event.add( window, "load", jQuery.ready );
-}
-
-jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
-	"mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
-	"change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){
-
-	// Handle event binding
-	jQuery.fn[name] = function(fn){
-		return fn ? this.bind(name, fn) : this.trigger(name);
-	};
-});
-
-// Prevent memory leaks in IE
-// And prevent errors on refresh with events like mouseover in other browsers
-// Window isn't included so as not to unbind existing unload events
-jQuery( window ).bind( 'unload', function(){ 
-	for ( var id in jQuery.cache )
-		// Skip the window
-		if ( id != 1 && jQuery.cache[ id ].handle )
-			jQuery.event.remove( jQuery.cache[ id ].handle.elem );
-}); 
-(function(){
-
-	jQuery.support = {};
-
-	var root = document.documentElement,
-		script = document.createElement("script"),
-		div = document.createElement("div"),
-		id = "script" + (new Date).getTime();
-
-	div.style.display = "none";
-	div.innerHTML = '   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';
-
-	var all = div.getElementsByTagName("*"),
-		a = div.getElementsByTagName("a")[0];
-
-	// Can't get basic test support
-	if ( !all || !all.length || !a ) {
-		return;
-	}
-
-	jQuery.support = {
-		// IE strips leading whitespace when .innerHTML is used
-		leadingWhitespace: div.firstChild.nodeType == 3,
-		
-		// Make sure that tbody elements aren't automatically inserted
-		// IE will insert them into empty tables
-		tbody: !div.getElementsByTagName("tbody").length,
-		
-		// Make sure that you can get all elements in an <object> element
-		// IE 7 always returns no results
-		objectAll: !!div.getElementsByTagName("object")[0]
-			.getElementsByTagName("*").length,
-		
-		// Make sure that link elements get serialized correctly by innerHTML
-		// This requires a wrapper element in IE
-		htmlSerialize: !!div.getElementsByTagName("link").length,
-		
-		// Get the style information from getAttribute
-		// (IE uses .cssText insted)
-		style: /red/.test( a.getAttribute("style") ),
-		
-		// Make sure that URLs aren't manipulated
-		// (IE normalizes it by default)
-		hrefNormalized: a.getAttribute("href") === "/a",
-		
-		// Make sure that element opacity exists
-		// (IE uses filter instead)
-		opacity: a.style.opacity === "0.5",
-		
-		// Verify style float existence
-		// (IE uses styleFloat instead of cssFloat)
-		cssFloat: !!a.style.cssFloat,
-
-		// Will be defined later
-		scriptEval: false,
-		noCloneEvent: true,
-		boxModel: null
-	};
-	
-	script.type = "text/javascript";
-	try {
-		script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
-	} catch(e){}
-
-	root.insertBefore( script, root.firstChild );
-	
-	// Make sure that the execution of code works by injecting a script
-	// tag with appendChild/createTextNode
-	// (IE doesn't support this, fails, and uses .text instead)
-	if ( window[ id ] ) {
-		jQuery.support.scriptEval = true;
-		delete window[ id ];
-	}
-
-	root.removeChild( script );
-
-	if ( div.attachEvent && div.fireEvent ) {
-		div.attachEvent("onclick", function(){
-			// Cloning a node shouldn't copy over any
-			// bound event handlers (IE does this)
-			jQuery.support.noCloneEvent = false;
-			div.detachEvent("onclick", arguments.callee);
-		});
-		div.cloneNode(true).fireEvent("onclick");
-	}
-
-	// Figure out if the W3C box model works as expected
-	// document.body must exist before we can do this
-	jQuery(function(){
-		var div = document.createElement("div");
-		div.style.width = div.style.paddingLeft = "1px";
-
-		document.body.appendChild( div );
-		jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
-		document.body.removeChild( div ).style.display = 'none';
-	});
-})();
-
-var styleFloat = jQuery.support.cssFloat ? "cssFloat" : "styleFloat";
-
-jQuery.props = {
-	"for": "htmlFor",
-	"class": "className",
-	"float": styleFloat,
-	cssFloat: styleFloat,
-	styleFloat: styleFloat,
-	readonly: "readOnly",
-	maxlength: "maxLength",
-	cellspacing: "cellSpacing",
-	rowspan: "rowSpan",
-	tabindex: "tabIndex"
-};
-jQuery.fn.extend({
-	// Keep a copy of the old load
-	_load: jQuery.fn.load,
-
-	load: function( url, params, callback ) {
-		if ( typeof url !== "string" )
-			return this._load( url );
-
-		var off = url.indexOf(" ");
-		if ( off >= 0 ) {
-			var selector = url.slice(off, url.length);
-			url = url.slice(0, off);
-		}
-
-		// Default to a GET request
-		var type = "GET";
-
-		// If the second parameter was provided
-		if ( params )
-			// If it's a function
-			if ( jQuery.isFunction( params ) ) {
-				// We assume that it's the callback
-				callback = params;
-				params = null;
-
-			// Otherwise, build a param string
-			} else if( typeof params === "object" ) {
-				params = jQuery.param( params );
-				type = "POST";
-			}
-
-		var self = this;
-
-		// Request the remote document
-		jQuery.ajax({
-			url: url,
-			type: type,
-			dataType: "html",
-			data: params,
-			complete: function(res, status){
-				// If successful, inject the HTML into all the matched elements
-				if ( status == "success" || status == "notmodified" )
-					// See if a selector was specified
-					self.html( selector ?
-						// Create a dummy div to hold the results
-						jQuery("<div/>")
-							// inject the contents of the document in, removing the scripts
-							// to avoid any 'Permission Denied' errors in IE
-							.append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
-
-							// Locate the specified elements
-							.find(selector) :
-
-						// If not, just inject the full result
-						res.responseText );
-
-				if( callback )
-					self.each( callback, [res.responseText, status, res] );
-			}
-		});
-		return this;
-	},
-
-	serialize: function() {
-		return jQuery.param(this.serializeArray());
-	},
-	serializeArray: function() {
-		return this.map(function(){
-			return this.elements ? jQuery.makeArray(this.elements) : this;
-		})
-		.filter(function(){
-			return this.name && !this.disabled &&
-				(this.checked || /select|textarea/i.test(this.nodeName) ||
-					/text|hidden|password|search/i.test(this.type));
-		})
-		.map(function(i, elem){
-			var val = jQuery(this).val();
-			return val == null ? null :
-				jQuery.isArray(val) ?
-					jQuery.map( val, function(val, i){
-						return {name: elem.name, value: val};
-					}) :
-					{name: elem.name, value: val};
-		}).get();
-	}
-});
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){
-	jQuery.fn[o] = function(f){
-		return this.bind(o, f);
-	};
-});
-
-var jsc = now();
-
-jQuery.extend({
-  
-	get: function( url, data, callback, type ) {
-		// shift arguments if data argument was ommited
-		if ( jQuery.isFunction( data ) ) {
-			callback = data;
-			data = null;
-		}
-
-		return jQuery.ajax({
-			type: "GET",
-			url: url,
-			data: data,
-			success: callback,
-			dataType: type
-		});
-	},
-
-	getScript: function( url, callback ) {
-		return jQuery.get(url, null, callback, "script");
-	},
-
-	getJSON: function( url, data, callback ) {
-		return jQuery.get(url, data, callback, "json");
-	},
-
-	post: function( url, data, callback, type ) {
-		if ( jQuery.isFunction( data ) ) {
-			callback = data;
-			data = {};
-		}
-
-		return jQuery.ajax({
-			type: "POST",
-			url: url,
-			data: data,
-			success: callback,
-			dataType: type
-		});
-	},
-
-	ajaxSetup: function( settings ) {
-		jQuery.extend( jQuery.ajaxSettings, settings );
-	},
-
-	ajaxSettings: {
-		url: location.href,
-		global: true,
-		type: "GET",
-		contentType: "application/x-www-form-urlencoded",
-		processData: true,
-		async: true,
-		/*
-		timeout: 0,
-		data: null,
-		username: null,
-		password: null,
-		*/
-		// Create the request object; Microsoft failed to properly
-		// implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
-		// This function can be overriden by calling jQuery.ajaxSetup
-		xhr:function(){
-			return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
-		},
-		accepts: {
-			xml: "application/xml, text/xml",
-			html: "text/html",
-			script: "text/javascript, application/javascript",
-			json: "application/json, text/javascript",
-			text: "text/plain",
-			_default: "*/*"
-		}
-	},
-
-	// Last-Modified header cache for next request
-	lastModified: {},
-
-	ajax: function( s ) {
-		// Extend the settings, but re-extend 's' so that it can be
-		// checked again later (in the test suite, specifically)
-		s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
-
-		var jsonp, jsre = /=\?(&|$)/g, status, data,
-			type = s.type.toUpperCase();
-
-		// convert data if not already a string
-		if ( s.data && s.processData && typeof s.data !== "string" )
-			s.data = jQuery.param(s.data);
-
-		// Handle JSONP Parameter Callbacks
-		if ( s.dataType == "jsonp" ) {
-			if ( type == "GET" ) {
-				if ( !s.url.match(jsre) )
-					s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?";
-			} else if ( !s.data || !s.data.match(jsre) )
-				s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
-			s.dataType = "json";
-		}
-
-		// Build temporary JSONP function
-		if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) {
-			jsonp = "jsonp" + jsc++;
-
-			// Replace the =? sequence both in the query string and the data
-			if ( s.data )
-				s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
-			s.url = s.url.replace(jsre, "=" + jsonp + "$1");
-
-			// We need to make sure
-			// that a JSONP style response is executed properly
-			s.dataType = "script";
-
-			// Handle JSONP-style loading
-			window[ jsonp ] = function(tmp){
-				data = tmp;
-				success();
-				complete();
-				// Garbage collect
-				window[ jsonp ] = undefined;
-				try{ delete window[ jsonp ]; } catch(e){}
-				if ( head )
-					head.removeChild( script );
-			};
-		}
-
-		if ( s.dataType == "script" && s.cache == null )
-			s.cache = false;
-
-		if ( s.cache === false && type == "GET" ) {
-			var ts = now();
-			// try replacing _= if it is there
-			var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
-			// if nothing was replaced, add timestamp to the end
-			s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
-		}
-
-		// If data is available, append data to url for get requests
-		if ( s.data && type == "GET" ) {
-			s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
-
-			// IE likes to send both get and post data, prevent this
-			s.data = null;
-		}
-
-		// Watch for a new set of requests
-		if ( s.global && ! jQuery.active++ )
-			jQuery.event.trigger( "ajaxStart" );
-
-		// Matches an absolute URL, and saves the domain
-		var parts = /^(\w+:)?\/\/([^\/?#]+)/.exec( s.url );
-
-		// If we're requesting a remote document
-		// and trying to load JSON or Script with a GET
-		if ( s.dataType == "script" && type == "GET" && parts
-			&& ( parts[1] && parts[1] != location.protocol || parts[2] != location.host )){
-
-			var head = document.getElementsByTagName("head")[0];
-			var script = document.createElement("script");
-			script.src = s.url;
-			if (s.scriptCharset)
-				script.charset = s.scriptCharset;
-
-			// Handle Script loading
-			if ( !jsonp ) {
-				var done = false;
-
-				// Attach handlers for all browsers
-				script.onload = script.onreadystatechange = function(){
-					if ( !done && (!this.readyState ||
-							this.readyState == "loaded" || this.readyState == "complete") ) {
-						done = true;
-						success();
-						complete();
-
-						// Handle memory leak in IE
-						script.onload = script.onreadystatechange = null;
-						head.removeChild( script );
-					}
-				};
-			}
-
-			head.appendChild(script);
-
-			// We handle everything using the script element injection
-			return undefined;
-		}
-
-		var requestDone = false;
-
-		// Create the request object
-		var xhr = s.xhr();
-
-		// Open the socket
-		// Passing null username, generates a login popup on Opera (#2865)
-		if( s.username )
-			xhr.open(type, s.url, s.async, s.username, s.password);
-		else
-			xhr.open(type, s.url, s.async);
-
-		// Need an extra try/catch for cross domain requests in Firefox 3
-		try {
-			// Set the correct header, if data is being sent
-			if ( s.data )
-				xhr.setRequestHeader("Content-Type", s.contentType);
-
-			// Set the If-Modified-Since header, if ifModified mode.
-			if ( s.ifModified )
-				xhr.setRequestHeader("If-Modified-Since",
-					jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
-
-			// Set header so the called script knows that it's an XMLHttpRequest
-			xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
-
-			// Set the Accepts header for the server, depending on the dataType
-			xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ?
-				s.accepts[ s.dataType ] + ", */*" :
-				s.accepts._default );
-		} catch(e){}
-
-		// Allow custom headers/mimetypes and early abort
-		if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
-			// Handle the global AJAX counter
-			if ( s.global && ! --jQuery.active )
-				jQuery.event.trigger( "ajaxStop" );
-			// close opended socket
-			xhr.abort();
-			return false;
-		}
-
-		if ( s.global )
-			jQuery.event.trigger("ajaxSend", [xhr, s]);
-
-		// Wait for a response to come back
-		var onreadystatechange = function(isTimeout){
-			// The request was aborted, clear the interval and decrement jQuery.active
-			if (xhr.readyState == 0) {
-				if (ival) {
-					// clear poll interval
-					clearInterval(ival);
-					ival = null;
-					// Handle the global AJAX counter
-					if ( s.global && ! --jQuery.active )
-						jQuery.event.trigger( "ajaxStop" );
-				}
-			// The transfer is complete and the data is available, or the request timed out
-			} else if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) {
-				requestDone = true;
-
-				// clear poll interval
-				if (ival) {
-					clearInterval(ival);
-					ival = null;
-				}
-
-				status = isTimeout == "timeout" ? "timeout" :
-					!jQuery.httpSuccess( xhr ) ? "error" :
-					s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? "notmodified" :
-					"success";
-
-				if ( status == "success" ) {
-					// Watch for, and catch, XML document parse errors
-					try {
-						// process the data (runs the xml through httpData regardless of callback)
-						data = jQuery.httpData( xhr, s.dataType, s );
-					} catch(e) {
-						status = "parsererror";
-					}
-				}
-
-				// Make sure that the request was successful or notmodified
-				if ( status == "success" ) {
-					// Cache Last-Modified header, if ifModified mode.
-					var modRes;
-					try {
-						modRes = xhr.getResponseHeader("Last-Modified");
-					} catch(e) {} // swallow exception thrown by FF if header is not available
-
-					if ( s.ifModified && modRes )
-						jQuery.lastModified[s.url] = modRes;
-
-					// JSONP handles its own success callback
-					if ( !jsonp )
-						success();
-				} else
-					jQuery.handleError(s, xhr, status);
-
-				// Fire the complete handlers
-				complete();
-
-				if ( isTimeout )
-					xhr.abort();
-
-				// Stop memory leaks
-				if ( s.async )
-					xhr = null;
-			}
-		};
-
-		if ( s.async ) {
-			// don't attach the handler to the request, just poll it instead
-			var ival = setInterval(onreadystatechange, 13);
-
-			// Timeout checker
-			if ( s.timeout > 0 )
-				setTimeout(function(){
-					// Check to see if the request is still happening
-					if ( xhr && !requestDone )
-						onreadystatechange( "timeout" );
-				}, s.timeout);
-		}
-
-		// Send the data
-		try {
-			xhr.send(s.data);
-		} catch(e) {
-			jQuery.handleError(s, xhr, null, e);
-		}
-
-		// firefox 1.5 doesn't fire statechange for sync requests
-		if ( !s.async )
-			onreadystatechange();
-
-		function success(){
-			// If a local callback was specified, fire it and pass it the data
-			if ( s.success )
-				s.success( data, status );
-
-			// Fire the global callback
-			if ( s.global )
-				jQuery.event.trigger( "ajaxSuccess", [xhr, s] );
-		}
-
-		function complete(){
-			// Process result
-			if ( s.complete )
-				s.complete(xhr, status);
-
-			// The request was completed
-			if ( s.global )
-				jQuery.event.trigger( "ajaxComplete", [xhr, s] );
-
-			// Handle the global AJAX counter
-			if ( s.global && ! --jQuery.active )
-				jQuery.event.trigger( "ajaxStop" );
-		}
-
-		// return XMLHttpRequest to allow aborting the request etc.
-		return xhr;
-	},
-
-	handleError: function( s, xhr, status, e ) {
-		// If a local callback was specified, fire it
-		if ( s.error ) s.error( xhr, status, e );
-
-		// Fire the global callback
-		if ( s.global )
-			jQuery.event.trigger( "ajaxError", [xhr, s, e] );
-	},
-
-	// Counter for holding the number of active queries
-	active: 0,
-
-	// Determines if an XMLHttpRequest was successful or not
-	httpSuccess: function( xhr ) {
-		try {
-			// IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
-			return !xhr.status && location.protocol == "file:" ||
-				( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223;
-		} catch(e){}
-		return false;
-	},
-
-	// Determines if an XMLHttpRequest returns NotModified
-	httpNotModified: function( xhr, url ) {
-		try {
-			var xhrRes = xhr.getResponseHeader("Last-Modified");
-
-			// Firefox always returns 200. check Last-Modified date
-			return xhr.status == 304 || xhrRes == jQuery.lastModified[url];
-		} catch(e){}
-		return false;
-	},
-
-	httpData: function( xhr, type, s ) {
-		var ct = xhr.getResponseHeader("content-type"),
-			xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,
-			data = xml ? xhr.responseXML : xhr.responseText;
-
-		if ( xml && data.documentElement.tagName == "parsererror" )
-			throw "parsererror";
-			
-		// Allow a pre-filtering function to sanitize the response
-		// s != null is checked to keep backwards compatibility
-		if( s && s.dataFilter )
-			data = s.dataFilter( data, type );
-
-		// The filter can actually parse the response
-		if( typeof data === "string" ){
-
-			// If the type is "script", eval it in global context
-			if ( type == "script" )
-				jQuery.globalEval( data );
-
-			// Get the JavaScript object, if JSON is used.
-			if ( type == "json" )
-				data = window["eval"]("(" + data + ")");
-		}
-		
-		return data;
-	},
-
-	// Serialize an array of form elements or a set of
-	// key/values into a query string
-	param: function( a ) {
-		var s = [ ];
-
-		function add( key, value ){
-			s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
-		};
-
-		// If an array was passed in, assume that it is an array
-		// of form elements
-		if ( jQuery.isArray(a) || a.jquery )
-			// Serialize the form elements
-			jQuery.each( a, function(){
-				add( this.name, this.value );
-			});
-
-		// Otherwise, assume that it's an object of key/value pairs
-		else
-			// Serialize the key/values
-			for ( var j in a )
-				// If the value is an array then the key names need to be repeated
-				if ( jQuery.isArray(a[j]) )
-					jQuery.each( a[j], function(){
-						add( j, this );
-					});
-				else
-					add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );
-
-		// Return the resulting serialization
-		return s.join("&").replace(/%20/g, "+");
-	}
-
-});
-var elemdisplay = {},
-	timerId,
-	fxAttrs = [
-		// height animations
-		[ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
-		// width animations
-		[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
-		// opacity animations
-		[ "opacity" ]
-	];
-
-function genFx( type, num ){
-	var obj = {};
-	jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function(){
-		obj[ this ] = type;
-	});
-	return obj;
-}
-
-jQuery.fn.extend({
-	show: function(speed,callback){
-		if ( speed ) {
-			return this.animate( genFx("show", 3), speed, callback);
-		} else {
-			for ( var i = 0, l = this.length; i < l; i++ ){
-				var old = jQuery.data(this[i], "olddisplay");
-				
-				this[i].style.display = old || "";
-				
-				if ( jQuery.css(this[i], "display") === "none" ) {
-					var tagName = this[i].tagName, display;
-					
-					if ( elemdisplay[ tagName ] ) {
-						display = elemdisplay[ tagName ];
-					} else {
-						var elem = jQuery("<" + tagName + " />").appendTo("body");
-						
-						display = elem.css("display");
-						if ( display === "none" )
-							display = "block";
-						
-						elem.remove();
-						
-						elemdisplay[ tagName ] = display;
-					}
-					
-					jQuery.data(this[i], "olddisplay", display);
-				}
-			}
-
-			// Set the display of the elements in a second loop
-			// to avoid the constant reflow
-			for ( var i = 0, l = this.length; i < l; i++ ){
-				this[i].style.display = jQuery.data(this[i], "olddisplay") || "";
-			}
-			
-			return this;
-		}
-	},
-
-	hide: function(speed,callback){
-		if ( speed ) {
-			return this.animate( genFx("hide", 3), speed, callback);
-		} else {
-			for ( var i = 0, l = this.length; i < l; i++ ){
-				var old = jQuery.data(this[i], "olddisplay");
-				if ( !old && old !== "none" )
-					jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display"));
-			}
-
-			// Set the display of the elements in a second loop
-			// to avoid the constant reflow
-			for ( var i = 0, l = this.length; i < l; i++ ){
-				this[i].style.display = "none";
-			}
-
-			return this;
-		}
-	},
-
-	// Save the old toggle function
-	_toggle: jQuery.fn.toggle,
-
-	toggle: function( fn, fn2 ){
-		var bool = typeof fn === "boolean";
-
-		return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
-			this._toggle.apply( this, arguments ) :
-			fn == null || bool ?
-				this.each(function(){
-					var state = bool ? fn : jQuery(this).is(":hidden");
-					jQuery(this)[ state ? "show" : "hide" ]();
-				}) :
-				this.animate(genFx("toggle", 3), fn, fn2);
-	},
-
-	fadeTo: function(speed,to,callback){
-		return this.animate({opacity: to}, speed, callback);
-	},
-
-	animate: function( prop, speed, easing, callback ) {
-		var optall = jQuery.speed(speed, easing, callback);
-
-		return this[ optall.queue === false ? "each" : "queue" ](function(){
-		
-			var opt = jQuery.extend({}, optall), p,
-				hidden = this.nodeType == 1 && jQuery(this).is(":hidden"),
-				self = this;
-	
-			for ( p in prop ) {
-				if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
-					return opt.complete.call(this);
-
-				if ( ( p == "height" || p == "width" ) && this.style ) {
-					// Store display property
-					opt.display = jQuery.css(this, "display");
-
-					// Make sure that nothing sneaks out
-					opt.overflow = this.style.overflow;
-				}
-			}
-
-			if ( opt.overflow != null )
-				this.style.overflow = "hidden";
-
-			opt.curAnim = jQuery.extend({}, prop);
-
-			jQuery.each( prop, function(name, val){
-				var e = new jQuery.fx( self, opt, name );
-
-				if ( /toggle|show|hide/.test(val) )
-					e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop );
-				else {
-					var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
-						start = e.cur(true) || 0;
-
-					if ( parts ) {
-						var end = parseFloat(parts[2]),
-							unit = parts[3] || "px";
-
-						// We need to compute starting value
-						if ( unit != "px" ) {
-							self.style[ name ] = (end || 1) + unit;
-							start = ((end || 1) / e.cur(true)) * start;
-							self.style[ name ] = start + unit;
-						}
-
-						// If a +=/-= token was provided, we're doing a relative animation
-						if ( parts[1] )
-							end = ((parts[1] == "-=" ? -1 : 1) * end) + start;
-
-						e.custom( start, end, unit );
-					} else
-						e.custom( start, val, "" );
-				}
-			});
-
-			// For JS strict compliance
-			return true;
-		});
-	},
-
-	stop: function(clearQueue, gotoEnd){
-		var timers = jQuery.timers;
-
-		if (clearQueue)
-			this.queue([]);
-
-		this.each(function(){
-			// go in reverse order so anything added to the queue during the loop is ignored
-			for ( var i = timers.length - 1; i >= 0; i-- )
-				if ( timers[i].elem == this ) {
-					if (gotoEnd)
-						// force the next step to be the last
-						timers[i](true);
-					timers.splice(i, 1);
-				}
-		});
-
-		// start the next in the queue if the last step wasn't forced
-		if (!gotoEnd)
-			this.dequeue();
-
-		return this;
-	}
-
-});
-
-// Generate shortcuts for custom animations
-jQuery.each({
-	slideDown: genFx("show", 1),
-	slideUp: genFx("hide", 1),
-	slideToggle: genFx("toggle", 1),
-	fadeIn: { opacity: "show" },
-	fadeOut: { opacity: "hide" }
-}, function( name, props ){
-	jQuery.fn[ name ] = function( speed, callback ){
-		return this.animate( props, speed, callback );
-	};
-});
-
-jQuery.extend({
-
-	speed: function(speed, easing, fn) {
-		var opt = typeof speed === "object" ? speed : {
-			complete: fn || !fn && easing ||
-				jQuery.isFunction( speed ) && speed,
-			duration: speed,
-			easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
-		};
-
-		opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
-			jQuery.fx.speeds[opt.duration] || jQuery.fx.speeds._default;
-
-		// Queueing
-		opt.old = opt.complete;
-		opt.complete = function(){
-			if ( opt.queue !== false )
-				jQuery(this).dequeue();
-			if ( jQuery.isFunction( opt.old ) )
-				opt.old.call( this );
-		};
-
-		return opt;
-	},
-
-	easing: {
-		linear: function( p, n, firstNum, diff ) {
-			return firstNum + diff * p;
-		},
-		swing: function( p, n, firstNum, diff ) {
-			return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
-		}
-	},
-
-	timers: [],
-
-	fx: function( elem, options, prop ){
-		this.options = options;
-		this.elem = elem;
-		this.prop = prop;
-
-		if ( !options.orig )
-			options.orig = {};
-	}
-
-});
-
-jQuery.fx.prototype = {
-
-	// Simple function for setting a style value
-	update: function(){
-		if ( this.options.step )
-			this.options.step.call( this.elem, this.now, this );
-
-		(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
-
-		// Set display property to block for height/width animations
-		if ( ( this.prop == "height" || this.prop == "width" ) && this.elem.style )
-			this.elem.style.display = "block";
-	},
-
-	// Get the current size
-	cur: function(force){
-		if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) )
-			return this.elem[ this.prop ];
-
-		var r = parseFloat(jQuery.css(this.elem, this.prop, force));
-		return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0;
-	},
-
-	// Start an animation from one number to another
-	custom: function(from, to, unit){
-		this.startTime = now();
-		this.start = from;
-		this.end = to;
-		this.unit = unit || this.unit || "px";
-		this.now = this.start;
-		this.pos = this.state = 0;
-
-		var self = this;
-		function t(gotoEnd){
-			return self.step(gotoEnd);
-		}
-
-		t.elem = this.elem;
-
-		if ( t() && jQuery.timers.push(t) && !timerId ) {
-			timerId = setInterval(function(){
-				var timers = jQuery.timers;
-
-				for ( var i = 0; i < timers.length; i++ )
-					if ( !timers[i]() )
-						timers.splice(i--, 1);
-
-				if ( !timers.length ) {
-					clearInterval( timerId );
-					timerId = undefined;
-				}
-			}, 13);
-		}
-	},
-
-	// Simple 'show' function
-	show: function(){
-		// Remember where we started, so that we can go back to it later
-		this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
-		this.options.show = true;
-
-		// Begin the animation
-		// Make sure that we start at a small width/height to avoid any
-		// flash of content
-		this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur());
-
-		// Start by showing the element
-		jQuery(this.elem).show();
-	},
-
-	// Simple 'hide' function
-	hide: function(){
-		// Remember where we started, so that we can go back to it later
-		this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
-		this.options.hide = true;
-
-		// Begin the animation
-		this.custom(this.cur(), 0);
-	},
-
-	// Each step of an animation
-	step: function(gotoEnd){
-		var t = now();
-
-		if ( gotoEnd || t >= this.options.duration + this.startTime ) {
-			this.now = this.end;
-			this.pos = this.state = 1;
-			this.update();
-
-			this.options.curAnim[ this.prop ] = true;
-
-			var done = true;
-			for ( var i in this.options.curAnim )
-				if ( this.options.curAnim[i] !== true )
-					done = false;
-
-			if ( done ) {
-				if ( this.options.display != null ) {
-					// Reset the overflow
-					this.elem.style.overflow = this.options.overflow;
-
-					// Reset the display
-					this.elem.style.display = this.options.display;
-					if ( jQuery.css(this.elem, "display") == "none" )
-						this.elem.style.display = "block";
-				}
-
-				// Hide the element if the "hide" operation was done
-				if ( this.options.hide )
-					jQuery(this.elem).hide();
-
-				// Reset the properties, if the item has been hidden or shown
-				if ( this.options.hide || this.options.show )
-					for ( var p in this.options.curAnim )
-						jQuery.attr(this.elem.style, p, this.options.orig[p]);
-					
-				// Execute the complete function
-				this.options.complete.call( this.elem );
-			}
-
-			return false;
-		} else {
-			var n = t - this.startTime;
-			this.state = n / this.options.duration;
-
-			// Perform the easing function, defaults to swing
-			this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration);
-			this.now = this.start + ((this.end - this.start) * this.pos);
-
-			// Perform the next step of the animation
-			this.update();
-		}
-
-		return true;
-	}
-
-};
-
-jQuery.extend( jQuery.fx, {
-	speeds:{
-		slow: 600,
- 		fast: 200,
- 		// Default speed
- 		_default: 400
-	},
-	step: {
-
-		opacity: function(fx){
-			jQuery.attr(fx.elem.style, "opacity", fx.now);
-		},
-
-		_default: function(fx){
-			if ( fx.elem.style && fx.elem.style[ fx.prop ] != null )
-				fx.elem.style[ fx.prop ] = fx.now + fx.unit;
-			else
-				fx.elem[ fx.prop ] = fx.now;
-		}
-	}
-});
-if ( document.documentElement["getBoundingClientRect"] )
-	jQuery.fn.offset = function() {
-		if ( !this[0] ) return { top: 0, left: 0 };
-		if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] );
-		var box  = this[0].getBoundingClientRect(), doc = this[0].ownerDocument, body = doc.body, docElem = doc.documentElement,
-			clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,
-			top  = box.top  + (self.pageYOffset || jQuery.boxModel && docElem.scrollTop  || body.scrollTop ) - clientTop,
-			left = box.left + (self.pageXOffset || jQuery.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft;
-		return { top: top, left: left };
-	};
-else 
-	jQuery.fn.offset = function() {
-		if ( !this[0] ) return { top: 0, left: 0 };
-		if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] );
-		jQuery.offset.initialized || jQuery.offset.initialize();
-
-		var elem = this[0], offsetParent = elem.offsetParent, prevOffsetParent = elem,
-			doc = elem.ownerDocument, computedStyle, docElem = doc.documentElement,
-			body = doc.body, defaultView = doc.defaultView,
-			prevComputedStyle = defaultView.getComputedStyle(elem, null),
-			top = elem.offsetTop, left = elem.offsetLeft;
-
-		while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
-			computedStyle = defaultView.getComputedStyle(elem, null);
-			top -= elem.scrollTop, left -= elem.scrollLeft;
-			if ( elem === offsetParent ) {
-				top += elem.offsetTop, left += elem.offsetLeft;
-				if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.tagName)) )
-					top  += parseInt( computedStyle.borderTopWidth,  10) || 0,
-					left += parseInt( computedStyle.borderLeftWidth, 10) || 0;
-				prevOffsetParent = offsetParent, offsetParent = elem.offsetParent;
-			}
-			if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" )
-				top  += parseInt( computedStyle.borderTopWidth,  10) || 0,
-				left += parseInt( computedStyle.borderLeftWidth, 10) || 0;
-			prevComputedStyle = computedStyle;
-		}
-
-		if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" )
-			top  += body.offsetTop,
-			left += body.offsetLeft;
-
-		if ( prevComputedStyle.position === "fixed" )
-			top  += Math.max(docElem.scrollTop, body.scrollTop),
-			left += Math.max(docElem.scrollLeft, body.scrollLeft);
-
-		return { top: top, left: left };
-	};
-
-jQuery.offset = {
-	initialize: function() {
-		if ( this.initialized ) return;
-		var body = document.body, container = document.createElement('div'), innerDiv, checkDiv, table, td, rules, prop, bodyMarginTop = body.style.marginTop,
-			html = '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
-
-		rules = { position: 'absolute', top: 0, left: 0, margin: 0, border: 0, width: '1px', height: '1px', visibility: 'hidden' };
-		for ( prop in rules ) container.style[prop] = rules[prop];
-
-		container.innerHTML = html;
-		body.insertBefore(container, body.firstChild);
-		innerDiv = container.firstChild, checkDiv = innerDiv.firstChild, td = innerDiv.nextSibling.firstChild.firstChild;
-
-		this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
-		this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
-
-		innerDiv.style.overflow = 'hidden', innerDiv.style.position = 'relative';
-		this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
-
-		body.style.marginTop = '1px';
-		this.doesNotIncludeMarginInBodyOffset = (body.offsetTop === 0);
-		body.style.marginTop = bodyMarginTop;
-
-		body.removeChild(container);
-		this.initialized = true;
-	},
-
-	bodyOffset: function(body) {
-		jQuery.offset.initialized || jQuery.offset.initialize();
-		var top = body.offsetTop, left = body.offsetLeft;
-		if ( jQuery.offset.doesNotIncludeMarginInBodyOffset )
-			top  += parseInt( jQuery.curCSS(body, 'marginTop',  true), 10 ) || 0,
-			left += parseInt( jQuery.curCSS(body, 'marginLeft', true), 10 ) || 0;
-		return { top: top, left: left };
-	}
-};
-
-
-jQuery.fn.extend({
-	position: function() {
-		var left = 0, top = 0, results;
-
-		if ( this[0] ) {
-			// Get *real* offsetParent
-			var offsetParent = this.offsetParent(),
-
-			// Get correct offsets
-			offset       = this.offset(),
-			parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { top: 0, left: 0 } : offsetParent.offset();
-
-			// Subtract element margins
-			// note: when an element has margin: auto the offsetLeft and marginLeft 
-			// are the same in Safari causing offset.left to incorrectly be 0
-			offset.top  -= num( this, 'marginTop'  );
-			offset.left -= num( this, 'marginLeft' );
-
-			// Add offsetParent borders
-			parentOffset.top  += num( offsetParent, 'borderTopWidth'  );
-			parentOffset.left += num( offsetParent, 'borderLeftWidth' );
-
-			// Subtract the two offsets
-			results = {
-				top:  offset.top  - parentOffset.top,
-				left: offset.left - parentOffset.left
-			};
-		}
-
-		return results;
-	},
-
-	offsetParent: function() {
-		var offsetParent = this[0].offsetParent || document.body;
-		while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static') )
-			offsetParent = offsetParent.offsetParent;
-		return jQuery(offsetParent);
-	}
-});
-
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( ['Left', 'Top'], function(i, name) {
-	var method = 'scroll' + name;
-	
-	jQuery.fn[ method ] = function(val) {
-		if (!this[0]) return null;
-
-		return val !== undefined ?
-
-			// Set the scroll offset
-			this.each(function() {
-				this == window || this == document ?
-					window.scrollTo(
-						!i ? val : jQuery(window).scrollLeft(),
-						 i ? val : jQuery(window).scrollTop()
-					) :
-					this[ method ] = val;
-			}) :
-
-			// Return the scroll offset
-			this[0] == window || this[0] == document ?
-				self[ i ? 'pageYOffset' : 'pageXOffset' ] ||
-					jQuery.boxModel && document.documentElement[ method ] ||
-					document.body[ method ] :
-				this[0][ method ];
-	};
-});
-// Create innerHeight, innerWidth, outerHeight and outerWidth methods
-jQuery.each([ "Height", "Width" ], function(i, name){
-
-	var tl = i ? "Left"  : "Top",  // top or left
-		br = i ? "Right" : "Bottom", // bottom or right
-		lower = name.toLowerCase();
-
-	// innerHeight and innerWidth
-	jQuery.fn["inner" + name] = function(){
-		return this[0] ?
-			jQuery.css( this[0], lower, false, "padding" ) :
-			null;
-	};
-
-	// outerHeight and outerWidth
-	jQuery.fn["outer" + name] = function(margin) {
-		return this[0] ?
-			jQuery.css( this[0], lower, false, margin ? "margin" : "border" ) :
-			null;
-	};
-	
-	var type = name.toLowerCase();
-
-	jQuery.fn[ type ] = function( size ) {
-		// Get window width or height
-		return this[0] == window ?
-			// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
-			document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] ||
-			document.body[ "client" + name ] :
-
-			// Get document width or height
-			this[0] == document ?
-				// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
-				Math.max(
-					document.documentElement["client" + name],
-					document.body["scroll" + name], document.documentElement["scroll" + name],
-					document.body["offset" + name], document.documentElement["offset" + name]
-				) :
-
-				// Get or set width or height on the element
-				size === undefined ?
-					// Get width or height on the element
-					(this.length ? jQuery.css( this[0], type ) : null) :
-
-					// Set the width or height on the element (default to pixels if value is unitless)
-					this.css( type, typeof size === "string" ? size : size + "px" );
-	};
-
-});
-})();

+ 0 - 67
web/NotepadA/utils/colorpicker/js/layout.js

@@ -1,67 +0,0 @@
-(function($){
-	var initLayout = function() {
-		var hash = window.location.hash.replace('#', '');
-		var currentTab = $('ul.navigationTabs a')
-							.bind('click', showTab)
-							.filter('a[rel=' + hash + ']');
-		if (currentTab.size() == 0) {
-			currentTab = $('ul.navigationTabs a:first');
-		}
-		showTab.apply(currentTab.get(0));
-		$('#colorpickerHolder').ColorPicker({flat: true});
-		$('#colorpickerHolder2').ColorPicker({
-			flat: true,
-			color: '#00ff00',
-			onSubmit: function(hsb, hex, rgb) {
-				$('#colorSelector2 div').css('backgroundColor', '#' + hex);
-			}
-		});
-		$('#colorpickerHolder2>div').css('position', 'absolute');
-		var widt = false;
-		$('#colorSelector2').bind('click', function() {
-			$('#colorpickerHolder2').stop().animate({height: widt ? 0 : 173}, 500);
-			widt = !widt;
-		});
-		$('#colorpickerField1, #colorpickerField2, #colorpickerField3').ColorPicker({
-			onSubmit: function(hsb, hex, rgb, el) {
-				$(el).val(hex);
-				$(el).ColorPickerHide();
-			},
-			onBeforeShow: function () {
-				$(this).ColorPickerSetColor(this.value);
-			}
-		})
-		.bind('keyup', function(){
-			$(this).ColorPickerSetColor(this.value);
-		});
-		$('#colorSelector').ColorPicker({
-			color: '#0000ff',
-			onShow: function (colpkr) {
-				$(colpkr).fadeIn(500);
-				return false;
-			},
-			onHide: function (colpkr) {
-				$(colpkr).fadeOut(500);
-				return false;
-			},
-			onChange: function (hsb, hex, rgb) {
-				$('#colorSelector div').css('backgroundColor', '#' + hex);
-			}
-		});
-	};
-	
-	var showTab = function(e) {
-		var tabIndex = $('ul.navigationTabs a')
-							.removeClass('active')
-							.index(this);
-		$(this)
-			.addClass('active')
-			.blur();
-		$('div.tab')
-			.hide()
-				.eq(tabIndex)
-				.show();
-	};
-	
-	EYE.register(initLayout, 'init');
-})(jQuery)

+ 0 - 252
web/NotepadA/utils/colorpicker/js/utils.js

@@ -1,252 +0,0 @@
-/**
- *
- * Utilities
- * Author: Stefan Petre www.eyecon.ro
- * 
- */
-(function($) {
-EYE.extend({
-	getPosition : function(e, forceIt)
-	{
-		var x = 0;
-		var y = 0;
-		var es = e.style;
-		var restoreStyles = false;
-		if (forceIt && jQuery.curCSS(e,'display') == 'none') {
-			var oldVisibility = es.visibility;
-			var oldPosition = es.position;
-			restoreStyles = true;
-			es.visibility = 'hidden';
-			es.display = 'block';
-			es.position = 'absolute';
-		}
-		var el = e;
-		if (el.getBoundingClientRect) { // IE
-			var box = el.getBoundingClientRect();
-			x = box.left + Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) - 2;
-			y = box.top + Math.max(document.documentElement.scrollTop, document.body.scrollTop) - 2;
-		} else {
-			x = el.offsetLeft;
-			y = el.offsetTop;
-			el = el.offsetParent;
-			if (e != el) {
-				while (el) {
-					x += el.offsetLeft;
-					y += el.offsetTop;
-					el = el.offsetParent;
-				}
-			}
-			if (jQuery.browser.safari && jQuery.curCSS(e, 'position') == 'absolute' ) {
-				x -= document.body.offsetLeft;
-				y -= document.body.offsetTop;
-			}
-			el = e.parentNode;
-			while (el && el.tagName.toUpperCase() != 'BODY' && el.tagName.toUpperCase() != 'HTML') 
-			{
-				if (jQuery.curCSS(el, 'display') != 'inline') {
-					x -= el.scrollLeft;
-					y -= el.scrollTop;
-				}
-				el = el.parentNode;
-			}
-		}
-		if (restoreStyles == true) {
-			es.display = 'none';
-			es.position = oldPosition;
-			es.visibility = oldVisibility;
-		}
-		return {x:x, y:y};
-	},
-	getSize : function(e)
-	{
-		var w = parseInt(jQuery.curCSS(e,'width'), 10);
-		var h = parseInt(jQuery.curCSS(e,'height'), 10);
-		var wb = 0;
-		var hb = 0;
-		if (jQuery.curCSS(e, 'display') != 'none') {
-			wb = e.offsetWidth;
-			hb = e.offsetHeight;
-		} else {
-			var es = e.style;
-			var oldVisibility = es.visibility;
-			var oldPosition = es.position;
-			es.visibility = 'hidden';
-			es.display = 'block';
-			es.position = 'absolute';
-			wb = e.offsetWidth;
-			hb = e.offsetHeight;
-			es.display = 'none';
-			es.position = oldPosition;
-			es.visibility = oldVisibility;
-		}
-		return {w:w, h:h, wb:wb, hb:hb};
-	},
-	getClient : function(e)
-	{
-		var h, w;
-		if (e) {
-			w = e.clientWidth;
-			h = e.clientHeight;
-		} else {
-			var de = document.documentElement;
-			w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
-			h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
-		}
-		return {w:w,h:h};
-	},
-	getScroll : function (e)
-	{
-		var t=0, l=0, w=0, h=0, iw=0, ih=0;
-		if (e && e.nodeName.toLowerCase() != 'body') {
-			t = e.scrollTop;
-			l = e.scrollLeft;
-			w = e.scrollWidth;
-			h = e.scrollHeight;
-		} else  {
-			if (document.documentElement) {
-				t = document.documentElement.scrollTop;
-				l = document.documentElement.scrollLeft;
-				w = document.documentElement.scrollWidth;
-				h = document.documentElement.scrollHeight;
-			} else if (document.body) {
-				t = document.body.scrollTop;
-				l = document.body.scrollLeft;
-				w = document.body.scrollWidth;
-				h = document.body.scrollHeight;
-			}
-			if (typeof pageYOffset != 'undefined') {
-				t = pageYOffset;
-				l = pageXOffset;
-			}
-			iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;
-			ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;
-		}
-		return { t: t, l: l, w: w, h: h, iw: iw, ih: ih };
-	},
-	getMargins : function(e, toInteger)
-	{
-		var t = jQuery.curCSS(e,'marginTop') || '';
-		var r = jQuery.curCSS(e,'marginRight') || '';
-		var b = jQuery.curCSS(e,'marginBottom') || '';
-		var l = jQuery.curCSS(e,'marginLeft') || '';
-		if (toInteger)
-			return {
-				t: parseInt(t, 10)||0,
-				r: parseInt(r, 10)||0,
-				b: parseInt(b, 10)||0,
-				l: parseInt(l, 10)
-			};
-		else
-			return {t: t, r: r,	b: b, l: l};
-	},
-	getPadding : function(e, toInteger)
-	{
-		var t = jQuery.curCSS(e,'paddingTop') || '';
-		var r = jQuery.curCSS(e,'paddingRight') || '';
-		var b = jQuery.curCSS(e,'paddingBottom') || '';
-		var l = jQuery.curCSS(e,'paddingLeft') || '';
-		if (toInteger)
-			return {
-				t: parseInt(t, 10)||0,
-				r: parseInt(r, 10)||0,
-				b: parseInt(b, 10)||0,
-				l: parseInt(l, 10)
-			};
-		else
-			return {t: t, r: r,	b: b, l: l};
-	},
-	getBorder : function(e, toInteger)
-	{
-		var t = jQuery.curCSS(e,'borderTopWidth') || '';
-		var r = jQuery.curCSS(e,'borderRightWidth') || '';
-		var b = jQuery.curCSS(e,'borderBottomWidth') || '';
-		var l = jQuery.curCSS(e,'borderLeftWidth') || '';
-		if (toInteger)
-			return {
-				t: parseInt(t, 10)||0,
-				r: parseInt(r, 10)||0,
-				b: parseInt(b, 10)||0,
-				l: parseInt(l, 10)||0
-			};
-		else
-			return {t: t, r: r,	b: b, l: l};
-	},
-	traverseDOM : function(nodeEl, func)
-	{
-		func(nodeEl);
-		nodeEl = nodeEl.firstChild;
-		while(nodeEl){
-			EYE.traverseDOM(nodeEl, func);
-			nodeEl = nodeEl.nextSibling;
-		}
-	},
-	getInnerWidth :  function(el, scroll) {
-		var offsetW = el.offsetWidth;
-		return scroll ? Math.max(el.scrollWidth,offsetW) - offsetW + el.clientWidth:el.clientWidth;
-	},
-	getInnerHeight : function(el, scroll) {
-		var offsetH = el.offsetHeight;
-		return scroll ? Math.max(el.scrollHeight,offsetH) - offsetH + el.clientHeight:el.clientHeight;
-	},
-	getExtraWidth : function(el) {
-		if($.boxModel)
-			return (parseInt($.curCSS(el, 'paddingLeft'))||0)
-				+ (parseInt($.curCSS(el, 'paddingRight'))||0)
-				+ (parseInt($.curCSS(el, 'borderLeftWidth'))||0)
-				+ (parseInt($.curCSS(el, 'borderRightWidth'))||0);
-		return 0;
-	},
-	getExtraHeight : function(el) {
-		if($.boxModel)
-			return (parseInt($.curCSS(el, 'paddingTop'))||0)
-				+ (parseInt($.curCSS(el, 'paddingBottom'))||0)
-				+ (parseInt($.curCSS(el, 'borderTopWidth'))||0)
-				+ (parseInt($.curCSS(el, 'borderBottomWidth'))||0);
-		return 0;
-	},
-	isChildOf: function(parentEl, el, container) {
-		if (parentEl == el) {
-			return true;
-		}
-		if (!el || !el.nodeType || el.nodeType != 1) {
-			return false;
-		}
-		if (parentEl.contains && !$.browser.safari) {
-			return parentEl.contains(el);
-		}
-		if ( parentEl.compareDocumentPosition ) {
-			return !!(parentEl.compareDocumentPosition(el) & 16);
-		}
-		var prEl = el.parentNode;
-		while(prEl && prEl != container) {
-			if (prEl == parentEl)
-				return true;
-			prEl = prEl.parentNode;
-		}
-		return false;
-	},
-	centerEl : function(el, axis)
-	{
-		var clientScroll = EYE.getScroll();
-		var size = EYE.getSize(el);
-		if (!axis || axis == 'vertically')
-			$(el).css(
-				{
-					top: clientScroll.t + ((Math.min(clientScroll.h,clientScroll.ih) - size.hb)/2) + 'px'
-				}
-			);
-		if (!axis || axis == 'horizontally')
-			$(el).css(
-				{
-					left: clientScroll.l + ((Math.min(clientScroll.w,clientScroll.iw) - size.wb)/2) + 'px'
-				}
-			);
-	}
-});
-if (!$.easing.easeout) {
-	$.easing.easeout = function(p, n, firstNum, delta, duration) {
-		return -delta * ((n=n/duration-1)*n*n*n - 1) + firstNum;
-	};
-}
-	
-})(jQuery);

+ 0 - 71
web/NotepadA/utils/gcci/compile.php

@@ -1,71 +0,0 @@
-<?php
-include_once("../../../auth.php");
-include_once("../../../SystemAOB/functions/personalization/configIO.php");
-$configs = getConfig("encoding",true);
-putenv('LANG=en_US.UTF-8'); 
-//Check if the source file is valid
-if (!isset($_GET['source']) || !file_exists("../" . $_GET['source'])){
-	if (file_exists($_GET['source'])){
-		//File located in external storage
-		die("Error. You cannot compile in external storage. " . $_GET['source'] . ' given.');
-	}else{
-		die("Error. Source file not defined or not found. " . $_GET['source'] . ' given.');
-	}
-}
-
-//Check if the path is located inside AOR (Yes, AOR Only, not external media)
-if (!(strpos(realpath("../" . $_GET['source']),realpath($rootPath)) !== false)){
-	die("Error. Script is not located within ArOZ Online Root.");
-}
-$filepath = realpath("../" . $_GET['source']);
-if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
-    //use Tiny gcc for the compilation, output file will be the same name as the source filename
-	$binaryPath = dirname($filepath) . "\\" . basename($filepath,pathinfo($filepath, PATHINFO_EXTENSION)) . "exe";
-	$output = shell_exec('tcc\\tcc.exe "' . $filepath .'" -o "'. $binaryPath . '" 2>&1');
-	if ($configs["winHostEncoding"][3] == "true"){
-		$output = mb_convert_encoding($output, "UTF-8",$configs["forceEncodingType"][3]);
-	}
-	if (trim($output) == ""){
-		if (file_exists($binaryPath)){
-			if (isset($_GET['run'])){
-				//Run the application after compile.
-				$output = shell_exec($binaryPath . ' 2>&1');
-				if ($configs["winHostEncoding"][3] == "true"){
-					$output = mb_convert_encoding($output, "UTF-8",$configs["forceEncodingType"][3]);
-				}
-				echo $output;
-			}else{
-				//Compile only
-				echo 'Compiled succeed. Exported file: ' . $binaryPath;
-			}
-		}else{
-			die("Unknown Error. Compiler do not return anything.");
-		}
-	}else{
-		echo "Error. <br>" . nl2br($output);
-	}
-	
-} else {
-    //Linux, use build in gcc
-    $binaryPath = dirname($filepath) . "/" . basename($filepath,pathinfo($filepath, PATHINFO_EXTENSION)) . "out";
-    $output = shell_exec('gcc "' . $filepath .'" -o "'. $binaryPath . '" 2>&1');
-    if (trim($output) == ""){
-		if (file_exists($binaryPath)){
-			if (isset($_GET['run'])){
-				//Run the application after compile.
-				$output = shell_exec($binaryPath . ' 2>&1');
-				echo nl2br($output);
-			}else{
-				//Compile only
-				echo 'Compiled succeed. Exported file: ' . $binaryPath;
-			}
-		}else{
-			die("Unknown Error. Compiler do not return anything.");
-		}
-	}else{
-		echo "Error. <br>" . nl2br($output);
-	}
-    
-}
-
-?>

+ 0 - 184
web/NotepadA/utils/gcci/index.php

@@ -1,184 +0,0 @@
-<?php
-include_once("../../../auth.php");
-if (isset($_GET['checkBinaryExists'])){
-    $filepath = realpath("../" . $_GET['checkBinaryExists']);
-    $ext = pathinfo($filepath, PATHINFO_EXTENSION);
-    if ($ext !== "c"){
-        die("false");
-    }
-    if (file_exists(dirname($filepath) . "/" . basename($filepath,".c") . ".exe") || file_exists(dirname($filepath) . "/" . basename($filepath,".c") . ".out")){
-        die("true");
-    }else{
-        die("false");
-    }
-}
-?>
-<html>
-<head>
-<title>gcci</title>
-<link rel="stylesheet" href="../../../script/tocas/tocas.css">
-<script src="src/jquery.min.js"></script>
-<script src="../../../script/ao_module.js"></script>
-<style>
-    body{
-        background-color:white;
-    }
-	.invalid{
-		color:#c23030;
-	}
-	.ready{
-		color:#30c257;
-	}
-	.error{
-		background-color:#f7e5e4;
-	}
-	.testcases{
-	    margin-top:8px;
-	    width:100%;
-	    display:none;
-	}
-	.terminalBlock{
-	    background-color:black;
-	    font-family: monospace; 
-	    padding:8px;
-	    color:white;
-	}
-</style>
-</head>
-<body>
-<br>
-<div class="ts container">
-Current Script: <span id="scriptname"></span><br>
-<span id="status"></span><br>
-<button class="tiny ts button"  onClick="$('.testcases').slideToggle('fast');"><i class="caret down icon"></i>Test Cases</button>
-<button class="tiny ts button" style="margin-right:6px;" onClick="compile();">Compile Only</button>
-<button class="tiny ts primary button"  onClick="compile(true);">Compile & Run</button>
-<div class="testcases">
-    <p>
-        Fill in the input below for testing paramters.<br>
-        Example: <code>-h</code> will print out the result for <code>./runThis -h</code>.
-    </p>
-    <div class="ts fluid input" style="padding-bottom:8px !important;">
-        <textarea id="testcases" placeholder="Test Parameter, each test occupy one line."></textarea>
-    </div>
-    <button class="tiny ts primary button"  onClick="test();">Run Test Cases</button>
-</div>
-<br>
-<div class="ts divider"></div>
-<div id="compileResult" class="ts text container" style="padding:10px;">
-    
-</div>
-<div id="terminalOutput">
-    
-</div>
-</div>
-<br><br>
-<script>
-var parentUID = ao_module_parentID;
-var currentFileIsSourceCode = false;
-var currentSource = "";
-
-checkParentFocusDocument();
-setInterval(checkParentFocusDocument,3000);
-//Recover the test case data if exists.
-var testcases = ao_module_getStorage("NotepadA","gcci-testcase");
-if (!(testcases == null || testcases == undefined)){
-    $('#testcases').val(testcases);
-}
-
-$('#testcases').bind('input propertychange', function() {
-    //Try to store the value into the browser's localstorage
-    ao_module_saveStorage("NotepadA","gcci-testcase",$('#testcases').val());
-});
-
-
-function test(){
-    $.get("index.php?checkBinaryExists=" + currentSource,function(data){
-        if (data == "true"){
-            //Run the test
-            let parameters = $("#testcases").val().split("\n");
-            var sendObject = JSON.stringify(parameters);
-            $.get("test.php?testpara=" + sendObject + "&source=" + currentSource,function(data){
-                if (data.includes("ERROR") == false){
-                    $("#terminalOutput").html("");
-                    for (var i =0; i < data.length; i++){
-                        $("#terminalOutput").append('<div class="terminalBlock">\
-                                >' + basename(currentSource) + ' ' + parameters[i] + '<br>\
-                                ' + data[i] + '\
-                        </div>');
-                    }
-                }
-            });
-        }else{
-            alert("Execution file not found. Please compile your code first before testing.");
-        }
-    });
-}
-
-function compile(run=false){
-    $("#terminalOutput").html("");
-    if (!currentFileIsSourceCode){
-        if (!confirm("This doesn't seems like a c source code file. Compile anyway?")){
-            return;
-        }
-    }
-	$("#compileResult").text("Waiting for server response...");
-	var command = "";
-	if (run){
-		command = "&run";
-	}
-	$.ajax({url: "compile.php?source=" + currentSource + command,
-	success: function(data){
-				$("#compileResult").html(data);
-				if (data.includes("Error")){
-					$("#compileResult").addClass("error");
-				}else{
-					$("#compileResult").removeClass("error");
-				}
-			}
-	});
-}
-
-function checkParentFocusDocument(){
-	var parentDOM = parent.document.getElementById(parentUID);
-	var editor = $(parentDOM).find("iframe")[0].contentWindow.document;
-	var focusedDocument = $(editor).find(".fileTab.focused");
-	if (focusedDocument.length == 0){
-		//No document focused
-		return;
-	}
-	var currentFilepath = $(focusedDocument).attr("filename");
-	$("#scriptname").text(basename(currentFilepath));
-	currentSource = currentFilepath;
-	if (getFileExtension(currentFilepath) == "c"){
-		//This is a c source code file
-		$("#status").text("Ready to compile");
-		$("#status").removeClass("invalid").addClass("ready");
-		currentFileIsSourceCode = true;
-	}else{
-		//This is not a c source code file
-		$("#status").text("Not C source code");
-		$("#status").removeClass("ready").addClass("invalid");
-		currentFileIsSourceCode = false;
-	}
-}
-
-function basename(filepath){
-	if (filepath.includes("/")){
-		var tmp = filepath.split("/");
-		return tmp.pop();
-	}else{
-		return filepath;
-	}
-}
-
-function getFileExtension(filepath){
-	if (filepath.includes(".") == false){
-		return "";
-	}
-	var tmp = filepath.split(".");
-	return tmp.pop();
-}
-</script>
-</body>
-</html>

+ 0 - 1
web/NotepadA/utils/gcci/output.txt

@@ -1 +0,0 @@
->(null)

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 1
web/NotepadA/utils/gcci/src/jquery.min.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
web/NotepadA/utils/gcci/src/tocas.css


+ 0 - 114
web/NotepadA/utils/gcci/tcc/doc/readme.txt

@@ -1,114 +0,0 @@
-
-    TinyCC
-    ======
-
-    This file contains some additional information for usage of TinyCC
-    under MS-Windows:
-
-
-    Overview:
-    --------- 
-    TinyCC (aka TCC) is a small but hyperfast C compiler, written by
-    Fabrice Bellard.
-
-    TinyCC for MS-Windows can produce console applications, native 
-    windows GUI programs and DLL's.
-
-    The package with under 300kb includes a complete C-compiler with
-    header files and basic system library support.
-
-    With the -run switch you can run C-sources without any linking
-    directly from the command line.
-
-    TinyCC can be used as dynamic code generator library in your own
-    program.
-
-    TinyCC can of course compile itself.
-
-
-    Compilation:  (omit that if you use the binary ZIP package)
-    ------------
-    You can use the MinGW and MSYS tools available at
-    http://www.mingw.org to compile TCC for Windows. Untar the TCC
-    archive and type in the MSYS shell:
-    
-       ./configure
-       make
-       make install 
-
-       TCC is installed in c:\Program Files\tcc
-
-    Alternatively you can use win32\build-tcc.bat to compile TCC
-    with just gcc and ar from MINGW. To install, copy the entire
-    contents of the win32 directory to where you want.
-
-
-    Installation: (from the binary ZIP package)
-    -------------
-    Just unzip the package to a directory anywhere on your computer.
-    
-    The binary package does not include libtcc. If you want tcc as
-    dynamic code generator, please use the source code distribution.
-
-
-    Examples:
-    ---------
-    For the 'Fibonacci' console example type from the command line:
-
-        tcc examples\fib.c
-
-    For the 'Hello Windows' GUI example:
-
-        tcc examples\hello_win.c
-
-    For the 'Hello DLL' example:
-
-        tcc -shared examples\dll.c
-        tcc examples\hello_dll.c examples\dll.def
-
-
-    Import Definition Files:
-    ------------------------
-    To link with Windows system DLLs, TinyCC uses import definition
-    files (.def) instead of libraries.
-
-    The included 'tiny_impdef' program may be used to make additional 
-    .def files for any DLL. For example:
-
-        tiny_impdef.exe opengl32.dll
-
-    To use it, put the opengl32.def file into the tcc/lib directory,
-    and specify -lopengl32 at the tcc commandline.
-
-
-    Resource Files:
-    ---------------
-    TinyCC-PE can now link windows resources in coff format as generated
-    by MINGW's windres.exe. For example:
-
-        windres -O coff app.rc -o appres.o
-        tcc app.c appres.o -o app.exe
-
-
-    Tiny Libmaker:
-    --------------
-    The included tiny_libmaker tool by Timovj Lahde can be used as
-    'ar' replacement to make a library from several object files.
-
-
-    Header Files:
-    -------------
-    The system header files (except _mingw.h) are from the mingw
-    distribution (http://www.mingw.org/).
-
-
-    Documentation and License:
-    --------------------------
-    TCC is distributed under the GNU Lesser General Public License
-    (see COPYING file).
-
-    Please read tcc-doc.html to have all the features of TCC. Also 
-    visit: http://fabrice.bellard.free.fr/tcc/
-
-    
-    -- [email protected]

+ 0 - 2331
web/NotepadA/utils/gcci/tcc/doc/tcc-doc.html

@@ -1,2331 +0,0 @@
-<HTML>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on March, 22  2008 by texi2html 1.64 -->
-<!-- 
-Written by: Lionel Cons <[email protected]> (original author)
-			Karl Berry  <[email protected]>
-			Olaf Bachmann <[email protected]>
-			and many others.
-Maintained by: Olaf Bachmann <[email protected]>
-Send bugs and suggestions to <[email protected]>
- 
--->
-<HEAD>
-<TITLE>Tiny C Compiler Reference Documentation: </TITLE>
-
-<META NAME="description" CONTENT="Tiny C Compiler Reference Documentation: ">
-<META NAME="keywords" CONTENT="Tiny C Compiler Reference Documentation: ">
-<META NAME="resource-type" CONTENT="document">
-<META NAME="distribution" CONTENT="global">
-<META NAME="Generator" CONTENT="texi2html 1.64">
-
-</HEAD>
-
-<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
-
-<A NAME="SEC1"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC2"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<P>
-
-<A NAME="Introduction"></A>
-<H1> 1. Introduction </H1>
-<!--docid::SEC1::-->
-<P>
-
-TinyCC (aka TCC) is a small but hyper fast C compiler. Unlike other C
-compilers, it is meant to be self-relying: you do not need an
-external assembler or linker because TCC does that for you.
-</P><P>
-
-TCC compiles so <EM>fast</EM> that even for big projects <CODE>Makefile</CODE>s may
-not be necessary. 
-</P><P>
-
-TCC not only supports ANSI C, but also most of the new ISO C99
-standard and many GNUC extensions including inline assembly.
-</P><P>
-
-TCC can also be used to make <EM>C scripts</EM>, i.e. pieces of C source
-that you run as a Perl or Python script. Compilation is so fast that
-your script will be as fast as if it was an executable.
-</P><P>
-
-TCC can also automatically generate memory and bound checks
-(see section <A HREF="tcc-doc.html#SEC21">6. TinyCC Memory and Bound checks</A>) while allowing all C pointers operations. TCC can do
-these checks even if non patched libraries are used.
-</P><P>
-
-With <CODE>libtcc</CODE>, you can use TCC as a backend for dynamic code
-generation (see section <A HREF="tcc-doc.html#SEC22">7. The <CODE>libtcc</CODE> library</A>).
-</P><P>
-
-TCC mainly supports the i386 target on Linux and Windows. There are alpha
-ports for the ARM (<CODE>arm-tcc</CODE>) and the TMS320C67xx targets
-(<CODE>c67-tcc</CODE>). More information about the ARM port is available at
-<A HREF="http://lists.gnu.org/archive/html/tinycc-devel/2003-10/msg00044.html">http://lists.gnu.org/archive/html/tinycc-devel/2003-10/msg00044.html</A>.
-</P><P>
-
-<A NAME="Invoke"></A>
-<HR SIZE="6">
-<A NAME="SEC2"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC3"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> 2. Command line invocation </H1>
-<!--docid::SEC2::-->
-<P>
-
-[This manual documents version 0.9.24 of the Tiny C Compiler]
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC3"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC2"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC4"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.1 Quick start </H2>
-<!--docid::SEC3::-->
-<P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>usage: tcc [options] [<VAR>infile1</VAR> <VAR>infile2</VAR><small>...</small>] [<SAMP>`-run'</SAMP> <VAR>infile</VAR> <VAR>args</VAR><small>...</small>]
-</pre></td></tr></table></P><P>
-
-TCC options are a very much like gcc options. The main difference is that TCC
-can also execute directly the resulting program and give it runtime
-arguments.
-</P><P>
-
-Here are some examples to understand the logic:
-</P><P>
-
-<DL COMPACT>
-<DT><CODE><SAMP>`tcc -run a.c'</SAMP></CODE>
-<DD>Compile <TT>`a.c'</TT> and execute it directly
-<P>
-
-<DT><CODE><SAMP>`tcc -run a.c arg1'</SAMP></CODE>
-<DD>Compile a.c and execute it directly. arg1 is given as first argument to
-the <CODE>main()</CODE> of a.c.
-<P>
-
-<DT><CODE><SAMP>`tcc a.c -run b.c arg1'</SAMP></CODE>
-<DD>Compile <TT>`a.c'</TT> and <TT>`b.c'</TT>, link them together and execute them. arg1 is given
-as first argument to the <CODE>main()</CODE> of the resulting program. Because
-multiple C files are specified, <SAMP>`--'</SAMP> are necessary to clearly separate the
-program arguments from the TCC options.
-<P>
-
-<DT><CODE><SAMP>`tcc -o myprog a.c b.c'</SAMP></CODE>
-<DD>Compile <TT>`a.c'</TT> and <TT>`b.c'</TT>, link them and generate the executable <TT>`myprog'</TT>.
-<P>
-
-<DT><CODE><SAMP>`tcc -o myprog a.o b.o'</SAMP></CODE>
-<DD>link <TT>`a.o'</TT> and <TT>`b.o'</TT> together and generate the executable <TT>`myprog'</TT>.
-<P>
-
-<DT><CODE><SAMP>`tcc -c a.c'</SAMP></CODE>
-<DD>Compile <TT>`a.c'</TT> and generate object file <TT>`a.o'</TT>.
-<P>
-
-<DT><CODE><SAMP>`tcc -c asmfile.S'</SAMP></CODE>
-<DD>Preprocess with C preprocess and assemble <TT>`asmfile.S'</TT> and generate
-object file <TT>`asmfile.o'</TT>.
-<P>
-
-<DT><CODE><SAMP>`tcc -c asmfile.s'</SAMP></CODE>
-<DD>Assemble (but not preprocess) <TT>`asmfile.s'</TT> and generate object file
-<TT>`asmfile.o'</TT>.
-<P>
-
-<DT><CODE><SAMP>`tcc -r -o ab.o a.c b.c'</SAMP></CODE>
-<DD>Compile <TT>`a.c'</TT> and <TT>`b.c'</TT>, link them together and generate the object file <TT>`ab.o'</TT>.
-<P>
-
-</DL>
-<P>
-
-Scripting:
-</P><P>
-
-TCC can be invoked from <EM>scripts</EM>, just as shell scripts. You just
-need to add <CODE>#!/usr/local/bin/tcc -run</CODE> at the start of your C source:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>#!/usr/local/bin/tcc -run
-#include &#60;stdio.h&#62;
-
-int main() 
-{
-    printf("Hello World\n");
-    return 0;
-}
-</pre></td></tr></table></P><P>
-
-<HR SIZE="6">
-<A NAME="SEC4"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC3"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC5"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.2 Option summary </H2>
-<!--docid::SEC4::-->
-<P>
-
-General Options:
-</P><P>
-
-<DL COMPACT>
-<DT><SAMP>`-v'</SAMP>
-<DD>Display current TCC version.
-<P>
-
-<DT><SAMP>`-c'</SAMP>
-<DD>Generate an object file (<SAMP>`-o'</SAMP> option must also be given).
-<P>
-
-<DT><SAMP>`-o outfile'</SAMP>
-<DD>Put object file, executable, or dll into output file <TT>`outfile'</TT>.
-<P>
-
-<DT><SAMP>`-Bdir'</SAMP>
-<DD>Set the path where the tcc internal libraries can be found (default is
-<TT>`PREFIX/lib/tcc'</TT>).
-<P>
-
-<DT><SAMP>`-bench'</SAMP>
-<DD>Output compilation statistics.
-<P>
-
-<DT><SAMP>`-run source [args...]'</SAMP>
-<DD><P>
-
-Compile file <VAR>source</VAR> and run it with the command line arguments
-<VAR>args</VAR>. In order to be able to give more than one argument to a
-script, several TCC options can be given <EM>after</EM> the
-<SAMP>`-run'</SAMP> option, separated by spaces. Example:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>tcc "-run -L/usr/X11R6/lib -lX11" ex4.c
-</pre></td></tr></table></P><P>
-
-In a script, it gives the following header:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>#!/usr/local/bin/tcc -run -L/usr/X11R6/lib -lX11
-#include &#60;stdlib.h&#62;
-int main(int argc, char **argv)
-{
-    ...
-}
-</pre></td></tr></table></P><P>
-
-</DL>
-<P>
-
-Preprocessor options:
-</P><P>
-
-<DL COMPACT>
-<DT><SAMP>`-Idir'</SAMP>
-<DD>Specify an additional include path. Include paths are searched in the
-order they are specified.
-<P>
-
-System include paths are always searched after. The default system
-include paths are: <TT>`/usr/local/include'</TT>, <TT>`/usr/include'</TT>
-and <TT>`PREFIX/lib/tcc/include'</TT>. (<TT>`PREFIX'</TT> is usually
-<TT>`/usr'</TT> or <TT>`/usr/local'</TT>).
-</P><P>
-
-<DT><SAMP>`-Dsym[=val]'</SAMP>
-<DD>Define preprocessor symbol <SAMP>`sym'</SAMP> to
-val. If val is not present, its value is <SAMP>`1'</SAMP>. Function-like macros can
-also be defined: <SAMP>`-DF(a)=a+1'</SAMP>
-<P>
-
-<DT><SAMP>`-Usym'</SAMP>
-<DD>Undefine preprocessor symbol <SAMP>`sym'</SAMP>.
-</DL>
-<P>
-
-Compilation flags:
-</P><P>
-
-Note: each of the following warning options has a negative form beginning with
-<SAMP>`-fno-'</SAMP>.
-</P><P>
-
-<DL COMPACT>
-<DT><SAMP>`-funsigned-char'</SAMP>
-<DD>Let the <CODE>char</CODE> type be unsigned.
-<P>
-
-<DT><SAMP>`-fsigned-char'</SAMP>
-<DD>Let the <CODE>char</CODE> type be signed.
-<P>
-
-<DT><SAMP>`-fno-common'</SAMP>
-<DD>Do not generate common symbols for uninitialized data.
-<P>
-
-<DT><SAMP>`-fleading-underscore'</SAMP>
-<DD>Add a leading underscore at the beginning of each C symbol.
-<P>
-
-</DL>
-<P>
-
-Warning options:
-</P><P>
-
-<DL COMPACT>
-<DT><SAMP>`-w'</SAMP>
-<DD>Disable all warnings.
-<P>
-
-</DL>
-<P>
-
-Note: each of the following warning options has a negative form beginning with
-<SAMP>`-Wno-'</SAMP>.
-</P><P>
-
-<DL COMPACT>
-<DT><SAMP>`-Wimplicit-function-declaration'</SAMP>
-<DD>Warn about implicit function declaration.
-<P>
-
-<DT><SAMP>`-Wunsupported'</SAMP>
-<DD>Warn about unsupported GCC features that are ignored by TCC.
-<P>
-
-<DT><SAMP>`-Wwrite-strings'</SAMP>
-<DD>Make string constants be of type <CODE>const char *</CODE> instead of <CODE>char
-*</CODE>.
-<P>
-
-<DT><SAMP>`-Werror'</SAMP>
-<DD>Abort compilation if warnings are issued.
-<P>
-
-<DT><SAMP>`-Wall'</SAMP>
-<DD>Activate all warnings, except <SAMP>`-Werror'</SAMP>, <SAMP>`-Wunusupported'</SAMP> and
-<SAMP>`-Wwrite-strings'</SAMP>.
-<P>
-
-</DL>
-<P>
-
-Linker options:
-</P><P>
-
-<DL COMPACT>
-<DT><SAMP>`-Ldir'</SAMP>
-<DD>Specify an additional static library path for the <SAMP>`-l'</SAMP> option. The
-default library paths are <TT>`/usr/local/lib'</TT>, <TT>`/usr/lib'</TT> and <TT>`/lib'</TT>.
-<P>
-
-<DT><SAMP>`-lxxx'</SAMP>
-<DD>Link your program with dynamic library libxxx.so or static library
-libxxx.a. The library is searched in the paths specified by the
-<SAMP>`-L'</SAMP> option.
-<P>
-
-<DT><SAMP>`-shared'</SAMP>
-<DD>Generate a shared library instead of an executable (<SAMP>`-o'</SAMP> option
-must also be given).
-<P>
-
-<DT><SAMP>`-static'</SAMP>
-<DD>Generate a statically linked executable (default is a shared linked
-executable) (<SAMP>`-o'</SAMP> option must also be given).
-<P>
-
-<DT><SAMP>`-rdynamic'</SAMP>
-<DD>Export global symbols to the dynamic linker. It is useful when a library
-opened with <CODE>dlopen()</CODE> needs to access executable symbols.
-<P>
-
-<DT><SAMP>`-r'</SAMP>
-<DD>Generate an object file combining all input files (<SAMP>`-o'</SAMP> option must
-also be given).
-<P>
-
-<DT><SAMP>`-Wl,-Ttext,address'</SAMP>
-<DD>Set the start of the .text section to <VAR>address</VAR>.
-<P>
-
-<DT><SAMP>`-Wl,--oformat,fmt'</SAMP>
-<DD>Use <VAR>fmt</VAR> as output format. The supported output formats are:
-<DL COMPACT>
-<DT><CODE>elf32-i386</CODE>
-<DD>ELF output format (default)
-<DT><CODE>binary</CODE>
-<DD>Binary image (only for executable output)
-<DT><CODE>coff</CODE>
-<DD>COFF output format (only for executable output for TMS320C67xx target)
-</DL>
-<P>
-
-</DL>
-<P>
-
-Debugger options:
-</P><P>
-
-<DL COMPACT>
-<DT><SAMP>`-g'</SAMP>
-<DD>Generate run time debug information so that you get clear run time
-error messages: <CODE> test.c:68: in function 'test5()': dereferencing
-invalid pointer</CODE> instead of the laconic <CODE>Segmentation
-fault</CODE>.
-<P>
-
-<DT><SAMP>`-b'</SAMP>
-<DD>Generate additional support code to check
-memory allocations and array/pointer bounds. <SAMP>`-g'</SAMP> is implied. Note
-that the generated code is slower and bigger in this case.
-<P>
-
-<DT><SAMP>`-bt N'</SAMP>
-<DD>Display N callers in stack traces. This is useful with <SAMP>`-g'</SAMP> or
-<SAMP>`-b'</SAMP>.
-<P>
-
-</DL>
-<P>
-
-Note: GCC options <SAMP>`-Ox'</SAMP>, <SAMP>`-fx'</SAMP> and <SAMP>`-mx'</SAMP> are
-ignored.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC5"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC4"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC6"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> 3. C language support </H1>
-<!--docid::SEC5::-->
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC6"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC5"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC7"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 3.1 ANSI C </H2>
-<!--docid::SEC6::-->
-<P>
-
-TCC implements all the ANSI C standard, including structure bit fields
-and floating point numbers (<CODE>long double</CODE>, <CODE>double</CODE>, and
-<CODE>float</CODE> fully supported).
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC7"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC6"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC8"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 3.2 ISOC99 extensions </H2>
-<!--docid::SEC7::-->
-<P>
-
-TCC implements many features of the new C standard: ISO C99. Currently
-missing items are: complex and imaginary numbers and variable length
-arrays.
-</P><P>
-
-Currently implemented ISOC99 features:
-</P><P>
-
-<UL>
-
-<LI>64 bit <CODE>long long</CODE> types are fully supported.
-<P>
-
-<LI>The boolean type <CODE>_Bool</CODE> is supported.
-<P>
-
-<LI><CODE>__func__</CODE> is a string variable containing the current
-function name.
-<P>
-
-<LI>Variadic macros: <CODE>__VA_ARGS__</CODE> can be used for
-   function-like macros:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>    #define dprintf(level, __VA_ARGS__) printf(__VA_ARGS__)
-</pre></td></tr></table><P>
-
-<CODE>dprintf</CODE> can then be used with a variable number of parameters.
-</P><P>
-
-<LI>Declarations can appear anywhere in a block (as in C++).
-<P>
-
-<LI>Array and struct/union elements can be initialized in any order by
-  using designators:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>    struct { int x, y; } st[10] = { [0].x = 1, [0].y = 2 };
-
-    int tab[10] = { 1, 2, [5] = 5, [9] = 9};
-</pre></td></tr></table>    
-<LI>Compound initializers are supported:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>    int *p = (int []){ 1, 2, 3 };
-</pre></td></tr></table>to initialize a pointer pointing to an initialized array. The same
-works for structures and strings.
-<P>
-
-<LI>Hexadecimal floating point constants are supported:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>          double d = 0x1234p10;
-</pre></td></tr></table><P>
-
-is the same as writing 
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>          double d = 4771840.0;
-</pre></td></tr></table></P><P>
-
-<LI><CODE>inline</CODE> keyword is ignored.
-<P>
-
-<LI><CODE>restrict</CODE> keyword is ignored.
-</UL>
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC8"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC7"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC9"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 3.3 GNU C extensions </H2>
-<!--docid::SEC8::-->
-<P>
-
-TCC implements some GNU C extensions:
-</P><P>
-
-<UL>
-
-<LI>array designators can be used without '=':
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>    int a[10] = { [0] 1, [5] 2, 3, 4 };
-</pre></td></tr></table><P>
-
-<LI>Structure field designators can be a label:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>    struct { int x, y; } st = { x: 1, y: 1};
-</pre></td></tr></table>instead of
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>    struct { int x, y; } st = { .x = 1, .y = 1};
-</pre></td></tr></table><P>
-
-<LI><CODE>\e</CODE> is ASCII character 27.
-<P>
-
-<LI>case ranges : ranges can be used in <CODE>case</CODE>s:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>    switch(a) {
-    case 1 <small>...</small> 9:
-          printf("range 1 to 9\n");
-          break;
-    default:
-          printf("unexpected\n");
-          break;
-    }
-</pre></td></tr></table><P>
-
-<LI>The keyword <CODE>__attribute__</CODE> is handled to specify variable or
-function attributes. The following attributes are supported:
-<UL>
-
-<LI><CODE>aligned(n)</CODE>: align a variable or a structure field to n bytes
-(must be a power of two).
-  
-<LI><CODE>packed</CODE>: force alignment of a variable or a structure field to
-  1.
-<P>
-
-<LI><CODE>section(name)</CODE>: generate function or data in assembly section
-name (name is a string containing the section name) instead of the default
-section.
-<P>
-
-<LI><CODE>unused</CODE>: specify that the variable or the function is unused.
-<P>
-
-<LI><CODE>cdecl</CODE>: use standard C calling convention (default).
-<P>
-
-<LI><CODE>stdcall</CODE>: use Pascal-like calling convention.
-<P>
-
-<LI><CODE>regparm(n)</CODE>: use fast i386 calling convention. <VAR>n</VAR> must be
-between 1 and 3. The first <VAR>n</VAR> function parameters are respectively put in
-registers <CODE>%eax</CODE>, <CODE>%edx</CODE> and <CODE>%ecx</CODE>.
-<P>
-
-</UL>
-<P>
-
-Here are some examples:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>    int a __attribute__ ((aligned(8), section(".mysection")));
-</pre></td></tr></table></P><P>
-
-align variable <CODE>a</CODE> to 8 bytes and put it in section <CODE>.mysection</CODE>.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>    int my_add(int a, int b) __attribute__ ((section(".mycodesection"))) 
-    {
-        return a + b;
-    }
-</pre></td></tr></table></P><P>
-
-generate function <CODE>my_add</CODE> in section <CODE>.mycodesection</CODE>.
-</P><P>
-
-<LI>GNU style variadic macros:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>    #define dprintf(fmt, args<small>...</small>) printf(fmt, ## args)
-
-    dprintf("no arg\n");
-    dprintf("one arg %d\n", 1);
-</pre></td></tr></table><P>
-
-<LI><CODE>__FUNCTION__</CODE> is interpreted as C99 <CODE>__func__</CODE>
-(so it has not exactly the same semantics as string literal GNUC
-where it is a string literal).
-<P>
-
-<LI>The <CODE>__alignof__</CODE> keyword can be used as <CODE>sizeof</CODE>
-to get the alignment of a type or an expression.
-<P>
-
-<LI>The <CODE>typeof(x)</CODE> returns the type of <CODE>x</CODE>.
-<CODE>x</CODE> is an expression or a type.
-<P>
-
-<LI>Computed gotos: <CODE>&#38;&#38;label</CODE> returns a pointer of type
-<CODE>void *</CODE> on the goto label <CODE>label</CODE>. <CODE>goto *expr</CODE> can be
-used to jump on the pointer resulting from <CODE>expr</CODE>.
-<P>
-
-<LI>Inline assembly with asm instruction:
-<A NAME="IDX1"></A>
-<A NAME="IDX2"></A>
-<A NAME="IDX3"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>static inline void * my_memcpy(void * to, const void * from, size_t n)
-{
-int d0, d1, d2;
-__asm__ __volatile__(
-        "rep ; movsl\n\t"
-        "testb $2,%b4\n\t"
-        "je 1f\n\t"
-        "movsw\n"
-        "1:\ttestb $1,%b4\n\t"
-        "je 2f\n\t"
-        "movsb\n"
-        "2:"
-        : "=&c" (d0), "=&#38;D" (d1), "=&#38;S" (d2)
-        :"0" (n/4), "q" (n),"1" ((long) to),"2" ((long) from)
-        : "memory");
-return (to);
-}
-</pre></td></tr></table><P>
-
-<A NAME="IDX4"></A>
-TCC includes its own x86 inline assembler with a <CODE>gas</CODE>-like (GNU
-assembler) syntax. No intermediate files are generated. GCC 3.x named
-operands are supported.
-</P><P>
-
-<LI><CODE>__builtin_types_compatible_p()</CODE> and <CODE>__builtin_constant_p()</CODE>
-are supported.
-<P>
-
-<LI><CODE>#pragma pack</CODE> is supported for win32 compatibility.
-<P>
-
-</UL>
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC9"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC8"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC10"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 3.4 TinyCC extensions </H2>
-<!--docid::SEC9::-->
-<P>
-
-<UL>
-
-<LI><CODE>__TINYC__</CODE> is a predefined macro to <CODE>1</CODE> to
-indicate that you use TCC.
-<P>
-
-<LI><CODE>#!</CODE> at the start of a line is ignored to allow scripting.
-<P>
-
-<LI>Binary digits can be entered (<CODE>0b101</CODE> instead of
-<CODE>5</CODE>).
-<P>
-
-<LI><CODE>__BOUNDS_CHECKING_ON</CODE> is defined if bound checking is activated.
-<P>
-
-</UL>
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC10"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC9"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC11"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> 4. TinyCC Assembler </H1>
-<!--docid::SEC10::-->
-<P>
-
-Since version 0.9.16, TinyCC integrates its own assembler. TinyCC
-assembler supports a gas-like syntax (GNU assembler). You can
-desactivate assembler support if you want a smaller TinyCC executable
-(the C compiler does not rely on the assembler).
-</P><P>
-
-TinyCC Assembler is used to handle files with <TT>`.S'</TT> (C
-preprocessed assembler) and <TT>`.s'</TT> extensions. It is also used to
-handle the GNU inline assembler with the <CODE>asm</CODE> keyword.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC11"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC10"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC12"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 4.1 Syntax </H2>
-<!--docid::SEC11::-->
-<P>
-
-TinyCC Assembler supports most of the gas syntax. The tokens are the
-same as C.
-</P><P>
-
-<UL>
-
-<LI>C and C++ comments are supported.
-<P>
-
-<LI>Identifiers are the same as C, so you cannot use '.' or '$'.
-<P>
-
-<LI>Only 32 bit integer numbers are supported.
-<P>
-
-</UL>
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC12"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC11"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC13"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 4.2 Expressions </H2>
-<!--docid::SEC12::-->
-<P>
-
-<UL>
-
-<LI>Integers in decimal, octal and hexa are supported.
-<P>
-
-<LI>Unary operators: +, -, ~.
-<P>
-
-<LI>Binary operators in decreasing priority order:
-<P>
-
-<OL>
-<LI>*, /, %
-<LI>&#38;, |, ^
-<LI>+, -
-</OL>
-<P>
-
-<LI>A value is either an absolute number or a label plus an offset.
-All operators accept absolute values except '+' and '-'. '+' or '-' can be
-used to add an offset to a label. '-' supports two labels only if they
-are the same or if they are both defined and in the same section.
-<P>
-
-</UL>
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC13"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC12"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC14"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 4.3 Labels </H2>
-<!--docid::SEC13::-->
-<P>
-
-<UL>
-
-<LI>All labels are considered as local, except undefined ones.
-<P>
-
-<LI>Numeric labels can be used as local <CODE>gas</CODE>-like labels.
-They can be defined several times in the same source. Use 'b'
-(backward) or 'f' (forward) as suffix to reference them:
-<P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre> 1:
-      jmp 1b /* jump to '1' label before */
-      jmp 1f /* jump to '1' label after */
- 1:
-</pre></td></tr></table></P><P>
-
-</UL>
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC14"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC13"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC15"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 4.4 Directives </H2>
-<!--docid::SEC14::-->
-<P>
-
-All directives are preceeded by a '.'. The following directives are
-supported:
-</P><P>
-
-<UL>
-<LI>.align n[,value]
-<LI>.skip n[,value]
-<LI>.space n[,value]
-<LI>.byte value1[,...]
-<LI>.word value1[,...]
-<LI>.short value1[,...]
-<LI>.int value1[,...]
-<LI>.long value1[,...]
-<LI>.quad immediate_value1[,...]
-<LI>.globl symbol
-<LI>.global symbol
-<LI>.section section
-<LI>.text
-<LI>.data
-<LI>.bss
-<LI>.fill repeat[,size[,value]]
-<LI>.org n
-<LI>.previous
-<LI>.string string[,...]
-<LI>.asciz string[,...]
-<LI>.ascii string[,...]
-</UL>
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC15"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC14"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC16"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 4.5 X86 Assembler </H2>
-<!--docid::SEC15::-->
-<P>
-
-All X86 opcodes are supported. Only ATT syntax is supported (source
-then destination operand order). If no size suffix is given, TinyCC
-tries to guess it from the operand sizes.
-</P><P>
-
-Currently, MMX opcodes are supported but not SSE ones.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC16"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC15"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC17"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> 5. TinyCC Linker </H1>
-<!--docid::SEC16::-->
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC17"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC16"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC18"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 5.1 ELF file generation </H2>
-<!--docid::SEC17::-->
-<P>
-
-TCC can directly output relocatable ELF files (object files),
-executable ELF files and dynamic ELF libraries without relying on an
-external linker.
-</P><P>
-
-Dynamic ELF libraries can be output but the C compiler does not generate
-position independent code (PIC). It means that the dynamic library
-code generated by TCC cannot be factorized among processes yet.
-</P><P>
-
-TCC linker eliminates unreferenced object code in libraries. A single pass is
-done on the object and library list, so the order in which object files and
-libraries are specified is important (same constraint as GNU ld). No grouping
-options (<SAMP>`--start-group'</SAMP> and <SAMP>`--end-group'</SAMP>) are supported.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC18"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC17"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC19"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 5.2 ELF file loader </H2>
-<!--docid::SEC18::-->
-<P>
-
-TCC can load ELF object files, archives (.a files) and dynamic
-libraries (.so).
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC19"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC18"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC20"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 5.3 PE-i386 file generation </H2>
-<!--docid::SEC19::-->
-<P>
-
-TCC for Windows supports the native Win32 executable file format (PE-i386). It
-generates both EXE and DLL files. DLL symbols can be imported thru DEF files
-generated with the <CODE>tiny_impdef</CODE> tool.
-</P><P>
-
-Currently TCC for Windows cannot generate nor read PE object files, so ELF
-object files are used for that purpose. It can be a problem if
-interoperability with MSVC is needed. Moreover, no leading underscore is
-currently generated in the ELF symbols.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC20"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC19"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC21"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 5.4 GNU Linker Scripts </H2>
-<!--docid::SEC20::-->
-<P>
-
-Because on many Linux systems some dynamic libraries (such as
-<TT>`/usr/lib/libc.so'</TT>) are in fact GNU ld link scripts (horrible!),
-the TCC linker also supports a subset of GNU ld scripts.
-</P><P>
-
-The <CODE>GROUP</CODE> and <CODE>FILE</CODE> commands are supported. <CODE>OUTPUT_FORMAT</CODE>
-and <CODE>TARGET</CODE> are ignored.
-</P><P>
-
-Example from <TT>`/usr/lib/libc.so'</TT>:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>/* GNU ld script
-   Use the shared library, but some functions are only in
-   the static library, so try that secondarily.  */
-GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a )
-</pre></td></tr></table></P><P>
-
-<A NAME="Bounds"></A>
-<HR SIZE="6">
-<A NAME="SEC21"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC20"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC22"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> 6. TinyCC Memory and Bound checks </H1>
-<!--docid::SEC21::-->
-<P>
-
-This feature is activated with the <SAMP>`-b'</SAMP> (see section <A HREF="tcc-doc.html#SEC2">2. Command line invocation</A>).
-</P><P>
-
-Note that pointer size is <EM>unchanged</EM> and that code generated
-with bound checks is <EM>fully compatible</EM> with unchecked
-code. When a pointer comes from unchecked code, it is assumed to be
-valid. Even very obscure C code with casts should work correctly.
-</P><P>
-
-For more information about the ideas behind this method, see
-<A HREF="http://www.doc.ic.ac.uk/~phjk/BoundsChecking.html">http://www.doc.ic.ac.uk/~phjk/BoundsChecking.html</A>.
-</P><P>
-
-Here are some examples of caught errors:
-</P><P>
-
-<DL COMPACT>
-
-<DT>Invalid range with standard string function:
-<DD><TABLE><tr><td>&nbsp;</td><td class=example><pre>{
-    char tab[10];
-    memset(tab, 0, 11);
-}
-</pre></td></tr></table><P>
-
-<DT>Out of bounds-error in global or local arrays:
-<DD><TABLE><tr><td>&nbsp;</td><td class=example><pre>{
-    int tab[10];
-    for(i=0;i&#60;11;i++) {
-        sum += tab[i];
-    }
-}
-</pre></td></tr></table><P>
-
-<DT>Out of bounds-error in malloc'ed data:
-<DD><TABLE><tr><td>&nbsp;</td><td class=example><pre>{
-    int *tab;
-    tab = malloc(20 * sizeof(int));
-    for(i=0;i&#60;21;i++) {
-        sum += tab4[i];
-    }
-    free(tab);
-}
-</pre></td></tr></table><P>
-
-<DT>Access of freed memory:
-<DD><TABLE><tr><td>&nbsp;</td><td class=example><pre>{
-    int *tab;
-    tab = malloc(20 * sizeof(int));
-    free(tab);
-    for(i=0;i&#60;20;i++) {
-        sum += tab4[i];
-    }
-}
-</pre></td></tr></table><P>
-
-<DT>Double free:
-<DD><TABLE><tr><td>&nbsp;</td><td class=example><pre>{
-    int *tab;
-    tab = malloc(20 * sizeof(int));
-    free(tab);
-    free(tab);
-}
-</pre></td></tr></table><P>
-
-</DL>
-<P>
-
-<A NAME="Libtcc"></A>
-<HR SIZE="6">
-<A NAME="SEC22"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC21"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC23"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> 7. The <CODE>libtcc</CODE> library </H1>
-<!--docid::SEC22::-->
-<P>
-
-The <CODE>libtcc</CODE> library enables you to use TCC as a backend for
-dynamic code generation. 
-</P><P>
-
-Read the <TT>`libtcc.h'</TT> to have an overview of the API. Read
-<TT>`libtcc_test.c'</TT> to have a very simple example.
-</P><P>
-
-The idea consists in giving a C string containing the program you want
-to compile directly to <CODE>libtcc</CODE>. Then you can access to any global
-symbol (function or variable) defined.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC23"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC22"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC24"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> 8. Developer's guide </H1>
-<!--docid::SEC23::-->
-<P>
-
-This chapter gives some hints to understand how TCC works. You can skip
-it if you do not intend to modify the TCC code.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC24"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC23"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC25"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 8.1 File reading </H2>
-<!--docid::SEC24::-->
-<P>
-
-The <CODE>BufferedFile</CODE> structure contains the context needed to read a
-file, including the current line number. <CODE>tcc_open()</CODE> opens a new
-file and <CODE>tcc_close()</CODE> closes it. <CODE>inp()</CODE> returns the next
-character.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC25"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC24"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC26"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 8.2 Lexer </H2>
-<!--docid::SEC25::-->
-<P>
-
-<CODE>next()</CODE> reads the next token in the current
-file. <CODE>next_nomacro()</CODE> reads the next token without macro
-expansion.
-</P><P>
-
-<CODE>tok</CODE> contains the current token (see <CODE>TOK_xxx</CODE>)
-constants. Identifiers and keywords are also keywords. <CODE>tokc</CODE>
-contains additional infos about the token (for example a constant value
-if number or string token).
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC26"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC25"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC27"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 8.3 Parser </H2>
-<!--docid::SEC26::-->
-<P>
-
-The parser is hardcoded (yacc is not necessary). It does only one pass,
-except:
-</P><P>
-
-<UL>
-
-<LI>For initialized arrays with unknown size, a first pass
-is done to count the number of elements.
-<P>
-
-<LI>For architectures where arguments are evaluated in
-reverse order, a first pass is done to reverse the argument order.
-<P>
-
-</UL>
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC27"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC26"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC28"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 8.4 Types </H2>
-<!--docid::SEC27::-->
-<P>
-
-The types are stored in a single 'int' variable. It was choosen in the
-first stages of development when tcc was much simpler. Now, it may not
-be the best solution.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>#define VT_INT        0  /* integer type */
-#define VT_BYTE       1  /* signed byte type */
-#define VT_SHORT      2  /* short type */
-#define VT_VOID       3  /* void type */
-#define VT_PTR        4  /* pointer */
-#define VT_ENUM       5  /* enum definition */
-#define VT_FUNC       6  /* function type */
-#define VT_STRUCT     7  /* struct/union definition */
-#define VT_FLOAT      8  /* IEEE float */
-#define VT_DOUBLE     9  /* IEEE double */
-#define VT_LDOUBLE   10  /* IEEE long double */
-#define VT_BOOL      11  /* ISOC99 boolean type */
-#define VT_LLONG     12  /* 64 bit integer */
-#define VT_LONG      13  /* long integer (NEVER USED as type, only
-                            during parsing) */
-#define VT_BTYPE      0x000f /* mask for basic type */
-#define VT_UNSIGNED   0x0010  /* unsigned type */
-#define VT_ARRAY      0x0020  /* array type (also has VT_PTR) */
-#define VT_BITFIELD   0x0040  /* bitfield modifier */
-
-#define VT_STRUCT_SHIFT 16   /* structure/enum name shift (16 bits left) */
-</pre></td></tr></table></P><P>
-
-When a reference to another type is needed (for pointers, functions and
-structures), the <CODE>32 - VT_STRUCT_SHIFT</CODE> high order bits are used to
-store an identifier reference.
-</P><P>
-
-The <CODE>VT_UNSIGNED</CODE> flag can be set for chars, shorts, ints and long
-longs.
-</P><P>
-
-Arrays are considered as pointers <CODE>VT_PTR</CODE> with the flag
-<CODE>VT_ARRAY</CODE> set.
-</P><P>
-
-The <CODE>VT_BITFIELD</CODE> flag can be set for chars, shorts, ints and long
-longs. If it is set, then the bitfield position is stored from bits
-VT_STRUCT_SHIFT to VT_STRUCT_SHIFT + 5 and the bit field size is stored
-from bits VT_STRUCT_SHIFT + 6 to VT_STRUCT_SHIFT + 11.
-</P><P>
-
-<CODE>VT_LONG</CODE> is never used except during parsing.
-</P><P>
-
-During parsing, the storage of an object is also stored in the type
-integer:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>#define VT_EXTERN  0x00000080  /* extern definition */
-#define VT_STATIC  0x00000100  /* static variable */
-#define VT_TYPEDEF 0x00000200  /* typedef definition */
-</pre></td></tr></table></P><P>
-
-<HR SIZE="6">
-<A NAME="SEC28"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC27"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC29"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 8.5 Symbols </H2>
-<!--docid::SEC28::-->
-<P>
-
-All symbols are stored in hashed symbol stacks. Each symbol stack
-contains <CODE>Sym</CODE> structures.
-</P><P>
-
-<CODE>Sym.v</CODE> contains the symbol name (remember
-an idenfier is also a token, so a string is never necessary to store
-it). <CODE>Sym.t</CODE> gives the type of the symbol. <CODE>Sym.r</CODE> is usually
-the register in which the corresponding variable is stored. <CODE>Sym.c</CODE> is
-usually a constant associated to the symbol.
-</P><P>
-
-Four main symbol stacks are defined:
-</P><P>
-
-<DL COMPACT>
-
-<DT><CODE>define_stack</CODE>
-<DD>for the macros (<CODE>#define</CODE>s).
-<P>
-
-<DT><CODE>global_stack</CODE>
-<DD>for the global variables, functions and types.
-<P>
-
-<DT><CODE>local_stack</CODE>
-<DD>for the local variables, functions and types.
-<P>
-
-<DT><CODE>global_label_stack</CODE>
-<DD>for the local labels (for <CODE>goto</CODE>).
-<P>
-
-<DT><CODE>label_stack</CODE>
-<DD>for GCC block local labels (see the <CODE>__label__</CODE> keyword).
-<P>
-
-</DL>
-<P>
-
-<CODE>sym_push()</CODE> is used to add a new symbol in the local symbol
-stack. If no local symbol stack is active, it is added in the global
-symbol stack.
-</P><P>
-
-<CODE>sym_pop(st,b)</CODE> pops symbols from the symbol stack <VAR>st</VAR> until
-the symbol <VAR>b</VAR> is on the top of stack. If <VAR>b</VAR> is NULL, the stack
-is emptied.
-</P><P>
-
-<CODE>sym_find(v)</CODE> return the symbol associated to the identifier
-<VAR>v</VAR>. The local stack is searched first from top to bottom, then the
-global stack.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC29"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC28"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC30"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 8.6 Sections </H2>
-<!--docid::SEC29::-->
-<P>
-
-The generated code and datas are written in sections. The structure
-<CODE>Section</CODE> contains all the necessary information for a given
-section. <CODE>new_section()</CODE> creates a new section. ELF file semantics
-is assumed for each section.
-</P><P>
-
-The following sections are predefined:
-</P><P>
-
-<DL COMPACT>
-
-<DT><CODE>text_section</CODE>
-<DD>is the section containing the generated code. <VAR>ind</VAR> contains the
-current position in the code section.
-<P>
-
-<DT><CODE>data_section</CODE>
-<DD>contains initialized data
-<P>
-
-<DT><CODE>bss_section</CODE>
-<DD>contains uninitialized data
-<P>
-
-<DT><CODE>bounds_section</CODE>
-<DD><DT><CODE>lbounds_section</CODE>
-<DD>are used when bound checking is activated
-<P>
-
-<DT><CODE>stab_section</CODE>
-<DD><DT><CODE>stabstr_section</CODE>
-<DD>are used when debugging is actived to store debug information
-<P>
-
-<DT><CODE>symtab_section</CODE>
-<DD><DT><CODE>strtab_section</CODE>
-<DD>contain the exported symbols (currently only used for debugging).
-<P>
-
-</DL>
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC30"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC29"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC31"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 8.7 Code generation </H2>
-<!--docid::SEC30::-->
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC31"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC30"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC32"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 8.7.1 Introduction </H3>
-<!--docid::SEC31::-->
-<P>
-
-The TCC code generator directly generates linked binary code in one
-pass. It is rather unusual these days (see gcc for example which
-generates text assembly), but it can be very fast and surprisingly
-little complicated.
-</P><P>
-
-The TCC code generator is register based. Optimization is only done at
-the expression level. No intermediate representation of expression is
-kept except the current values stored in the <EM>value stack</EM>.
-</P><P>
-
-On x86, three temporary registers are used. When more registers are
-needed, one register is spilled into a new temporary variable on the stack.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC32"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC31"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC33"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 8.7.2 The value stack </H3>
-<!--docid::SEC32::-->
-<P>
-
-When an expression is parsed, its value is pushed on the value stack
-(<VAR>vstack</VAR>). The top of the value stack is <VAR>vtop</VAR>. Each value
-stack entry is the structure <CODE>SValue</CODE>.
-</P><P>
-
-<CODE>SValue.t</CODE> is the type. <CODE>SValue.r</CODE> indicates how the value is
-currently stored in the generated code. It is usually a CPU register
-index (<CODE>REG_xxx</CODE> constants), but additional values and flags are
-defined:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>#define VT_CONST     0x00f0
-#define VT_LLOCAL    0x00f1
-#define VT_LOCAL     0x00f2
-#define VT_CMP       0x00f3
-#define VT_JMP       0x00f4
-#define VT_JMPI      0x00f5
-#define VT_LVAL      0x0100
-#define VT_SYM       0x0200
-#define VT_MUSTCAST  0x0400
-#define VT_MUSTBOUND 0x0800
-#define VT_BOUNDED   0x8000
-#define VT_LVAL_BYTE     0x1000
-#define VT_LVAL_SHORT    0x2000
-#define VT_LVAL_UNSIGNED 0x4000
-#define VT_LVAL_TYPE     (VT_LVAL_BYTE | VT_LVAL_SHORT | VT_LVAL_UNSIGNED)
-</pre></td></tr></table></P><P>
-
-<DL COMPACT>
-
-<DT><CODE>VT_CONST</CODE>
-<DD>indicates that the value is a constant. It is stored in the union
-<CODE>SValue.c</CODE>, depending on its type.
-<P>
-
-<DT><CODE>VT_LOCAL</CODE>
-<DD>indicates a local variable pointer at offset <CODE>SValue.c.i</CODE> in the
-stack.
-<P>
-
-<DT><CODE>VT_CMP</CODE>
-<DD>indicates that the value is actually stored in the CPU flags (i.e. the
-value is the consequence of a test). The value is either 0 or 1. The
-actual CPU flags used is indicated in <CODE>SValue.c.i</CODE>. 
-<P>
-
-If any code is generated which destroys the CPU flags, this value MUST be
-put in a normal register.
-</P><P>
-
-<DT><CODE>VT_JMP</CODE>
-<DD><DT><CODE>VT_JMPI</CODE>
-<DD>indicates that the value is the consequence of a conditional jump. For VT_JMP,
-it is 1 if the jump is taken, 0 otherwise. For VT_JMPI it is inverted.
-<P>
-
-These values are used to compile the <CODE>||</CODE> and <CODE>&#38;&#38;</CODE> logical
-operators.
-</P><P>
-
-If any code is generated, this value MUST be put in a normal
-register. Otherwise, the generated code won't be executed if the jump is
-taken.
-</P><P>
-
-<DT><CODE>VT_LVAL</CODE>
-<DD>is a flag indicating that the value is actually an lvalue (left value of
-an assignment). It means that the value stored is actually a pointer to
-the wanted value. 
-<P>
-
-Understanding the use <CODE>VT_LVAL</CODE> is very important if you want to
-understand how TCC works.
-</P><P>
-
-<DT><CODE>VT_LVAL_BYTE</CODE>
-<DD><DT><CODE>VT_LVAL_SHORT</CODE>
-<DD><DT><CODE>VT_LVAL_UNSIGNED</CODE>
-<DD>if the lvalue has an integer type, then these flags give its real
-type. The type alone is not enough in case of cast optimisations.
-<P>
-
-<DT><CODE>VT_LLOCAL</CODE>
-<DD>is a saved lvalue on the stack. <CODE>VT_LLOCAL</CODE> should be eliminated
-ASAP because its semantics are rather complicated.
-<P>
-
-<DT><CODE>VT_MUSTCAST</CODE>
-<DD>indicates that a cast to the value type must be performed if the value
-is used (lazy casting).
-<P>
-
-<DT><CODE>VT_SYM</CODE>
-<DD>indicates that the symbol <CODE>SValue.sym</CODE> must be added to the constant.
-<P>
-
-<DT><CODE>VT_MUSTBOUND</CODE>
-<DD><DT><CODE>VT_BOUNDED</CODE>
-<DD>are only used for optional bound checking.
-<P>
-
-</DL>
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC33"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC32"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC34"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 8.7.3 Manipulating the value stack </H3>
-<!--docid::SEC33::-->
-<P>
-
-<CODE>vsetc()</CODE> and <CODE>vset()</CODE> pushes a new value on the value
-stack. If the previous <VAR>vtop</VAR> was stored in a very unsafe place(for
-example in the CPU flags), then some code is generated to put the
-previous <VAR>vtop</VAR> in a safe storage.
-</P><P>
-
-<CODE>vpop()</CODE> pops <VAR>vtop</VAR>. In some cases, it also generates cleanup
-code (for example if stacked floating point registers are used as on
-x86).
-</P><P>
-
-The <CODE>gv(rc)</CODE> function generates code to evaluate <VAR>vtop</VAR> (the
-top value of the stack) into registers. <VAR>rc</VAR> selects in which
-register class the value should be put. <CODE>gv()</CODE> is the <EM>most
-important function</EM> of the code generator.
-</P><P>
-
-<CODE>gv2()</CODE> is the same as <CODE>gv()</CODE> but for the top two stack
-entries.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC34"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC33"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC35"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 8.7.4 CPU dependent code generation </H3>
-<!--docid::SEC34::-->
-See the <TT>`i386-gen.c'</TT> file to have an example.
-<P>
-
-<DL COMPACT>
-
-<DT><CODE>load()</CODE>
-<DD>must generate the code needed to load a stack value into a register.
-<P>
-
-<DT><CODE>store()</CODE>
-<DD>must generate the code needed to store a register into a stack value
-lvalue.
-<P>
-
-<DT><CODE>gfunc_start()</CODE>
-<DD><DT><CODE>gfunc_param()</CODE>
-<DD><DT><CODE>gfunc_call()</CODE>
-<DD>should generate a function call
-<P>
-
-<DT><CODE>gfunc_prolog()</CODE>
-<DD><DT><CODE>gfunc_epilog()</CODE>
-<DD>should generate a function prolog/epilog.
-<P>
-
-<DT><CODE>gen_opi(op)</CODE>
-<DD>must generate the binary integer operation <VAR>op</VAR> on the two top
-entries of the stack which are guaranted to contain integer types.
-<P>
-
-The result value should be put on the stack.
-</P><P>
-
-<DT><CODE>gen_opf(op)</CODE>
-<DD>same as <CODE>gen_opi()</CODE> for floating point operations. The two top
-entries of the stack are guaranted to contain floating point values of
-same types.
-<P>
-
-<DT><CODE>gen_cvt_itof()</CODE>
-<DD>integer to floating point conversion.
-<P>
-
-<DT><CODE>gen_cvt_ftoi()</CODE>
-<DD>floating point to integer conversion.
-<P>
-
-<DT><CODE>gen_cvt_ftof()</CODE>
-<DD>floating point to floating point of different size conversion.
-<P>
-
-<DT><CODE>gen_bounded_ptr_add()</CODE>
-<DD><DT><CODE>gen_bounded_ptr_deref()</CODE>
-<DD>are only used for bounds checking.
-<P>
-
-</DL>
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC35"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC34"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 8.8 Optimizations done </H2>
-<!--docid::SEC35::-->
-Constant propagation is done for all operations. Multiplications and
-divisions are optimized to shifts when appropriate. Comparison
-operators are optimized by maintaining a special cache for the
-processor flags. &#38;&#38;, || and ! are optimized by maintaining a special
-'jump target' value. No other jump optimization is currently performed
-because it would require to store the code in a more abstract fashion.
-<P>
-
-<HR SIZE="6">
-<A NAME="SEC36"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC35"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> Concept Index </H1>
-<!--docid::SEC36::-->
-<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="tcc-doc.html#cp__" style="text-decoration:none"><b>_</b></A>
- &nbsp; 
-<BR>
-<A HREF="tcc-doc.html#cp_A" style="text-decoration:none"><b>A</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_B" style="text-decoration:none"><b>B</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_C" style="text-decoration:none"><b>C</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_D" style="text-decoration:none"><b>D</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_E" style="text-decoration:none"><b>E</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_F" style="text-decoration:none"><b>F</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_G" style="text-decoration:none"><b>G</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_I" style="text-decoration:none"><b>I</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_J" style="text-decoration:none"><b>J</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_L" style="text-decoration:none"><b>L</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_M" style="text-decoration:none"><b>M</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_O" style="text-decoration:none"><b>O</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_P" style="text-decoration:none"><b>P</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_Q" style="text-decoration:none"><b>Q</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_R" style="text-decoration:none"><b>R</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_S" style="text-decoration:none"><b>S</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_T" style="text-decoration:none"><b>T</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_U" style="text-decoration:none"><b>U</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_V" style="text-decoration:none"><b>V</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_W" style="text-decoration:none"><b>W</b></A>
- &nbsp; 
-</td></tr></table><br><P></P>
-<TABLE border=0>
-<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp__"></A>_</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#IDX3">__asm__</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">align directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">aligned attribute</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">ascii directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">asciz directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC15">assembler</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC15">4.5 X86 Assembler</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">assembler directives</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#IDX2">assembly, inline</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_B"></A>B</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC21">bound checks</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC21">6. TinyCC Memory and Bound checks</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">bss directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">byte directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">caching processor flags</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">8.8 Optimizations done</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">cdecl attribute</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC30">code generation</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC30">8.7 Code generation</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">comparison operators</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">8.8 Optimizations done</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">constant propagation</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">8.8 Optimizations done</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC34">CPU dependent</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC34">8.7.4 CPU dependent code generation</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_D"></A>D</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">data directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">directives, assembler</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_E"></A>E</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC17">ELF</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC17">5.1 ELF file generation</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_F"></A>F</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">FILE, linker command</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">5.4 GNU Linker Scripts</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">fill directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">flags, caching</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">8.8 Optimizations done</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_G"></A>G</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#IDX4">gas</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">global directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">globl directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">GROUP, linker command</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">5.4 GNU Linker Scripts</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_I"></A>I</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#IDX1">inline assembly</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">int directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_J"></A>J</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">jump optimization</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">8.8 Optimizations done</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_L"></A>L</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC16">linker</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC16">5. TinyCC Linker</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">linker scripts</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">5.4 GNU Linker Scripts</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">long directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_M"></A>M</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC21">memory checks</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC21">6. TinyCC Memory and Bound checks</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_O"></A>O</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">optimizations</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">8.8 Optimizations done</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">org directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">OUTPUT_FORMAT, linker command</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">5.4 GNU Linker Scripts</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_P"></A>P</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">packed attribute</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC19">PE-i386</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC19">5.3 PE-i386 file generation</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">previous directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_Q"></A>Q</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">quad directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">regparm attribute</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_S"></A>S</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">scripts, linker</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">5.4 GNU Linker Scripts</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">section attribute</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">section directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">short directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">skip directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">space directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">stdcall attribute</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">strength reduction</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC35">8.8 Optimizations done</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">string directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_T"></A>T</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">TARGET, linker command</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC20">5.4 GNU Linker Scripts</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">text directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">unused attribute</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_V"></A>V</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC33">value stack</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC33">8.7.3 Manipulating the value stack</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC32">value stack, introduction</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC32">8.7.2 The value stack</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_W"></A>W</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">word directive</A></TD><TD valign=top><A HREF="tcc-doc.html#SEC14">4.4 Directives</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="tcc-doc.html#cp__" style="text-decoration:none"><b>_</b></A>
- &nbsp; 
-<BR>
-<A HREF="tcc-doc.html#cp_A" style="text-decoration:none"><b>A</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_B" style="text-decoration:none"><b>B</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_C" style="text-decoration:none"><b>C</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_D" style="text-decoration:none"><b>D</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_E" style="text-decoration:none"><b>E</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_F" style="text-decoration:none"><b>F</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_G" style="text-decoration:none"><b>G</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_I" style="text-decoration:none"><b>I</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_J" style="text-decoration:none"><b>J</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_L" style="text-decoration:none"><b>L</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_M" style="text-decoration:none"><b>M</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_O" style="text-decoration:none"><b>O</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_P" style="text-decoration:none"><b>P</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_Q" style="text-decoration:none"><b>Q</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_R" style="text-decoration:none"><b>R</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_S" style="text-decoration:none"><b>S</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_T" style="text-decoration:none"><b>T</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_U" style="text-decoration:none"><b>U</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_V" style="text-decoration:none"><b>V</b></A>
- &nbsp; 
-<A HREF="tcc-doc.html#cp_W" style="text-decoration:none"><b>W</b></A>
- &nbsp; 
-</td></tr></table><br><P>
-
-<HR SIZE="6">
-<A NAME="SEC_Contents"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Table of Contents</H1>
-<UL>
-<A NAME="TOC1" HREF="tcc-doc.html#SEC1">1. Introduction</A>
-<BR>
-<A NAME="TOC2" HREF="tcc-doc.html#SEC2">2. Command line invocation</A>
-<BR>
-<UL>
-<A NAME="TOC3" HREF="tcc-doc.html#SEC3">2.1 Quick start</A>
-<BR>
-<A NAME="TOC4" HREF="tcc-doc.html#SEC4">2.2 Option summary</A>
-<BR>
-</UL>
-<A NAME="TOC5" HREF="tcc-doc.html#SEC5">3. C language support</A>
-<BR>
-<UL>
-<A NAME="TOC6" HREF="tcc-doc.html#SEC6">3.1 ANSI C</A>
-<BR>
-<A NAME="TOC7" HREF="tcc-doc.html#SEC7">3.2 ISOC99 extensions</A>
-<BR>
-<A NAME="TOC8" HREF="tcc-doc.html#SEC8">3.3 GNU C extensions</A>
-<BR>
-<A NAME="TOC9" HREF="tcc-doc.html#SEC9">3.4 TinyCC extensions</A>
-<BR>
-</UL>
-<A NAME="TOC10" HREF="tcc-doc.html#SEC10">4. TinyCC Assembler</A>
-<BR>
-<UL>
-<A NAME="TOC11" HREF="tcc-doc.html#SEC11">4.1 Syntax</A>
-<BR>
-<A NAME="TOC12" HREF="tcc-doc.html#SEC12">4.2 Expressions</A>
-<BR>
-<A NAME="TOC13" HREF="tcc-doc.html#SEC13">4.3 Labels</A>
-<BR>
-<A NAME="TOC14" HREF="tcc-doc.html#SEC14">4.4 Directives</A>
-<BR>
-<A NAME="TOC15" HREF="tcc-doc.html#SEC15">4.5 X86 Assembler</A>
-<BR>
-</UL>
-<A NAME="TOC16" HREF="tcc-doc.html#SEC16">5. TinyCC Linker</A>
-<BR>
-<UL>
-<A NAME="TOC17" HREF="tcc-doc.html#SEC17">5.1 ELF file generation</A>
-<BR>
-<A NAME="TOC18" HREF="tcc-doc.html#SEC18">5.2 ELF file loader</A>
-<BR>
-<A NAME="TOC19" HREF="tcc-doc.html#SEC19">5.3 PE-i386 file generation</A>
-<BR>
-<A NAME="TOC20" HREF="tcc-doc.html#SEC20">5.4 GNU Linker Scripts</A>
-<BR>
-</UL>
-<A NAME="TOC21" HREF="tcc-doc.html#SEC21">6. TinyCC Memory and Bound checks</A>
-<BR>
-<A NAME="TOC22" HREF="tcc-doc.html#SEC22">7. The <CODE>libtcc</CODE> library</A>
-<BR>
-<A NAME="TOC23" HREF="tcc-doc.html#SEC23">8. Developer's guide</A>
-<BR>
-<UL>
-<A NAME="TOC24" HREF="tcc-doc.html#SEC24">8.1 File reading</A>
-<BR>
-<A NAME="TOC25" HREF="tcc-doc.html#SEC25">8.2 Lexer</A>
-<BR>
-<A NAME="TOC26" HREF="tcc-doc.html#SEC26">8.3 Parser</A>
-<BR>
-<A NAME="TOC27" HREF="tcc-doc.html#SEC27">8.4 Types</A>
-<BR>
-<A NAME="TOC28" HREF="tcc-doc.html#SEC28">8.5 Symbols</A>
-<BR>
-<A NAME="TOC29" HREF="tcc-doc.html#SEC29">8.6 Sections</A>
-<BR>
-<A NAME="TOC30" HREF="tcc-doc.html#SEC30">8.7 Code generation</A>
-<BR>
-<UL>
-<A NAME="TOC31" HREF="tcc-doc.html#SEC31">8.7.1 Introduction</A>
-<BR>
-<A NAME="TOC32" HREF="tcc-doc.html#SEC32">8.7.2 The value stack</A>
-<BR>
-<A NAME="TOC33" HREF="tcc-doc.html#SEC33">8.7.3 Manipulating the value stack</A>
-<BR>
-<A NAME="TOC34" HREF="tcc-doc.html#SEC34">8.7.4 CPU dependent code generation</A>
-<BR>
-</UL>
-<A NAME="TOC35" HREF="tcc-doc.html#SEC35">8.8 Optimizations done</A>
-<BR>
-</UL>
-<A NAME="TOC36" HREF="tcc-doc.html#SEC36">Concept Index</A>
-<BR>
-</UL>
-<HR SIZE=1>
-<A NAME="SEC_OVERVIEW"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Short Table of Contents</H1>
-<BLOCKQUOTE>
-<A NAME="TOC1" HREF="tcc-doc.html#SEC1">1. Introduction</A>
-<BR>
-<A NAME="TOC2" HREF="tcc-doc.html#SEC2">2. Command line invocation</A>
-<BR>
-<A NAME="TOC5" HREF="tcc-doc.html#SEC5">3. C language support</A>
-<BR>
-<A NAME="TOC10" HREF="tcc-doc.html#SEC10">4. TinyCC Assembler</A>
-<BR>
-<A NAME="TOC16" HREF="tcc-doc.html#SEC16">5. TinyCC Linker</A>
-<BR>
-<A NAME="TOC21" HREF="tcc-doc.html#SEC21">6. TinyCC Memory and Bound checks</A>
-<BR>
-<A NAME="TOC22" HREF="tcc-doc.html#SEC22">7. The <CODE>libtcc</CODE> library</A>
-<BR>
-<A NAME="TOC23" HREF="tcc-doc.html#SEC23">8. Developer's guide</A>
-<BR>
-<A NAME="TOC36" HREF="tcc-doc.html#SEC36">Concept Index</A>
-<BR>
-
-</BLOCKQUOTE>
-<HR SIZE=1>
-<A NAME="SEC_About"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC1">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC36">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="tcc-doc.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>About this document</H1>
-This document was generated on <I>March, 22  2008</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-<P></P>  
-The buttons in the navigation panels have the following meaning:
-<P></P>
-<table border = "1">
-<TR>
-<TH> Button </TH>
-<TH> Name </TH>
-<TH> Go to </TH>
-<TH> From 1.2.3 go to</TH>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt; ] </TD>
-<TD ALIGN="CENTER">
-Back
-</TD>
-<TD>
-previous section in reading order
-</TD>
-<TD>
-1.2.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt; ] </TD>
-<TD ALIGN="CENTER">
-Forward
-</TD>
-<TD>
-next section in reading order
-</TD>
-<TD>
-1.2.4
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt;&lt; ] </TD>
-<TD ALIGN="CENTER">
-FastBack
-</TD>
-<TD>
-previous or up-and-previous section 
-</TD>
-<TD>
-1.1
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ Up ] </TD>
-<TD ALIGN="CENTER">
-Up
-</TD>
-<TD>
-up section
-</TD>
-<TD>
-1.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt;&gt; ] </TD>
-<TD ALIGN="CENTER">
-FastForward
-</TD>
-<TD>
-next or up-and-next section
-</TD>
-<TD>
-1.3
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Top] </TD>
-<TD ALIGN="CENTER">
-Top
-</TD>
-<TD>
-cover (top) of document
-</TD>
-<TD>
- &nbsp; 
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Contents] </TD>
-<TD ALIGN="CENTER">
-Contents
-</TD>
-<TD>
-table of contents
-</TD>
-<TD>
- &nbsp; 
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Index] </TD>
-<TD ALIGN="CENTER">
-Index
-</TD>
-<TD>
-concept index
-</TD>
-<TD>
- &nbsp; 
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ ? ] </TD>
-<TD ALIGN="CENTER">
-About
-</TD>
-<TD>
-this page
-</TD>
-<TD>
- &nbsp; 
-</TD>
-</TR>
-</TABLE>
-<P></P>
-where the <STRONG> Example </STRONG> assumes that the current position 
-is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of 
-the following structure:
-<UL>
-<LI> 1. Section One  </LI>
-<UL>
-<LI>1.1 Subsection One-One</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.2 Subsection One-Two</LI>
-<UL>
-<LI>1.2.1 Subsubsection One-Two-One
-</LI><LI>1.2.2 Subsubsection One-Two-Two
-</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
-&lt;== Current Position </STRONG>
-</LI><LI>1.2.4 Subsubsection One-Two-Four
-</LI></UL>
-<LI>1.3 Subsection One-Three</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.4 Subsection One-Four</LI>
-</UL>
-</UL>
-
-<HR SIZE=1>
-<BR>  
-<FONT SIZE="-1">
-This document was generated
-on <I>March, 22  2008</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-
-</BODY>
-</HTML>

+ 0 - 15
web/NotepadA/utils/gcci/tcc/examples/dll.c

@@ -1,15 +0,0 @@
-//+---------------------------------------------------------------------------
-//
-//  dll.c - Windows DLL example - dynamically linked part
-//
-
-#include <windows.h>
-
-#define DLL_EXPORT __declspec(dllexport)
-
-
-DLL_EXPORT void HelloWorld (void)
-{
-	MessageBox (0, "Hello World!", "From DLL", MB_ICONINFORMATION);
-}
-

+ 0 - 6
web/NotepadA/utils/gcci/tcc/examples/dll.def

@@ -1,6 +0,0 @@
-; Windows DLL example - export definition for the DLL
-
-LIBRARY dll.dll
-
-EXPORTS
-HelloWorld

+ 0 - 23
web/NotepadA/utils/gcci/tcc/examples/fib.c

@@ -1,23 +0,0 @@
-#include <stdio.h>
-
-int fib(n)
-{
-	if (n <= 2)
-		return 1;
-	else
-		return fib(n-1) + fib(n-2);
-}
-
-int main(int argc, char **argv) 
-{
-	int n;
-	if (argc < 2) {
-		printf("usage: fib n\n"
-			   "Compute nth Fibonacci number\n");
-		return 1;
-	}
-		
-	n = atoi(argv[1]);
-	printf("fib(%d) = %d\n", n, fib(n));
-	return 0;
-}

+ 0 - 19
web/NotepadA/utils/gcci/tcc/examples/hello_dll.c

@@ -1,19 +0,0 @@
-//+---------------------------------------------------------------------------
-//
-//  HELLO_DLL.C - Windows DLL example - main application part
-//
-
-#include <windows.h>
-
-void HelloWorld (void);
-
-int WINAPI WinMain(
-	HINSTANCE hInstance,
-	HINSTANCE hPrevInstance,
-	LPSTR     lpCmdLine,
-	int       nCmdShow)
-{
-	HelloWorld();
-	return 0;
-}
-

+ 0 - 159
web/NotepadA/utils/gcci/tcc/examples/hello_win.c

@@ -1,159 +0,0 @@
-//+---------------------------------------------------------------------------
-//
-//  HELLO_WIN.C - Windows GUI 'Hello World!' Example
-//
-//+---------------------------------------------------------------------------
-
-#include <windows.h>
-
-#define APPNAME "HELLO_WIN"
-
-char szAppName[] = APPNAME; // The name of this application
-char szTitle[]   = APPNAME; // The title bar text
-char *pWindowText;
-
-HINSTANCE g_hInst;          // current instance
-
-void CenterWindow(HWND hWnd);
-
-//+---------------------------------------------------------------------------
-//
-//  Function:   WndProc
-//
-//  Synopsis:   very unusual type of function - gets called by system to
-//              process windows messages.
-//
-//  Arguments:  same as always.
-//----------------------------------------------------------------------------
-
-LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
-{
-	switch (message)
-	{
-		// ----------------------- first and last
-		case WM_CREATE:
-			CenterWindow(hwnd);
-			break;
-
-		case WM_DESTROY:
-			PostQuitMessage(0);
-			break;
-
-
-		// ----------------------- get out of it...
-		case WM_RBUTTONUP:
-			DestroyWindow(hwnd);
-			break;
-
-		case WM_KEYDOWN:
-			if (VK_ESCAPE == wParam)
-				DestroyWindow(hwnd);
-			break;
-
-
-		// ----------------------- display our minimal info
-		case WM_PAINT:
-		{
-			PAINTSTRUCT ps;
-			HDC         hdc;
-			RECT        rc;
-			hdc = BeginPaint(hwnd, &ps);
-
-			GetClientRect(hwnd, &rc);
-			SetTextColor(hdc, RGB(240,240,96));
-			SetBkMode(hdc, TRANSPARENT);
-			DrawText(hdc, pWindowText, -1, &rc, DT_CENTER|DT_SINGLELINE|DT_VCENTER);
-
-			EndPaint(hwnd, &ps);
-			break;
-		}
-
-		// ----------------------- let windows do all other stuff
-		default:
-			return DefWindowProc(hwnd, message, wParam, lParam);
-	}
-	return 0;
-}
-
-//+---------------------------------------------------------------------------
-//
-//  Function:   WinMain
-//
-//  Synopsis:   standard entrypoint for GUI Win32 apps
-//
-//----------------------------------------------------------------------------
-int APIENTRY WinMain(
-				HINSTANCE hInstance,
-				HINSTANCE hPrevInstance,
-				LPSTR     lpCmdLine,
-				int       nCmdShow)
-{
-	MSG msg;
-
-	WNDCLASS wc;
-
-	HWND hwnd;
-
-	// Fill in window class structure with parameters that describe
-	// the main window.
-
-	ZeroMemory(&wc, sizeof wc);
-	wc.hInstance     = hInstance;
-	wc.lpszClassName = szAppName;
-	wc.lpfnWndProc   = (WNDPROC)WndProc;
-	wc.style         = CS_DBLCLKS|CS_VREDRAW|CS_HREDRAW;
-	wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
-	wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
-	wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
-
-	if (FALSE == RegisterClass(&wc)) return 0;
-
-	// create the browser
-	hwnd = CreateWindow(
-		szAppName,
-		szTitle,
-		WS_OVERLAPPEDWINDOW|WS_VISIBLE,
-		CW_USEDEFAULT,
-		CW_USEDEFAULT,
-		360,//CW_USEDEFAULT,
-		240,//CW_USEDEFAULT,
-		0,
-		0,
-		g_hInst,
-		0);
-
-	if (NULL == hwnd) return 0;
-
-	pWindowText = lpCmdLine[0] ? lpCmdLine : "Hello Windows!";
-
-	// Main message loop:
-	while (GetMessage(&msg, NULL, 0, 0) > 0)
-	{
-		TranslateMessage(&msg);
-		DispatchMessage(&msg);
-	}
-
-	return msg.wParam;
-}
-
-//+---------------------------------------------------------------------------
-
-//+---------------------------------------------------------------------------
-
-void CenterWindow(HWND hwnd_self)
-{
-	RECT rw_self, rc_parent, rw_parent; HWND hwnd_parent;
-	hwnd_parent = GetParent(hwnd_self);
-	if (NULL==hwnd_parent) hwnd_parent = GetDesktopWindow();
-	GetWindowRect(hwnd_parent, &rw_parent);
-	GetClientRect(hwnd_parent, &rc_parent);
-	GetWindowRect(hwnd_self, &rw_self);
-	SetWindowPos(hwnd_self, NULL,
-		rw_parent.left + (rc_parent.right + rw_self.left - rw_self.right) / 2,
-		rw_parent.top  + (rc_parent.bottom + rw_self.top - rw_self.bottom) / 2,
-		0, 0,
-		SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE
-		);
-}
-
-//+---------------------------------------------------------------------------

+ 0 - 54
web/NotepadA/utils/gcci/tcc/include/_mingw.h

@@ -1,54 +0,0 @@
-/*
- * _mingw.h
- *
- *  This file is for TCC-PE and not part of the Mingw32 package.
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#ifndef __MINGW_H
-#define __MINGW_H
-
-#include <stddef.h>
-
-#define __int64 long long
-#define __int32 long
-#define __int16 short
-#define __int8 char
-#define __cdecl __attribute__((__cdecl__))
-#define __stdcall __attribute__((__stdcall__))
-#define __declspec(x) __attribute__((x))
-
-#define __MINGW32_VERSION 2.0
-#define __MINGW32_MAJOR_VERSION 2
-#define __MINGW32_MINOR_VERSION 0
-
-#define __MSVCRT__ 1
-#define __MINGW_IMPORT extern
-#define _CRTIMP
-#define __CRT_INLINE extern __inline__
-
-#define WIN32 1
-
-#ifndef _WINT_T
-#define _WINT_T
-typedef unsigned int wint_t;
-#endif
-
-/* for winapi */
-#define _ANONYMOUS_UNION
-#define _ANONYMOUS_STRUCT
-#define DECLSPEC_NORETURN
-#define WIN32_LEAN_AND_MEAN
-#define DECLARE_STDCALL_P(type) __stdcall type
-
-#endif /* __MINGW_H */

+ 0 - 71
web/NotepadA/utils/gcci/tcc/include/assert.h

@@ -1,71 +0,0 @@
-/* 
- * assert.h
- *
- * Define the assert macro for debug output.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef _ASSERT_H_
-#define	_ASSERT_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#ifndef RC_INVOKED
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-#ifdef NDEBUG
-
-/*
- * If not debugging, assert does nothing.
- */
-#define assert(x)	((void)0)
-
-#else /* debugging enabled */
-
-/*
- * CRTDLL nicely supplies a function which does the actual output and
- * call to abort.
- */
-void	_assert (const char*, const char*, int)
-#ifdef	__GNUC__
-	__attribute__ ((noreturn))
-#endif
-	;
-
-/*
- * Definition of the assert macro.
- */
-#define assert(e)       ((e) ? (void)0 : _assert(#e, __FILE__, __LINE__))
-#endif	/* NDEBUG */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif /* Not RC_INVOKED */
-
-#endif /* Not _ASSERT_H_ */
-

+ 0 - 159
web/NotepadA/utils/gcci/tcc/include/conio.h

@@ -1,159 +0,0 @@
-/* A conio implementation for Mingw/Dev-C++.
- *
- * Written by:
- * Hongli Lai <[email protected]>
- * tkorrovi <[email protected]> on 2002/02/26. 
- * Andrew Westcott <[email protected]>
- *
- * Offered for use in the public domain without any warranty.
- */
-
-#ifndef _CONIO_H_
-#define _CONIO_H_
-
-
-#include <stdio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define BLINK 0
-
-typedef enum
-{
-    BLACK,
-    BLUE,
-    GREEN,
-    CYAN,
-    RED,
-    MAGENTA,
-    BROWN,
-    LIGHTGRAY,
-    DARKGRAY,
-    LIGHTBLUE,
-    LIGHTGREEN,
-    LIGHTCYAN,
-    LIGHTRED,
-    LIGHTMAGENTA,
-    YELLOW,
-    WHITE
-} COLORS;
-
-
-#define cgets	_cgets
-#define cprintf	_cprintf
-#define cputs	_cputs
-#define cscanf	_cscanf
-#define ScreenClear clrscr
-
-/* blinkvideo */
-
-void clreol (void);
-void clrscr (void);
-
-int _conio_gettext (int left, int top, int right, int bottom,
-                    char *str);
-/* _conio_kbhit */
-
-void delline (void);
-
-/* gettextinfo */
-void gotoxy(int x, int y);
-/*
-highvideo
-insline
-intensevideo
-lowvideo
-movetext
-normvideo
-*/
-
-void puttext (int left, int top, int right, int bottom, char *str);
-
-// Screen Variables
-
-/* ScreenCols
-ScreenGetChar
-ScreenGetCursor
-ScreenMode
-ScreenPutChar
-ScreenPutString
-ScreenRetrieve
-ScreenRows
-ScreenSetCursor
-ScreenUpdate
-ScreenUpdateLine
-ScreenVisualBell
-_set_screen_lines */
-
-void _setcursortype (int type);
-
-void textattr (int _attr);
-
-void textbackground (int color);
-
-void textcolor (int color);
-
-/* textmode */
-
-int wherex (void);
-
-int wherey (void);
-
-/* window */
-
-
-
-/*  The code below was part of Mingw's conio.h  */
-/*
- * conio.h
- *
- * Low level console I/O functions. Pretty please try to use the ANSI
- * standard ones if you are writing new code.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-char*	_cgets (char*);
-int	_cprintf (const char*, ...);
-int	_cputs (const char*);
-int	_cscanf (char*, ...);
-
-int	_getch (void);
-int	_getche (void);
-int	_kbhit (void);
-int	_putch (int);
-int	_ungetch (int);
-
-
-int	getch (void);
-int	getche (void);
-int	kbhit (void);
-int	putch (int);
-int	ungetch (int);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _CONIO_H_ */

+ 0 - 232
web/NotepadA/utils/gcci/tcc/include/ctype.h

@@ -1,232 +0,0 @@
-/* 
- * ctype.h
- *
- * Functions for testing character types and converting characters.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef _CTYPE_H_
-#define _CTYPE_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#define	__need_wchar_t
-#define	__need_wint_t
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif	/* Not RC_INVOKED */
-
-
-/*
- * The following flags are used to tell iswctype and _isctype what character
- * types you are looking for.
- */
-#define	_UPPER		0x0001
-#define	_LOWER		0x0002
-#define	_DIGIT		0x0004
-#define	_SPACE		0x0008 /* HT  LF  VT  FF  CR  SP */
-#define	_PUNCT		0x0010
-#define	_CONTROL	0x0020
-#define	_BLANK		0x0040 /* this is SP only, not SP and HT as in C99  */
-#define	_HEX		0x0080
-#define	_LEADBYTE	0x8000
-
-#define	_ALPHA		0x0103
-
-#ifndef RC_INVOKED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int	isalnum(int);
-int	isalpha(int);
-int	iscntrl(int);
-int	isdigit(int);
-int	isgraph(int);
-int	islower(int);
-int	isprint(int);
-int	ispunct(int);
-int	isspace(int);
-int	isupper(int);
-int	isxdigit(int);
-
-#ifndef __STRICT_ANSI__
-int	_isctype (int, int);
-#endif
-
-/* These are the ANSI versions, with correct checking of argument */
-int	tolower(int);
-int	toupper(int);
-
-/*
- * NOTE: The above are not old name type wrappers, but functions exported
- * explicitly by MSVCRT/CRTDLL. However, underscored versions are also
- * exported.
- */
-#ifndef	__STRICT_ANSI__
-/*
- *  These are the cheap non-std versions: The return values are undefined
- *  if the argument is not ASCII char or is not of appropriate case
- */ 
-int	_tolower(int);
-int	_toupper(int);
-#endif
-
-/* Also defined in stdlib.h */
-#ifndef MB_CUR_MAX
-# ifdef __MSVCRT__
-#  define MB_CUR_MAX __mb_cur_max
-   __MINGW_IMPORT int __mb_cur_max;
-# else /* not __MSVCRT */
-#  define MB_CUR_MAX __mb_cur_max_dll
-   __MINGW_IMPORT int __mb_cur_max_dll;
-# endif /* not __MSVCRT */
-#endif  /* MB_CUR_MAX */
-
-__MINGW_IMPORT unsigned short _ctype[];
-#ifdef __MSVCRT__
-__MINGW_IMPORT unsigned short* _pctype;
-#else /* CRTDLL */
-__MINGW_IMPORT unsigned short* _pctype_dll;
-#define  _pctype _pctype_dll
-#endif
-
-/*
- * Use inlines here rather than macros, because macros will upset 
- * C++ usage (eg, ::isalnum), and so usually get undefined
- *
- * According to standard for SB chars, these function are defined only
- * for input values representable by unsigned char or EOF.
- * Thus, there is no range test.
- * This reproduces behaviour of MSVCRT.dll lib implemention for SB chars.
- *
- * If no MB char support is needed, these can be simplified even
- * more by command line define -DMB_CUR_MAX=1.  The compiler will then
- * optimise away the constant condition.			
- */
-
-
-#if ! (defined (__NO_CTYPE_INLINES) || defined (__STRICT_ANSI__ ))
-/* use  simple lookup if SB locale, else  _isctype()  */
-#define __ISCTYPE(c, mask)  (MB_CUR_MAX == 1 ? (_pctype[c] & mask) : _isctype(c, mask))
-extern __inline__ int isalnum(int c) {return __ISCTYPE(c, (_ALPHA|_DIGIT));}
-extern __inline__ int isalpha(int c) {return __ISCTYPE(c, _ALPHA);}
-extern __inline__ int iscntrl(int c) {return __ISCTYPE(c, _CONTROL);}
-extern __inline__ int isdigit(int c) {return __ISCTYPE(c, _DIGIT);}
-extern __inline__ int isgraph(int c) {return __ISCTYPE(c, (_PUNCT|_ALPHA|_DIGIT));}
-extern __inline__ int islower(int c) {return __ISCTYPE(c, _LOWER);}
-extern __inline__ int isprint(int c) {return __ISCTYPE(c, (_BLANK|_PUNCT|_ALPHA|_DIGIT));}
-extern __inline__ int ispunct(int c) {return __ISCTYPE(c, _PUNCT);}
-extern __inline__ int isspace(int c) {return __ISCTYPE(c, _SPACE);}
-extern __inline__ int isupper(int c) {return __ISCTYPE(c, _UPPER);}
-extern __inline__ int isxdigit(int c) {return __ISCTYPE(c, _HEX);}
-
-/* these reproduce behaviour of lib underscored versions  */
-extern __inline__ int _tolower(int c) {return ( c -'A'+'a');}
-extern __inline__ int _toupper(int c) {return ( c -'a'+'A');}
-
-/* TODO? Is it worth inlining ANSI tolower, toupper? Probably only
-   if we only want C-locale. */
-
-#endif /* _NO_CTYPE_INLINES */
-
-/* Wide character equivalents */
-
-#ifndef WEOF
-#define	WEOF	(wchar_t)(0xFFFF)
-#endif
-
-#ifndef _WCTYPE_T_DEFINED
-typedef wchar_t wctype_t;
-#define _WCTYPE_T_DEFINED
-#endif
-
-int	iswalnum(wint_t);
-int	iswalpha(wint_t);
-int	iswascii(wint_t);
-int	iswcntrl(wint_t);
-int	iswctype(wint_t, wctype_t);
-int	is_wctype(wint_t, wctype_t);	/* Obsolete! */
-int	iswdigit(wint_t);
-int	iswgraph(wint_t);
-int	iswlower(wint_t);
-int	iswprint(wint_t);
-int	iswpunct(wint_t);
-int	iswspace(wint_t);
-int	iswupper(wint_t);
-int	iswxdigit(wint_t);
-
-wchar_t	towlower(wchar_t);
-wchar_t	towupper(wchar_t);
-
-int	isleadbyte (int);
-
-/* Also in wctype.h */
-#if ! (defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED))
-#define __WCTYPE_INLINES_DEFINED
-extern __inline__ int iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));}
-extern __inline__ int iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));}
-extern __inline__ int iswascii(wint_t wc) {return (((unsigned)wc & 0x7F) ==0);}
-extern __inline__ int iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));}
-extern __inline__ int iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));}
-extern __inline__ int iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));}
-extern __inline__ int iswlower(wint_t wc) {return (iswctype(wc,_LOWER));}
-extern __inline__ int iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));}
-extern __inline__ int iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));}
-extern __inline__ int iswspace(wint_t wc) {return (iswctype(wc,_SPACE));}
-extern __inline__ int iswupper(wint_t wc) {return (iswctype(wc,_UPPER));}
-extern __inline__ int iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));}
-extern __inline__ int isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);}
-#endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */
-
-#ifndef	__STRICT_ANSI__
-int	__isascii (int);
-int	__toascii (int);
-int	__iscsymf (int);	/* Valid first character in C symbol */
-int	__iscsym (int);		/* Valid character in C symbol (after first) */
-
-#ifndef __NO_CTYPE_INLINES
-extern __inline__ int __isascii(int c) {return (((unsigned)c & ~0x7F) == 0);} 
-extern __inline__ int __toascii(int c) {return (c & 0x7F);}
-extern __inline__ int __iscsymf(int c) {return (isalpha(c) || (c == '_'));}
-extern __inline__ int __iscsym(int c)  {return  (isalnum(c) || (c == '_'));}
-#endif /* __NO_CTYPE_INLINES */
-
-#ifndef	_NO_OLDNAMES
-int	isascii (int);
-int	toascii (int);
-int	iscsymf (int);
-int	iscsym (int);
-#endif	/* Not _NO_OLDNAMES */
-
-#endif	/* Not __STRICT_ANSI__ */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _CTYPE_H_ */
-

+ 0 - 26
web/NotepadA/utils/gcci/tcc/include/dir.h

@@ -1,26 +0,0 @@
-/* 
- * dir.h
- *
- * This file OBSOLESCENT and only provided for backward compatibility.
- * Please use io.h instead.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *             Mumit Khan <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#include <io.h>
-

+ 0 - 95
web/NotepadA/utils/gcci/tcc/include/direct.h

@@ -1,95 +0,0 @@
-/*
- * direct.h
- *
- * Functions for manipulating paths and directories (included from io.h)
- * plus functions for setting the current drive.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef __STRICT_ANSI__
-
-#ifndef	_DIRECT_H_
-#define	_DIRECT_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#define __need_wchar_t
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif	/* Not RC_INVOKED */
-
-#include <io.h>
-
-#ifndef RC_INVOKED
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-#ifndef _DISKFREE_T_DEFINED
-/* needed by _getdiskfree (also in dos.h) */
-struct _diskfree_t {
-	unsigned total_clusters;
-	unsigned avail_clusters;
-	unsigned sectors_per_cluster;
-	unsigned bytes_per_sector;
-};
-#define _DISKFREE_T_DEFINED
-#endif  
-
-/*
- * You really shouldn't be using these. Use the Win32 API functions instead.
- * However, it does make it easier to port older code.
- */
-int	_getdrive (void);
-unsigned long _getdrives(void);
-int	_chdrive (int);
-char*	_getdcwd (int, char*, int);
-unsigned _getdiskfree (unsigned, struct _diskfree_t *);
-
-#ifndef	_NO_OLDNAMES
-# define diskfree_t _diskfree_t
-#endif
-
-#ifndef _WDIRECT_DEFINED
-/* wide character versions. Also in wchar.h */
-#ifdef __MSVCRT__ 
-int _wchdir(const wchar_t*);
-wchar_t* _wgetcwd(wchar_t*, int);
-wchar_t* _wgetdcwd(int, wchar_t*, int);
-int _wmkdir(const wchar_t*);
-int _wrmdir(const wchar_t*);
-#endif	/* __MSVCRT__ */
-#define _WDIRECT_DEFINED
-#endif
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _DIRECT_H_ */
-
-#endif	/* Not __STRICT_ANSI__ */
-

+ 0 - 96
web/NotepadA/utils/gcci/tcc/include/dirent.h

@@ -1,96 +0,0 @@
-/*
- * DIRENT.H (formerly DIRLIB.H)
- *
- * by M. J. Weinstein   Released to public domain 1-Jan-89
- *
- * Because I have heard that this feature (opendir, readdir, closedir)
- * it so useful for programmers coming from UNIX or attempting to port
- * UNIX code, and because it is reasonably light weight, I have included
- * it in the Mingw32 package. I have also added an implementation of
- * rewinddir, seekdir and telldir.
- *   - Colin Peters <[email protected]>
- *
- *  This code is distributed in the hope that is will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includeds but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	__STRICT_ANSI__
-
-#ifndef _DIRENT_H_
-#define _DIRENT_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#include <io.h>
-
-#ifndef RC_INVOKED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct dirent
-{
-	long		d_ino;		/* Always zero. */
-	unsigned short	d_reclen;	/* Always zero. */
-	unsigned short	d_namlen;	/* Length of name in d_name. */
-	char*		d_name;		/* File name. */
-	/* NOTE: The name in the dirent structure points to the name in the
-	 *       finddata_t structure in the DIR. */
-};
-
-/*
- * This is an internal data structure. Good programmers will not use it
- * except as an argument to one of the functions below.
- */
-typedef struct
-{
-	/* disk transfer area for this dir */
-	struct _finddata_t	dd_dta;
-
-	/* dirent struct to return from dir (NOTE: this makes this thread
-	 * safe as long as only one thread uses a particular DIR struct at
-	 * a time) */
-	struct dirent		dd_dir;
-
-	/* _findnext handle */
-	long			dd_handle;
-
-	/*
-         * Status of search:
-	 *   0 = not started yet (next entry to read is first entry)
-	 *  -1 = off the end
-	 *   positive = 0 based index of next entry
-	 */
-	short			dd_stat;
-
-	/* given path for dir with search pattern (struct is extended) */
-	char			dd_name[1];
-} DIR;
-
-
-DIR*		opendir (const char*);
-struct dirent*	readdir (DIR*);
-int		closedir (DIR*);
-void		rewinddir (DIR*);
-long		telldir (DIR*);
-void		seekdir (DIR*, long);
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _DIRENT_H_ */
-
-#endif	/* Not __STRICT_ANSI__ */
-

+ 0 - 110
web/NotepadA/utils/gcci/tcc/include/dos.h

@@ -1,110 +0,0 @@
-/*
- * dos.h
- *
- * DOS-specific functions and structures.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by J.J. van der Heijden <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	__STRICT_ANSI__
-
-#ifndef	_DOS_H_
-#define	_DOS_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#define __need_wchar_t
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif	/* Not RC_INVOKED */
-
-/* For DOS file attributes */
-#include <io.h>
-
-#ifndef RC_INVOKED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef __MSVCRT__ /* these are in CRTDLL, but not MSVCRT */
-#ifndef __DECLSPEC_SUPPORTED
-extern unsigned int *__imp__basemajor_dll;
-extern unsigned int *__imp__baseminor_dll;
-extern unsigned int *__imp__baseversion_dll;
-extern unsigned int *__imp__osmajor_dll;
-extern unsigned int *__imp__osminor_dll;
-extern unsigned int *__imp__osmode_dll;
-
-#define _basemajor (*__imp__basemajor_dll)
-#define _baseminor (*__imp__baseminor_dll)
-#define _baseversion (*__imp__baseversion_dll)
-#define _osmajor (*__imp__osmajor_dll)
-#define _osminor (*__imp__osminor_dll)
-#define _osmode (*__imp__osmode_dll)
-
-#else /* __DECLSPEC_SUPPORTED */
-
-__MINGW_IMPORT unsigned int _basemajor_dll;
-__MINGW_IMPORT unsigned int _baseminor_dll;
-__MINGW_IMPORT unsigned int _baseversion_dll;
-__MINGW_IMPORT unsigned int _osmajor_dll;
-__MINGW_IMPORT unsigned int _osminor_dll;
-__MINGW_IMPORT unsigned int _osmode_dll;
-
-#define _basemajor _basemajor_dll
-#define _baseminor _baseminor_dll
-#define _baseversion _baseversion_dll
-#define _osmajor _osmajor_dll
-#define _osminor _osminor_dll
-#define _osmode _osmode_dll
-
-#endif /* __DECLSPEC_SUPPORTED */
-#endif /* ! __MSVCRT__ */
-
-#ifndef _DISKFREE_T_DEFINED
-/* needed by _getdiskfree (also in direct.h) */
-struct _diskfree_t {
-	unsigned total_clusters;
-	unsigned avail_clusters;
-	unsigned sectors_per_cluster;
-	unsigned bytes_per_sector;
-};
-#define _DISKFREE_T_DEFINED
-#endif  
-
-unsigned _getdiskfree (unsigned, struct _diskfree_t *);
-
-#ifndef	_NO_OLDNAMES
-# define diskfree_t _diskfree_t
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _DOS_H_ */
-
-#endif	/* Not __STRICT_ANSI__ */
-

+ 0 - 117
web/NotepadA/utils/gcci/tcc/include/errno.h

@@ -1,117 +0,0 @@
-/* 
- * errno.h
- *
- * Error numbers and access to error reporting.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef _ERRNO_H_
-#define	_ERRNO_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-/*
- * Error numbers.
- * TODO: Can't be sure of some of these assignments, I guessed from the
- * names given by strerror and the defines in the Cygnus errno.h. A lot
- * of the names from the Cygnus errno.h are not represented, and a few
- * of the descriptions returned by strerror do not obviously match
- * their error naming.
- */
-#define EPERM		1	/* Operation not permitted */
-#define	ENOFILE		2	/* No such file or directory */
-#define	ENOENT		2
-#define	ESRCH		3	/* No such process */
-#define	EINTR		4	/* Interrupted function call */
-#define	EIO		5	/* Input/output error */
-#define	ENXIO		6	/* No such device or address */
-#define	E2BIG		7	/* Arg list too long */
-#define	ENOEXEC		8	/* Exec format error */
-#define	EBADF		9	/* Bad file descriptor */
-#define	ECHILD		10	/* No child processes */
-#define	EAGAIN		11	/* Resource temporarily unavailable */
-#define	ENOMEM		12	/* Not enough space */
-#define	EACCES		13	/* Permission denied */
-#define	EFAULT		14	/* Bad address */
-/* 15 - Unknown Error */
-#define	EBUSY		16	/* strerror reports "Resource device" */
-#define	EEXIST		17	/* File exists */
-#define	EXDEV		18	/* Improper link (cross-device link?) */
-#define	ENODEV		19	/* No such device */
-#define	ENOTDIR		20	/* Not a directory */
-#define	EISDIR		21	/* Is a directory */
-#define	EINVAL		22	/* Invalid argument */
-#define	ENFILE		23	/* Too many open files in system */
-#define	EMFILE		24	/* Too many open files */
-#define	ENOTTY		25	/* Inappropriate I/O control operation */
-/* 26 - Unknown Error */
-#define	EFBIG		27	/* File too large */
-#define	ENOSPC		28	/* No space left on device */
-#define	ESPIPE		29	/* Invalid seek (seek on a pipe?) */
-#define	EROFS		30	/* Read-only file system */
-#define	EMLINK		31	/* Too many links */
-#define	EPIPE		32	/* Broken pipe */
-#define	EDOM		33	/* Domain error (math functions) */
-#define	ERANGE		34	/* Result too large (possibly too small) */
-/* 35 - Unknown Error */
-#define	EDEADLOCK	36	/* Resource deadlock avoided (non-Cyg) */
-#define	EDEADLK		36
-/* 37 - Unknown Error */
-#define	ENAMETOOLONG	38	/* Filename too long (91 in Cyg?) */
-#define	ENOLCK		39	/* No locks available (46 in Cyg?) */
-#define	ENOSYS		40	/* Function not implemented (88 in Cyg?) */
-#define	ENOTEMPTY	41	/* Directory not empty (90 in Cyg?) */
-#define	EILSEQ		42	/* Illegal byte sequence */
-
-/*
- * NOTE: ENAMETOOLONG and ENOTEMPTY conflict with definitions in the
- *       sockets.h header provided with windows32api-0.1.2.
- *       You should go and put an #if 0 ... #endif around the whole block
- *       of errors (look at the comment above them).
- */
-
-#ifndef	RC_INVOKED
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-/*
- * Definitions of errno. For _doserrno, sys_nerr and * sys_errlist, see
- * stdlib.h.
- */
-#ifdef _UWIN
-#undef errno
-extern int errno;
-#else
-int*	_errno(void);
-#define	errno		(*_errno())
-#endif
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _ERRNO_H_ */

+ 0 - 20
web/NotepadA/utils/gcci/tcc/include/excpt.h

@@ -1,20 +0,0 @@
-#ifndef _EXCPT_H
-#define _EXCPT_H
-#if __GNUC__ >=3
-#pragma GCC system_header
-#endif
-
-/* FIXME: This will make some code compile. The programs will most
-   likely crash when an exception is raised, but at least they will
-   compile. */
-#ifdef __GNUC__
-#define __try
-#define __except(x) if (0) /* don't execute handler */
-#define __finally
-
-#define _try __try
-#define _except __except
-#define _finally __finally
-#endif
-
-#endif

+ 0 - 135
web/NotepadA/utils/gcci/tcc/include/fcntl.h

@@ -1,135 +0,0 @@
-/*
- * fcntl.h
- *
- * Access constants for _open. Note that the permissions constants are
- * in sys/stat.h (ick).
- *
- * This code is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef __STRICT_ANSI__
-
-#ifndef _FCNTL_H_
-#define _FCNTL_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-/*
- * It appears that fcntl.h should include io.h for compatibility...
- */
-#include <io.h>
-
-/* Specifiy one of these flags to define the access mode. */
-#define	_O_RDONLY	0
-#define _O_WRONLY	1
-#define _O_RDWR		2
-
-/* Mask for access mode bits in the _open flags. */
-#define _O_ACCMODE	(_O_RDONLY|_O_WRONLY|_O_RDWR)
-
-#define	_O_APPEND	0x0008	/* Writes will add to the end of the file. */
-
-#define	_O_RANDOM	0x0010
-#define	_O_SEQUENTIAL	0x0020
-#define	_O_TEMPORARY	0x0040	/* Make the file dissappear after closing.
-				 * WARNING: Even if not created by _open! */
-#define	_O_NOINHERIT	0x0080
-
-#define	_O_CREAT	0x0100	/* Create the file if it does not exist. */
-#define	_O_TRUNC	0x0200	/* Truncate the file if it does exist. */
-#define	_O_EXCL		0x0400	/* Open only if the file does not exist. */
-
-/* NOTE: Text is the default even if the given _O_TEXT bit is not on. */
-#define	_O_TEXT		0x4000	/* CR-LF in file becomes LF in memory. */
-#define	_O_BINARY	0x8000	/* Input and output is not translated. */
-#define	_O_RAW		_O_BINARY
-
-#ifndef	_NO_OLDNAMES
-
-/* POSIX/Non-ANSI names for increased portability */
-#define	O_RDONLY	_O_RDONLY
-#define O_WRONLY	_O_WRONLY
-#define O_RDWR		_O_RDWR
-#define O_ACCMODE	_O_ACCMODE
-#define	O_APPEND	_O_APPEND
-#define	O_CREAT		_O_CREAT
-#define	O_TRUNC		_O_TRUNC
-#define	O_EXCL		_O_EXCL
-#define	O_TEXT		_O_TEXT
-#define	O_BINARY	_O_BINARY
-#define	O_TEMPORARY	_O_TEMPORARY
-#define O_NOINHERIT	_O_NOINHERIT
-#define O_SEQENTIAL	_O_SEQUENTIAL
-#define	O_RANDOM	_O_RANDOM
-
-#endif	/* Not _NO_OLDNAMES */
-
-
-#ifndef RC_INVOKED
-
-/*
- * This variable determines the default file mode.
- * TODO: Which flags work?
- */
-#ifndef __DECLSPEC_SUPPORTED
-
-#ifdef __MSVCRT__
-extern unsigned int* __imp__fmode;
-#define	_fmode	(*__imp__fmode)
-#else
-/* CRTDLL */
-extern unsigned int* __imp__fmode_dll;
-#define	_fmode	(*__imp__fmode_dll)
-#endif
-
-#else /* __DECLSPEC_SUPPORTED */
-
-#ifdef __MSVCRT__
-__MINGW_IMPORT unsigned int _fmode;
-#else /* ! __MSVCRT__ */
-__MINGW_IMPORT unsigned int _fmode_dll;
-#define	_fmode	_fmode_dll
-#endif /* ! __MSVCRT__ */
-
-#endif /* __DECLSPEC_SUPPORTED */
-
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-int	_setmode (int, int);
-
-#ifndef	_NO_OLDNAMES
-int	setmode (int, int);
-#endif	/* Not _NO_OLDNAMES */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _FCNTL_H_ */
-
-#endif	/* Not __STRICT_ANSI__ */
-

+ 0 - 85
web/NotepadA/utils/gcci/tcc/include/fenv.h

@@ -1,85 +0,0 @@
-#ifndef _FENV_H
-#define _FENV_H
-
-/*
-  For now, support only for the basic abstraction of flags that are
-  either set or clear. fexcept_t could be  structure that holds more info
-  about the fp environment.
-*/
-typedef unsigned short fexcept_t;
-
-/* This 28-byte struct represents the entire floating point
-   environment as stored by fnstenv or fstenv */
-typedef struct
-{
-  unsigned short __control_word;
-  unsigned short __unused0;
-  unsigned short __status_word;
-  unsigned short __unused1;
-  unsigned short __tag_word;
-  unsigned short __unused2;  
-  unsigned int	 __ip_offset;    /* instruction pointer offset */
-  unsigned short __ip_selector;  
-  unsigned short __opcode;
-  unsigned int	 __data_offset;
-  unsigned short __data_selector;  
-  unsigned short __unused3;
-} fenv_t;
-
-
-/* FPU status word exception flags */
-#define FE_INVALID	0x01
-#define FE_DENORMAL	0x02
-#define FE_DIVBYZERO	0x04
-#define FE_OVERFLOW	0x08
-#define FE_UNDERFLOW	0x10
-#define FE_INEXACT	0x20
-#define FE_ALL_EXCEPT (FE_INVALID | FE_DENORMAL | FE_DIVBYZERO \
-		       | FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
-
-/* FPU control word rounding flags */
-#define FE_TONEAREST	0x0000
-#define FE_DOWNWARD	0x0400
-#define FE_UPWARD	0x0800
-#define FE_TOWARDZERO	0x0c00
-
-
-/* The default floating point environment */
-#define FE_DFL_ENV ((const fenv_t *)-1)
-
-
-#ifndef RC_INVOKED
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*TODO: Some of these could be inlined */
-/* 7.6.2 Exception */
-
-extern int feclearexcept (int);
-extern int fegetexceptflag (fexcept_t * flagp, int excepts);
-extern int feraiseexcept (int excepts );
-extern int fesetexceptflag (const fexcept_t *, int);
-extern int fetestexcept (int excepts);
-
-
-/* 7.6.3 Rounding */
-
-extern int fegetround (void);
-extern int fesetround (int mode);
-
-
-/* 7.6.4 Environment */
-
-extern int fegetenv (fenv_t * envp);
-extern int fesetenv (const fenv_t * );
-extern int feupdateenv (const fenv_t *);
-extern int feholdexcept (fenv_t *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif	/* Not RC_INVOKED */
-
-#endif /* ndef _FENV_H */

+ 0 - 224
web/NotepadA/utils/gcci/tcc/include/float.h

@@ -1,224 +0,0 @@
-/* 
- * float.h
- *
- * Constants related to floating point arithmetic.
- *
- * Also included here are some non-ANSI bits for accessing the floating
- * point controller.
- *
- * NOTE: GCC provides float.h, and it is probably more accurate than this,
- *       but it doesn't include the non-standard stuff for accessing the
- *       fp controller. (TODO: Move those bits elsewhere?) Thus it is
- *       probably not a good idea to use the GCC supplied version instead
- *       of this header.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef _FLOAT_H_
-#define _FLOAT_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#define FLT_ROUNDS	1
-#define FLT_GUARD	1
-#define FLT_NORMALIZE	1
-
-/*
- * The characteristics of float.
- */
-
-/* The radix for floating point representation. */
-#define FLT_RADIX	2
-
-/* Decimal digits of precision. */
-#define FLT_DIG		6
-
-/* Smallest number such that 1+x != 1 */
-#define FLT_EPSILON	1.19209290e-07F
-
-/* The number of base FLT_RADIX digits in the mantissa. */
-#define FLT_MANT_DIG	24
-
-/* The maximum floating point number. */
-#define FLT_MAX		3.40282347e+38F
-
-/* Maximum n such that FLT_RADIX^n - 1 is representable. */
-#define FLT_MAX_EXP	128
-
-/* Maximum n such that 10^n is representable. */
-#define FLT_MAX_10_EXP	38
-
-/* Minimum normalized floating-point number. */
-#define FLT_MIN		1.17549435e-38F
-
-/* Minimum n such that FLT_RADIX^n is a normalized number. */
-#define FLT_MIN_EXP	(-125)
-
-/* Minimum n such that 10^n is a normalized number. */
-#define FLT_MIN_10_EXP	(-37)
-
-
-/*
- * The characteristics of double.
- */
-#define DBL_DIG		15
-#define DBL_EPSILON	1.1102230246251568e-16
-#define DBL_MANT_DIG	53
-#define DBL_MAX		1.7976931348623157e+308
-#define DBL_MAX_EXP	1024
-#define DBL_MAX_10_EXP	308
-#define DBL_MIN		2.2250738585072014e-308
-#define DBL_MIN_EXP	(-1021)
-#define DBL_MIN_10_EXP	(-307)
-
-
-/*
- * The characteristics of long double.
- * NOTE: long double is the same as double.
- */
-#define LDBL_DIG	15
-#define LDBL_EPSILON	1.1102230246251568e-16L
-#define LDBL_MANT_DIG	53
-#define LDBL_MAX	1.7976931348623157e+308L
-#define LDBL_MAX_EXP	1024
-#define LDBL_MAX_10_EXP	308
-#define LDBL_MIN	2.2250738585072014e-308L
-#define LDBL_MIN_EXP	(-1021)
-#define LDBL_MIN_10_EXP	(-307)
-
-
-/*
- * Functions and definitions for controlling the FPU.
- */
-#ifndef	__STRICT_ANSI__
-
-/* TODO: These constants are only valid for x86 machines */
-
-/* Control word masks for unMask */
-#define	_MCW_EM		0x0008001F	/* Error masks */
-#define	_MCW_IC		0x00040000	/* Infinity */
-#define	_MCW_RC		0x00000300	/* Rounding */
-#define	_MCW_PC		0x00030000	/* Precision */
-
-/* Control word values for unNew (use with related unMask above) */
-#define	_EM_INVALID	0x00000010
-#define	_EM_DENORMAL	0x00080000
-#define	_EM_ZERODIVIDE	0x00000008
-#define	_EM_OVERFLOW	0x00000004
-#define	_EM_UNDERFLOW	0x00000002
-#define	_EM_INEXACT	0x00000001
-#define	_IC_AFFINE	0x00040000
-#define	_IC_PROJECTIVE	0x00000000
-#define	_RC_CHOP	0x00000300
-#define	_RC_UP		0x00000200
-#define	_RC_DOWN	0x00000100
-#define	_RC_NEAR	0x00000000
-#define	_PC_24		0x00020000
-#define	_PC_53		0x00010000
-#define	_PC_64		0x00000000
-
-/* These are also defined in Mingw math.h, needed to work around
-   GCC build issues.  */
-/* Return values for fpclass. */
-#ifndef __MINGW_FPCLASS_DEFINED
-#define __MINGW_FPCLASS_DEFINED 1
-#define	_FPCLASS_SNAN	0x0001	/* Signaling "Not a Number" */
-#define	_FPCLASS_QNAN	0x0002	/* Quiet "Not a Number" */
-#define	_FPCLASS_NINF	0x0004	/* Negative Infinity */
-#define	_FPCLASS_NN	0x0008	/* Negative Normal */
-#define	_FPCLASS_ND	0x0010	/* Negative Denormal */
-#define	_FPCLASS_NZ	0x0020	/* Negative Zero */
-#define	_FPCLASS_PZ	0x0040	/* Positive Zero */
-#define	_FPCLASS_PD	0x0080	/* Positive Denormal */
-#define	_FPCLASS_PN	0x0100	/* Positive Normal */
-#define	_FPCLASS_PINF	0x0200	/* Positive Infinity */
-#endif /* __MINGW_FPCLASS_DEFINED */
-
-/* invalid subconditions (_SW_INVALID also set) */
-#define _SW_UNEMULATED		0x0040  /* unemulated instruction */
-#define _SW_SQRTNEG		0x0080  /* square root of a neg number */
-#define _SW_STACKOVERFLOW	0x0200  /* FP stack overflow */
-#define _SW_STACKUNDERFLOW	0x0400  /* FP stack underflow */
-
-/*  Floating point error signals and return codes */
-#define _FPE_INVALID		0x81
-#define _FPE_DENORMAL		0x82
-#define _FPE_ZERODIVIDE		0x83
-#define _FPE_OVERFLOW		0x84
-#define _FPE_UNDERFLOW		0x85
-#define _FPE_INEXACT		0x86
-#define _FPE_UNEMULATED		0x87
-#define _FPE_SQRTNEG		0x88
-#define _FPE_STACKOVERFLOW	0x8a
-#define _FPE_STACKUNDERFLOW	0x8b
-#define _FPE_EXPLICITGEN	0x8c    /* raise( SIGFPE ); */
-
-#ifndef RC_INVOKED
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-/* Set the FPU control word as cw = (cw & ~unMask) | (unNew & unMask),
- * i.e. change the bits in unMask to have the values they have in unNew,
- * leaving other bits unchanged. */
-unsigned int	_controlfp (unsigned int unNew, unsigned int unMask);
-unsigned int	_control87 (unsigned int unNew, unsigned int unMask);
-
-
-unsigned int	_clearfp (void);	/* Clear the FPU status word */
-unsigned int	_statusfp (void);	/* Report the FPU status word */
-#define		_clear87	_clearfp
-#define		_status87	_statusfp
-
-void		_fpreset (void);	/* Reset the FPU */
-void		fpreset (void);
-
-/* Global 'variable' for the current floating point error code. */
-int *	__fpecode(void);
-#define	_fpecode	(*(__fpecode()))
-
-/*
- * IEEE recommended functions
- */
-
-double	_chgsign	(double);
-double	_copysign	(double, double);
-double	_logb		(double);
-double	_nextafter	(double, double);
-double	_scalb		(double, long);
-
-int	_finite		(double);
-int	_fpclass	(double);
-int	_isnan		(double);
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not __STRICT_ANSI__ */
-
-#endif /* _FLOAT_H_ */
-

+ 0 - 275
web/NotepadA/utils/gcci/tcc/include/inttypes.h

@@ -1,275 +0,0 @@
-/* 7.8 Format conversion of integer types <inttypes.h> */
-
-#ifndef _INTTYPES_H
-#define _INTTYPES_H
-
-#include <stdint.h>
-#define __need_wchar_t
-#include <stddef.h>
-
-#ifdef	__cplusplus
-extern	"C"	{
-#endif
-
-typedef struct {
-	intmax_t quot;
-	intmax_t rem;
-	} imaxdiv_t;
-
-#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS)
-
-/* 7.8.1 Macros for format specifiers
- * 
- * MS runtime does not yet understand C9x standard "ll"
- * length specifier. It appears to treat "ll" as "l".
- * The non-standard I64 length specifier causes warning in GCC,
- * but understood by MS runtime functions.
- */
-
-/* fprintf macros for signed types */
-#define PRId8 "d"
-#define PRId16 "d"
-#define PRId32 "d"
-#define PRId64 "I64d"
-
-#define PRIdLEAST8 "d"
-#define PRIdLEAST16 "d"
-#define PRIdLEAST32 "d"
-#define PRIdLEAST64 "I64d"
-
-#define PRIdFAST8 "d"
-#define PRIdFAST16 "d"
-#define PRIdFAST32 "d"
-#define PRIdFAST64 "I64d"
-
-#define PRIdMAX "I64d"
-#define PRIdPTR "d"
-
-#define PRIi8 "i"
-#define PRIi16 "i"
-#define PRIi32 "i"
-#define PRIi64 "I64i"
-
-#define PRIiLEAST8 "i"
-#define PRIiLEAST16 "i"
-#define PRIiLEAST32 "i"
-#define PRIiLEAST64 "I64i"
-
-#define PRIiFAST8 "i"
-#define PRIiFAST16 "i"
-#define PRIiFAST32 "i"
-#define PRIiFAST64 "I64i"
-
-#define PRIiMAX "I64i"
-#define PRIiPTR "i"
-
-#define PRIo8 "o"
-#define PRIo16 "o"
-#define PRIo32 "o"
-#define PRIo64 "I64o"
-
-#define PRIoLEAST8 "o"
-#define PRIoLEAST16 "o"
-#define PRIoLEAST32 "o"
-#define PRIoLEAST64 "I64o"
-
-#define PRIoFAST8 "o"
-#define PRIoFAST16 "o"
-#define PRIoFAST32 "o"
-#define PRIoFAST64 "I64o"
-
-#define PRIoMAX "I64o"
-
-#define PRIoPTR "o"
-
-/* fprintf macros for unsigned types */
-#define PRIu8 "u"
-#define PRIu16 "u"
-#define PRIu32 "u"
-#define PRIu64 "I64u"
-
-
-#define PRIuLEAST8 "u"
-#define PRIuLEAST16 "u"
-#define PRIuLEAST32 "u"
-#define PRIuLEAST64 "I64u"
-
-#define PRIuFAST8 "u"
-#define PRIuFAST16 "u"
-#define PRIuFAST32 "u"
-#define PRIuFAST64 "I64u"
-
-#define PRIuMAX "I64u"
-#define PRIuPTR "u"
-
-#define PRIx8 "x"
-#define PRIx16 "x"
-#define PRIx32 "x"
-#define PRIx64 "I64x"
-
-#define PRIxLEAST8 "x"
-#define PRIxLEAST16 "x"
-#define PRIxLEAST32 "x"
-#define PRIxLEAST64 "I64x"
-
-#define PRIxFAST8 "x"
-#define PRIxFAST16 "x"
-#define PRIxFAST32 "x"
-#define PRIxFAST64 "I64x"
-
-#define PRIxMAX "I64x"
-#define PRIxPTR "x"
-
-#define PRIX8 "X"
-#define PRIX16 "X"
-#define PRIX32 "X"
-#define PRIX64 "I64X"
-
-#define PRIXLEAST8 "X"
-#define PRIXLEAST16 "X"
-#define PRIXLEAST32 "X"
-#define PRIXLEAST64 "I64X"
-
-#define PRIXFAST8 "X"
-#define PRIXFAST16 "X"
-#define PRIXFAST32 "X"
-#define PRIXFAST64 "I64X"
-
-#define PRIXMAX "I64X"
-#define PRIXPTR "X"
-
-/*
- *   fscanf macros for signed int types
- *   NOTE: if 32-bit int is used for int_fast8_t and int_fast16_t
- *   (see stdint.h, 7.18.1.3), FAST8 and FAST16 should have
- *   no length identifiers
- */
-
-#define SCNd16 "hd"
-#define SCNd32 "d"
-#define SCNd64 "I64d"
-
-#define SCNdLEAST16 "hd"
-#define SCNdLEAST32 "d"
-#define SCNdLEAST64 "I64d"
-
-#define SCNdFAST16 "hd"
-#define SCNdFAST32 "d"
-#define SCNdFAST64 "I64d"
-
-#define SCNdMAX "I64d"
-#define SCNdPTR "d"
-
-#define SCNi16 "hi"
-#define SCNi32 "i"
-#define SCNi64 "I64i"
-
-#define SCNiLEAST16 "hi"
-#define SCNiLEAST32 "i"
-#define SCNiLEAST64 "I64i"
-
-#define SCNiFAST16 "hi"
-#define SCNiFAST32 "i"
-#define SCNiFAST64 "I64i"
-
-#define SCNiMAX "I64i"
-#define SCNiPTR "i"
-
-#define SCNo16 "ho"
-#define SCNo32 "o"
-#define SCNo64 "I64o"
-
-#define SCNoLEAST16 "ho"
-#define SCNoLEAST32 "o"
-#define SCNoLEAST64 "I64o"
-
-#define SCNoFAST16 "ho"
-#define SCNoFAST32 "o"
-#define SCNoFAST64 "I64o"
-
-#define SCNoMAX "I64o"
-#define SCNoPTR "o"
-
-#define SCNx16 "hx"
-#define SCNx32 "x"
-#define SCNx64 "I64x"
-
-#define SCNxLEAST16 "hx"
-#define SCNxLEAST32 "x"
-#define SCNxLEAST64 "I64x"
-
-#define SCNxFAST16 "hx"
-#define SCNxFAST32 "x"
-#define SCNxFAST64 "I64x"
-
-#define SCNxMAX "I64x"
-#define SCNxPTR "x"
-
-
-/* fscanf macros for unsigned int types */
-
-#define SCNu16 "hu"
-#define SCNu32 "u"
-#define SCNu64 "I64u"
-
-#define SCNuLEAST16 "hu"
-#define SCNuLEAST32 "u"
-#define SCNuLEAST64 "I64u"
-
-#define SCNuFAST16 "hu"
-#define SCNuFAST32 "u"
-#define SCNuFAST64 "I64u"
-
-#define SCNuMAX "I64u"
-#define SCNuPTR "u"
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-/*
- * no length modifier for char types prior to C9x
- * MS runtime  scanf appears to treat "hh" as "h" 
- */
-
-/* signed char */
-#define SCNd8 "hhd"
-#define SCNdLEAST8 "hhd"
-#define SCNdFAST8 "hhd"
-
-#define SCNi8 "hhi"
-#define SCNiLEAST8 "hhi"
-#define SCNiFAST8 "hhi"
-
-#define SCNo8 "hho"
-#define SCNoLEAST8 "hho"
-#define SCNoFAST8 "hho"
-
-#define SCNx8 "hhx"
-#define SCNxLEAST8 "hhx"
-#define SCNxFAST8 "hhx"
-
-/* unsigned char */
-#define SCNu8 "hhu"
-#define SCNuLEAST8 "hhu"
-#define SCNuFAST8 "hhu"
-#endif /* __STDC_VERSION__ >= 199901 */
-
-#endif	/* !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) */
-
-extern inline intmax_t	imaxabs (intmax_t j)
-	{return	(j >= 0 ? j : -j);}
-imaxdiv_t imaxdiv (intmax_t numer, intmax_t denom);
-
-/* 7.8.2 Conversion functions for greatest-width integer types */
-
-intmax_t   strtoimax (const char* __restrict__ nptr, char** __restrict__ endptr, int base);
-uintmax_t  strtoumax (const char* __restrict__ nptr, char** __restrict__ endptr, int base);
-
-intmax_t wcstoimax (const wchar_t* __restrict__ nptr, wchar_t** __restrict__ endptr,
-	   int base);
-uintmax_t wcstoumax (const wchar_t* __restrict__ nptr, wchar_t** __restrict__ endptr,
-	   int base);
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif /* ndef _INTTYPES_H */

+ 0 - 296
web/NotepadA/utils/gcci/tcc/include/io.h

@@ -1,296 +0,0 @@
-/* 
- * io.h
- *
- * System level I/O functions and types.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	__STRICT_ANSI__
-
-#ifndef	_IO_H_
-#define	_IO_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-/* We need the definition of FILE anyway... */
-#include <stdio.h>
-
-/* MSVC's io.h contains the stuff from dir.h, so I will too.
- * NOTE: This also defines off_t, the file offset type, through
- *       an inclusion of sys/types.h */
-#ifndef __STRICT_ANSI__
-
-#include <sys/types.h>	/* To get time_t. */
-
-/*
- * Attributes of files as returned by _findfirst et al.
- */
-#define	_A_NORMAL	0x00000000
-#define	_A_RDONLY	0x00000001
-#define	_A_HIDDEN	0x00000002
-#define	_A_SYSTEM	0x00000004
-#define	_A_VOLID	0x00000008
-#define	_A_SUBDIR	0x00000010
-#define	_A_ARCH		0x00000020
-
-
-#ifndef RC_INVOKED
-
-#ifndef	_FSIZE_T_DEFINED
-typedef	unsigned long	_fsize_t;
-#define _FSIZE_T_DEFINED
-#endif
-
-/*
- * The following structure is filled in by _findfirst or _findnext when
- * they succeed in finding a match.
- */
-struct _finddata_t
-{
-	unsigned	attrib;		/* Attributes, see constants above. */
-	time_t		time_create;
-	time_t		time_access;	/* always midnight local time */
-	time_t		time_write;
-	_fsize_t	size;
-	char		name[FILENAME_MAX];	/* may include spaces. */
-};
-
-struct _finddatai64_t {
-    unsigned    attrib;
-    time_t      time_create;
-    time_t      time_access;
-    time_t      time_write;
-    __int64     size;
-    char        name[FILENAME_MAX];
-};
-
-
-#ifndef _WFINDDATA_T_DEFINED
-struct _wfinddata_t {
-    	unsigned	attrib;
-    	time_t		time_create;	/* -1 for FAT file systems */
-    	time_t		time_access;	/* -1 for FAT file systems */
-    	time_t		time_write;
-    	_fsize_t	size;
-    	wchar_t		name[FILENAME_MAX];	/* may include spaces. */
-};
-struct _wfinddatai64_t {
-    unsigned    attrib;
-    time_t      time_create;
-    time_t      time_access;
-    time_t      time_write;
-    __int64     size;
-    wchar_t     name[FILENAME_MAX];
-};
-
-#define _WFINDDATA_T_DEFINED
-#endif
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-/*
- * Functions for searching for files. _findfirst returns -1 if no match
- * is found. Otherwise it returns a handle to be used in _findnext and
- * _findclose calls. _findnext also returns -1 if no match could be found,
- * and 0 if a match was found. Call _findclose when you are finished.
- */
-int	_findfirst (const char*, struct _finddata_t*);
-int	_findnext (int, struct _finddata_t*);
-int	_findclose (int);
-
-int	_chdir (const char*);
-char*	_getcwd (char*, int);
-int	_mkdir (const char*);
-char*	_mktemp (char*);
-int	_rmdir (const char*);
-
-
-#ifdef __MSVCRT__
-__int64  _filelengthi64(int);
-long _findfirsti64(const char*, struct _finddatai64_t*);
-int _findnexti64(long, struct _finddatai64_t*);
-__int64  _lseeki64(int, __int64, int);
-__int64  _telli64(int);
-#endif /* __MSVCRT__ */
-
-
-#ifndef _NO_OLDNAMES
-
-#ifndef _UWIN
-int	chdir (const char*);
-char*	getcwd (char*, int);
-int	mkdir (const char*);
-char*	mktemp (char*);
-int	rmdir (const char*);
-#endif /* _UWIN */
-
-#endif /* Not _NO_OLDNAMES */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not __STRICT_ANSI__ */
-
-/* TODO: Maximum number of open handles has not been tested, I just set
- * it the same as FOPEN_MAX. */
-#define	HANDLE_MAX	FOPEN_MAX
-
-
-/* Some defines for _access nAccessMode (MS doesn't define them, but
- * it doesn't seem to hurt to add them). */
-#define	F_OK	0	/* Check for file existence */
-#define	X_OK	1	/* Check for execute permission. */
-#define	W_OK	2	/* Check for write permission */
-#define	R_OK	4	/* Check for read permission */
-
-#ifndef RC_INVOKED
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-int		_access (const char*, int);
-int		_chsize (int, long);
-int		_close (int);
-int		_commit(int);
-
-/* NOTE: The only significant bit in unPermissions appears to be bit 7 (0x80),
- *       the "owner write permission" bit (on FAT). */
-int		_creat (const char*, unsigned);
-
-int		_dup (int);
-int		_dup2 (int, int);
-long		_filelength (int);
-int		_fileno (FILE*);
-long		_get_osfhandle (int);
-int		_isatty (int);
-
-/* In a very odd turn of events this function is excluded from those
- * files which define _STREAM_COMPAT. This is required in order to
- * build GNU libio because of a conflict with _eof in streambuf.h
- * line 107. Actually I might just be able to change the name of
- * the enum member in streambuf.h... we'll see. TODO */
-#ifndef	_STREAM_COMPAT
-int		_eof (int);
-#endif
-
-/* LK_... locking commands defined in sys/locking.h. */
-int		_locking (int, int, long);
-
-long		_lseek (int, long, int);
-
-/* Optional third argument is unsigned unPermissions. */
-int		_open (const char*, int, ...);
-
-int		_open_osfhandle (long, int);
-int		_pipe (int *, unsigned int, int);
-int		_read (int, void*, unsigned int);
-
-/* SH_... flags for nShFlags defined in share.h
- * Optional fourth argument is unsigned unPermissions */
-int		_sopen (const char*, int, int, ...);
-
-long		_tell (int);
-/* Should umask be in sys/stat.h and/or sys/types.h instead? */
-int		_umask (int);
-int		_unlink (const char*);
-int		_write (int, const void*, unsigned int);
-
-/* Wide character versions. Also declared in wchar.h. */
-/* Not in crtdll.dll */
-#if !defined (_WIO_DEFINED)
-#if defined (__MSVCRT__)
-int 		_waccess(const wchar_t*, int);
-int 		_wchmod(const wchar_t*, int);
-int 		_wcreat(const wchar_t*, int);
-long 		_wfindfirst(wchar_t*, struct _wfinddata_t*);
-int 		_wfindnext(long, struct _wfinddata_t *);
-int 		_wunlink(const wchar_t*);
-int 		_wopen(const wchar_t*, int, ...);
-int 		_wsopen(const wchar_t*, int, int, ...);
-wchar_t * 	_wmktemp(wchar_t*);
-long  _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*);
-int  _wfindnexti64(long, struct _wfinddatai64_t*);
-#endif /* defined (__MSVCRT__) */
-#define _WIO_DEFINED
-#endif /* _WIO_DEFINED */
-
-#ifndef	_NO_OLDNAMES
-/*
- * Non-underscored versions of non-ANSI functions to improve portability.
- * These functions live in libmoldname.a.
- */
-
-#ifndef _UWIN
-int		access (const char*, int);
-int		chsize (int, long );
-int		close (int);
-int		creat (const char*, int);
-int		dup (int);
-int		dup2 (int, int);
-int		eof (int);
-long		filelength (int);
-int		fileno (FILE*);
-int		isatty (int);
-long		lseek (int, long, int);
-int		open (const char*, int, ...);
-int		read (int, void*, unsigned int);
-int		sopen (const char*, int, int, ...);
-long		tell (int);
-int		umask (int);
-int		unlink (const char*);
-int		write (int, const void*, unsigned int);
-#endif /* _UWIN */
-
-/* Wide character versions. Also declared in wchar.h. */
-/* Where do these live? Not in libmoldname.a nor in libmsvcrt.a */
-#if 0
-int 		waccess(const wchar_t *, int);
-int 		wchmod(const wchar_t *, int);
-int 		wcreat(const wchar_t *, int);
-long 		wfindfirst(wchar_t *, struct _wfinddata_t *);
-int 		wfindnext(long, struct _wfinddata_t *);
-int 		wunlink(const wchar_t *);
-int 		wrename(const wchar_t *, const wchar_t *);
-int 		wopen(const wchar_t *, int, ...);
-int 		wsopen(const wchar_t *, int, int, ...);
-wchar_t * 	wmktemp(wchar_t *);
-#endif
-
-#endif	/* Not _NO_OLDNAMES */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* _IO_H_ not defined */
-
-#endif	/* Not strict ANSI */
-

+ 0 - 115
web/NotepadA/utils/gcci/tcc/include/limits.h

@@ -1,115 +0,0 @@
-/* 
- * limits.h
- *
- * Defines constants for the sizes of integral types.
- *
- * NOTE: GCC should supply a version of this header and it should be safe to
- *       use that version instead of this one (maybe safer).
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef _LIMITS_H_
-#define _LIMITS_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-/*
- * File system limits
- *
- * TODO: NAME_MAX and OPEN_MAX are file system limits or not? Are they the
- *       same as FILENAME_MAX and FOPEN_MAX from stdio.h?
- * NOTE: Apparently the actual size of PATH_MAX is 260, but a space is
- *       required for the NUL. TODO: Test?
- */
-#define PATH_MAX	(259)
-
-/*
- * Characteristics of the char data type.
- *
- * TODO: Is MB_LEN_MAX correct?
- */
-#define CHAR_BIT	8
-#define MB_LEN_MAX	2
-
-#define SCHAR_MIN	(-128)
-#define SCHAR_MAX	127
-
-#define UCHAR_MAX	255
-
-/* TODO: Is this safe? I think it might just be testing the preprocessor,
- *       not the compiler itself... */
-#if	('\x80' < 0)
-#define CHAR_MIN	SCHAR_MIN
-#define CHAR_MAX	SCHAR_MAX
-#else
-#define CHAR_MIN	0
-#define CHAR_MAX	UCHAR_MAX
-#endif
-
-/*
- * Maximum and minimum values for ints.
- */
-#define INT_MAX		2147483647
-#define INT_MIN		(-INT_MAX-1)
-
-#define UINT_MAX	0xffffffff
-
-/*
- * Maximum and minimum values for shorts.
- */
-#define SHRT_MAX	32767
-#define SHRT_MIN	(-SHRT_MAX-1)
-
-#define USHRT_MAX	0xffff
-
-/*
- * Maximum and minimum values for longs and unsigned longs.
- *
- * TODO: This is not correct for Alphas, which have 64 bit longs.
- */
-#define LONG_MAX	2147483647L
-
-#define LONG_MIN	(-LONG_MAX-1)
-
-#define ULONG_MAX	0xffffffffUL
-
-
-/*
- * The GNU C compiler also allows 'long long int'
- */
-#if	!defined(__STRICT_ANSI__) && defined(__GNUC__)
-
-#define LONG_LONG_MAX	9223372036854775807LL
-#define LONG_LONG_MIN	(-LONG_LONG_MAX-1)
-
-#define ULONG_LONG_MAX	(2ULL * LONG_LONG_MAX + 1)
-
-/* ISO C9x macro names */
-#define LLONG_MAX LONG_LONG_MAX
-#define LLONG_MIN LONG_LONG_MIN
-#define ULLONG_MAX ULONG_LONG_MAX
-
-#endif /* Not Strict ANSI and GNU C compiler */
-
-
-#endif /* not _LIMITS_H_ */

+ 0 - 100
web/NotepadA/utils/gcci/tcc/include/locale.h

@@ -1,100 +0,0 @@
-/* 
- * locale.h
- *
- * Functions and types for localization (ie. changing the appearance of
- * output based on the standards of a certain country).
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	_LOCALE_H_
-#define	_LOCALE_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-/*
- * NOTE: I have tried to test this, but I am limited by my knowledge of
- *       locale issues. The structure does not bomb if you look at the
- *       values, and 'decimal_point' even seems to be correct. But the
- *       rest of the values are, by default, not particularly useful
- *       (read meaningless and not related to the international settings
- *       of the system).
- */
-
-#define	LC_ALL		0
-#define LC_COLLATE	1
-#define LC_CTYPE	2
-#define	LC_MONETARY	3
-#define	LC_NUMERIC	4
-#define	LC_TIME		5
-#define	LC_MIN		LC_ALL
-#define	LC_MAX		LC_TIME
-
-#ifndef RC_INVOKED
-
-/*
- * The structure returned by 'localeconv'.
- */
-struct lconv
-{
-	char*	decimal_point;
-	char*	thousands_sep;
-	char*	grouping;
-	char*	int_curr_symbol;
-	char*	currency_symbol;
-	char*	mon_decimal_point;
-	char*	mon_thousands_sep;
-	char*	mon_grouping;
-	char*	positive_sign;
-	char*	negative_sign;
-	char	int_frac_digits;
-	char	frac_digits;
-	char	p_cs_precedes;
-	char	p_sep_by_space;
-	char	n_cs_precedes;
-	char	n_sep_by_space;
-	char	p_sign_posn;
-	char	n_sign_posn;
-};
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-char*		setlocale (int, const char*);
-struct lconv*	localeconv (void);
-
-#ifndef _WLOCALE_DEFINED  /* also declared in wchar.h */
-# define __need_wchar_t
-# include <stddef.h>
-  wchar_t* 	_wsetlocale(int, const wchar_t*);
-# define _WLOCALE_DEFINED
-#endif /* ndef _WLOCALE_DEFINED */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _LOCALE_H_ */
-

+ 0 - 87
web/NotepadA/utils/gcci/tcc/include/malloc.h

@@ -1,87 +0,0 @@
-/*
- * malloc.h
- *
- * Support for programs which want to use malloc.h to get memory management
- * functions. Unless you absolutely need some of these functions and they are
- * not in the ANSI headers you should use the ANSI standard header files
- * instead.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	__STRICT_ANSI__
-
-#ifndef _MALLOC_H_
-#define _MALLOC_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#include <stdlib.h>
-
-#ifndef RC_INVOKED
-
-/*
- * The structure used to walk through the heap with _heapwalk.
- */
-typedef	struct _heapinfo
-{
-	int*	_pentry;
-	size_t	_size;
-	int	_useflag;
-} _HEAPINFO;
-
-/* Values for _heapinfo.useflag */
-#define _USEDENTRY 0
-#define _FREEENTRY 1
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-/*
-   The _heap* memory allocation functions are supported on NT
-   but not W9x. On latter, they always set errno to ENOSYS.
-*/
-int	_heapwalk (_HEAPINFO*);
-
-#ifndef	_NO_OLDNAMES
-int	heapwalk (_HEAPINFO*);
-#endif	/* Not _NO_OLDNAMES */
-
-int	_heapchk (void);	/* Verify heap integrety. */
-int	_heapmin (void);	/* Return unused heap to the OS. */
-int	_heapset (unsigned int);
-
-size_t	_msize (void*);
-size_t	_get_sbh_threshold (void); 
-int	_set_sbh_threshold (size_t);
-void *	_expand (void*, size_t); 
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* RC_INVOKED */
-
-#endif /* Not _MALLOC_H_ */
-
-#endif /* Not __STRICT_ANSI__ */
-

+ 0 - 438
web/NotepadA/utils/gcci/tcc/include/math.h

@@ -1,438 +0,0 @@
-/* 
- * math.h
- *
- * Mathematical functions.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef _MATH_H_
-#define _MATH_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-/*
- * Types for the _exception structure.
- */
-
-#define	_DOMAIN		1	/* domain error in argument */
-#define	_SING		2	/* singularity */
-#define	_OVERFLOW	3	/* range overflow */
-#define	_UNDERFLOW	4	/* range underflow */
-#define	_TLOSS		5	/* total loss of precision */
-#define	_PLOSS		6	/* partial loss of precision */
-
-/*
- * Exception types with non-ANSI names for compatibility.
- */
-
-#ifndef	__STRICT_ANSI__
-#ifndef	_NO_OLDNAMES
-
-#define	DOMAIN		_DOMAIN
-#define	SING		_SING
-#define	OVERFLOW	_OVERFLOW
-#define	UNDERFLOW	_UNDERFLOW
-#define	TLOSS		_TLOSS
-#define	PLOSS		_PLOSS
-
-#endif	/* Not _NO_OLDNAMES */
-#endif	/* Not __STRICT_ANSI__ */
-
-
-/* These are also defined in Mingw float.h; needed here as well to work 
-   around GCC build issues.  */
-#ifndef	__STRICT_ANSI__
-#ifndef __MINGW_FPCLASS_DEFINED
-#define __MINGW_FPCLASS_DEFINED 1
-/* IEEE 754 classication */
-#define	_FPCLASS_SNAN	0x0001	/* Signaling "Not a Number" */
-#define	_FPCLASS_QNAN	0x0002	/* Quiet "Not a Number" */
-#define	_FPCLASS_NINF	0x0004	/* Negative Infinity */
-#define	_FPCLASS_NN	0x0008	/* Negative Normal */
-#define	_FPCLASS_ND	0x0010	/* Negative Denormal */
-#define	_FPCLASS_NZ	0x0020	/* Negative Zero */
-#define	_FPCLASS_PZ	0x0040	/* Positive Zero */
-#define	_FPCLASS_PD	0x0080	/* Positive Denormal */
-#define	_FPCLASS_PN	0x0100	/* Positive Normal */
-#define	_FPCLASS_PINF	0x0200	/* Positive Infinity */
-#endif /* __MINGW_FPCLASS_DEFINED */
-#endif	/* Not __STRICT_ANSI__ */
-
-#ifndef RC_INVOKED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * HUGE_VAL is returned by strtod when the value would overflow the
- * representation of 'double'. There are other uses as well.
- *
- * __imp__HUGE is a pointer to the actual variable _HUGE in
- * MSVCRT.DLL. If we used _HUGE directly we would get a pointer
- * to a thunk function.
- *
- * NOTE: The CRTDLL version uses _HUGE_dll instead.
- */
-
-#ifndef __DECLSPEC_SUPPORTED
-
-#ifdef __MSVCRT__
-extern double*	__imp__HUGE;
-#define	HUGE_VAL	(*__imp__HUGE)
-#else
-/* CRTDLL */
-extern double*	__imp__HUGE_dll;
-#define	HUGE_VAL	(*__imp__HUGE_dll)
-#endif
-
-#else /* __DECLSPEC_SUPPORTED */
-
-#ifdef __MSVCRT__
-__MINGW_IMPORT double	_HUGE;
-#define	HUGE_VAL	_HUGE
-#else
-/* CRTDLL */
-__MINGW_IMPORT double	_HUGE_dll;
-#define	HUGE_VAL	_HUGE_dll
-#endif
-
-#endif /* __DECLSPEC_SUPPORTED */
-
-struct _exception
-{
-	int	type;
-	char	*name;
-	double	arg1;
-	double	arg2;
-	double	retval;
-};
-
-
-double	sin (double);
-double	cos (double);
-double	tan (double);
-double	sinh (double);
-double	cosh (double);
-double	tanh (double);
-double	asin (double);
-double	acos (double);
-double	atan (double);
-double	atan2 (double, double);
-double	exp (double);
-double	log (double);
-double	log10 (double);
-double	pow (double, double);
-double	sqrt (double);
-double	ceil (double);
-double	floor (double);
-double	fabs (double);
-double	ldexp (double, int);
-double	frexp (double, int*);
-double	modf (double, double*);
-double	fmod (double, double);
-
-
-#ifndef	__STRICT_ANSI__
-
-/* Complex number (for cabs) */
-struct _complex
-{
-	double	x;	/* Real part */
-	double	y;	/* Imaginary part */
-};
-
-double	_cabs (struct _complex);
-double	_hypot (double, double);
-double	_j0 (double);
-double	_j1 (double);
-double	_jn (int, double);
-double	_y0 (double);
-double	_y1 (double);
-double	_yn (int, double);
-int	_matherr (struct _exception *);
-
-/* These are also declared in Mingw float.h; needed here as well to work 
-   around GCC build issues.  */
-/* BEGIN FLOAT.H COPY */
-/*
- * IEEE recommended functions
- */
-
-double	_chgsign	(double);
-double	_copysign	(double, double);
-double	_logb		(double);
-double	_nextafter	(double, double);
-double	_scalb		(double, long);
-
-int	_finite		(double);
-int	_fpclass	(double);
-int	_isnan		(double);
-
-/* END FLOAT.H COPY */
-
-#if !defined (_NO_OLDNAMES)  \
-   || (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L )
-
-/*
- * Non-underscored versions of non-ANSI functions. These reside in
- * liboldnames.a. They are now also ISO C99 standand names.
- * Provided for extra portability.
- */
-
-double cabs (struct _complex);
-double hypot (double, double);
-double j0 (double);
-double j1 (double);
-double jn (int, double);
-double y0 (double);
-double y1 (double);
-double yn (int, double);
-
-#endif	/* Not _NO_OLDNAMES */
-
-#endif	/* Not __STRICT_ANSI__ */
-
-#ifdef __cplusplus
-}
-#endif
-#endif	/* Not RC_INVOKED */
-
-
-#ifndef __NO_ISOCEXT
-
-#define INFINITY HUGE_VAL
-#define NAN (0.0F/0.0F)
-
-/*
-   Return values for fpclassify.
-   These are based on Intel x87 fpu condition codes
-   in the high byte of status word and differ from
-   the return values for MS IEEE 754 extension _fpclass()
-*/
-#define FP_NAN		0x0100
-#define FP_NORMAL	0x0400
-#define FP_INFINITE	(FP_NAN | FP_NORMAL)
-#define FP_ZERO		0x4000
-#define FP_SUBNORMAL	(FP_NORMAL | FP_ZERO)
-/* 0x0200 is signbit mask */
-
-#ifndef RC_INVOKED
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-double nan(const char *tagp);
-float nanf(const char *tagp);
-
-#ifndef __STRICT_ANSI__
-#define nan() nan("")
-#define nanf() nanf("")
-#endif
-
-
-/*
-  We can't inline float, because we want to ensure truncation
-  to semantic type before classification.  If we extend to long
-  double, we will also need to make double extern only.
-  (A normal long double value might become subnormal when 
-  converted to double, and zero when converted to float.)
-*/
-extern __inline__ int __fpclassify (double x){
-  unsigned short sw;
-  __asm__ ("fxam; fstsw %%ax;" : "=a" (sw): "t" (x));
-  return sw & (FP_NAN | FP_NORMAL | FP_ZERO );
-}
-
-extern int __fpclassifyf (float);
-
-#define fpclassify(x) ((sizeof(x) == sizeof(float)) ? __fpclassifyf(x) \
-		       :  __fpclassify(x))
-
-/* We don't need to worry about trucation here:
-   A NaN stays a NaN. */
-
-extern __inline__ int __isnan (double _x)
-{
-  unsigned short sw;
-  __asm__ ("fxam;"
-	   "fstsw %%ax": "=a" (sw) : "t" (_x));
-  return (sw & (FP_NAN | FP_NORMAL | FP_INFINITE | FP_ZERO | FP_SUBNORMAL))
-    == FP_NAN;
-}
-
-extern __inline__ int __isnanf (float _x)
-{
-  unsigned short sw;
-  __asm__ ("fxam;"
-	    "fstsw %%ax": "=a" (sw) : "t" (_x));
-  return (sw & (FP_NAN | FP_NORMAL | FP_INFINITE | FP_ZERO | FP_SUBNORMAL))
-    == FP_NAN;
-}
-
-#define isnan(x) ((sizeof(x) == sizeof(float)) ? __isnanf(x) \
-		       :  __isnan(x))
-
-
-#define isfinite(x) ((fpclassify(x) & FP_NAN) == 0)
-#define isinf(x) (fpclassify(x) == FP_INFINITE)
-#define isnormal(x) (fpclassify(x) == FP_NORMAL)
-
-
-extern __inline__ int __signbit (double x) {
-  unsigned short stw;
-  __asm__ ( "fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
-  return stw & 0x0200;
-}
-
-extern  __inline__ int __signbitf (float x) {
-  unsigned short stw;
-  __asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
-  return stw & 0x0200;
-}
-
-#define signbit(x) ((sizeof(x) == sizeof(float)) ? __signbitf(x) \
-		    : __signbit(x))
-/* 
- *  With these functions, comparisons involving quiet NaNs set the FP
- *  condition code to "unordered".  The IEEE floating-point spec
- *  dictates that the result of floating-point comparisons should be
- *  false whenever a NaN is involved, with the exception of the !=, 
- *  which always returns true.
- */
-
-#if __GNUC__ >= 3
-
-#define isgreater(x, y) __builtin_isgreater(x, y)
-#define isgreaterequal(x, y) __builtin_isgreaterequal(x, y)
-#define isless(x, y) __builtin_isless(x, y)
-#define islessequal(x, y) __builtin_islessequal(x, y)
-#define islessgreater(x, y) __builtin_islessgreater(x, y)
-#define isunordered(x, y) __builtin_isunordered(x, y)
-
-#else
-/*  helper  */
-extern  __inline__ int __fp_unordered_compare (double x,  double y){
-  unsigned short retval;
-  __asm__ ("fucom %%st(1);"
-	   "fnstsw;": "=a" (retval) : "t" (x), "u" (y));
-  return retval;
-}
-
-#define isgreater(x, y) ((__fp_unordered_compare(x, y) \
-			   & 0x4500) == 0)
-#define isless(x, y) ((__fp_unordered_compare (y, x) \
-                       & 0x4500) == 0)
-#define isgreaterequal(x, y) ((__fp_unordered_compare (x, y) \
-                               & FP_INFINITE) == 0)
-#define islessequal(x, y) ((__fp_unordered_compare(y, x) \
-			    & FP_INFINITE) == 0)
-#define islessgreater(x, y) ((__fp_unordered_compare(x, y) \
-			      & FP_SUBNORMAL) == 0)
-#define isunordered(x, y) ((__fp_unordered_compare(x, y) \
-			    & 0x4500) == 0x4500)
-
-#endif
-
-/* round, using fpu control word settings */
-extern  __inline__ double rint (double x)
-{
-  double retval;
-  __asm__ ("frndint;": "=t" (retval) : "0" (x));
-  return retval;
-}
-
-extern  __inline__ float rintf (float x)
-{
-  float retval;
-  __asm__ ("frndint;" : "=t" (retval) : "0" (x) );
-  return retval;
-}
-
-/* round away from zero, regardless of fpu control word settings */
-extern double round (double);
-extern float roundf (float);
-
-/* round towards zero, regardless of fpu control word settings */
-extern double trunc (double);
-extern float truncf (float);
-
-
-/* fmax and fmin.
-   NaN arguments are treated as missing data: if one argument is a NaN and the other numeric, then the
-   these functions choose the numeric value.
-*/
-
-extern double fmax  (double, double);
-extern double fmin (double, double);
-extern float fmaxf (float, float);
-float fminf (float, float);
-
-/* return x * y + z as a ternary op */ 
-extern double fma (double, double, double);
-extern float fmaf (float, float, float);
-
-/* one lonely transcendental */
-extern double log2 (double _x);
-extern float log2f (float _x);
-
-/* The underscored versions are in MSVCRT.dll.
-   The stubs for these are in libmingwex.a */
-
-double copysign (double, double);
-float copysignf (float, float);
-double logb (double);
-float logbf (float);
-double nextafter (double, double);
-float nextafterf (float, float);
-double scalb (double, long);
-float scalbf (float, long);
-
-#if !defined (__STRICT_ANSI__)  /* inline using non-ANSI functions */
-extern  __inline__ double copysign (double x, double y)
-	{ return _copysign(x, y); }
-extern  __inline__ float copysignf (float x, float y)
-	{ return  _copysign(x, y); } 
-extern  __inline__ double logb (double x)
-	{ return _logb(x); }
-extern  __inline__ float logbf (float x)
-	{ return  _logb(x); }
-extern  __inline__ double nextafter(double x, double y)
-	{ return _nextafter(x, y); }
-extern  __inline__ float nextafterf(float x, float y)
-	{ return _nextafter(x, y); }
-extern  __inline__ double scalb (double x, long i)
-	{ return _scalb (x, i); }
-extern  __inline__ float scalbf (float x, long i)
-	{ return _scalb(x, i); }
-#endif /* (__STRICT_ANSI__)  */
-
-#ifdef __cplusplus
-}
-#endif
-#endif	/* Not RC_INVOKED */
-
-#endif /* __NO_ISOCEXT */
-
-#endif	/* Not _MATH_H_ */
-

+ 0 - 8
web/NotepadA/utils/gcci/tcc/include/mem.h

@@ -1,8 +0,0 @@
-/*
- * This file is part of the Mingw32 package.
- *
- * mem.h maps to string.h
- */
-#ifndef	__STRICT_ANSI__
-#include <string.h>
-#endif

+ 0 - 9
web/NotepadA/utils/gcci/tcc/include/memory.h

@@ -1,9 +0,0 @@
-/*
- * This file is part of the Mingw32 package.
- *
- * memory.h maps to the standard string.h header.
- */
-#ifndef	__STRICT_ANSI__
-#include	<string.h>
-#endif
-

+ 0 - 158
web/NotepadA/utils/gcci/tcc/include/process.h

@@ -1,158 +0,0 @@
-/* 
- * process.h
- *
- * Function calls for spawning child processes.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	__STRICT_ANSI__
-
-#ifndef	_PROCESS_H_
-#define	_PROCESS_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-/* Includes a definition of _pid_t and pid_t */
-#include <sys/types.h>
-
-/*
- * Constants for cwait actions.
- * Obsolete for Win32.
- */
-#define	_WAIT_CHILD		0
-#define	_WAIT_GRANDCHILD	1
-
-#ifndef	_NO_OLDNAMES
-#define	WAIT_CHILD		_WAIT_CHILD
-#define	WAIT_GRANDCHILD		_WAIT_GRANDCHILD
-#endif	/* Not _NO_OLDNAMES */
-
-/*
- * Mode constants for spawn functions.
- */
-#define	_P_WAIT		0
-#define	_P_NOWAIT	1
-#define	_P_OVERLAY	2
-#define	_OLD_P_OVERLAY	_P_OVERLAY
-#define	_P_NOWAITO	3
-#define	_P_DETACH	4
-
-#ifndef	_NO_OLDNAMES
-#define	P_WAIT		_P_WAIT
-#define	P_NOWAIT	_P_NOWAIT
-#define	P_OVERLAY	_P_OVERLAY
-#define	OLD_P_OVERLAY	_OLD_P_OVERLAY
-#define	P_NOWAITO	_P_NOWAITO
-#define	P_DETACH	_P_DETACH
-#endif	/* Not _NO_OLDNAMES */
-
-
-#ifndef RC_INVOKED
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-void	_cexit(void);
-void	_c_exit(void);
-
-int	_cwait (int*, _pid_t, int);
-
-_pid_t	_getpid(void);
-
-int	_execl		(const char*, const char*, ...);
-int	_execle		(const char*, const char*, ...);
-int	_execlp		(const char*, const char*, ...);
-int	_execlpe	(const char*, const char*, ...);
-int	_execv		(const char*, char* const*);
-int	_execve		(const char*, char* const*, char* const*);
-int	_execvp		(const char*, char* const*);
-int	_execvpe	(const char*, char* const*, char* const*);
-
-int	_spawnl		(int, const char*, const char*, ...);
-int	_spawnle	(int, const char*, const char*, ...);
-int	_spawnlp	(int, const char*, const char*, ...);
-int	_spawnlpe	(int, const char*, const char*, ...);
-int	_spawnv		(int, const char*, char* const*);
-int	_spawnve	(int, const char*, char* const*, char* const*);
-int	_spawnvp	(int, const char*, char* const*);
-int	_spawnvpe	(int, const char*, char* const*, char* const*);
-
-/*
- * The functions _beginthreadex and _endthreadex are not provided by CRTDLL.
- * They are provided by MSVCRT.
- *
- * NOTE: Apparently _endthread calls CloseHandle on the handle of the thread,
- * making for race conditions if you are not careful. Basically you have to
- * make sure that no-one is going to do *anything* with the thread handle
- * after the thread calls _endthread or returns from the thread function.
- *
- * NOTE: No old names for these functions. Use the underscore.
- */
-unsigned long
-	_beginthread	(void (*)(void *), unsigned, void*);
-void	_endthread	(void);
-
-#ifdef	__MSVCRT__
-unsigned long
-	_beginthreadex	(void *, unsigned, unsigned (__stdcall *) (void *), 
-			 void*, unsigned, unsigned*);
-void	_endthreadex	(unsigned);
-#endif
-
-
-#ifndef	_NO_OLDNAMES
-/*
- * Functions without the leading underscore, for portability. These functions
- * live in liboldnames.a.
- */
-int	cwait (int*, pid_t, int);
-pid_t	getpid (void);
-int	execl (const char*, const char*, ...);
-int	execle (const char*, const char*, ...);
-int	execlp (const char*, const char*, ...);
-int	execlpe (const char*, const char*, ...);
-int	execv (const char*, char* const*);
-int	execve (const char*, char* const*, char* const*);
-int	execvp (const char*, char* const*);
-int	execvpe (const char*, char* const*, char* const*);
-int	spawnl (int, const char*, const char*, ...);
-int	spawnle (int, const char*, const char*, ...);
-int	spawnlp (int, const char*, const char*, ...);
-int	spawnlpe (int, const char*, const char*, ...);
-int	spawnv (int, const char*, char* const*);
-int	spawnve (int, const char*, char* const*, char* const*);
-int	spawnvp (int, const char*, char* const*);
-int	spawnvpe (int, const char*, char* const*, char* const*);
-#endif	/* Not _NO_OLDNAMES */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* _PROCESS_H_ not defined */
-
-#endif	/* Not __STRICT_ANSI__ */
-

+ 0 - 72
web/NotepadA/utils/gcci/tcc/include/setjmp.h

@@ -1,72 +0,0 @@
-/* 
- * setjmp.h
- *
- * Declarations supporting setjmp and longjump, a method for avoiding
- * the normal function call return sequence. (Bleah!)
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef _SETJMP_H_
-#define _SETJMP_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#ifndef RC_INVOKED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The buffer used by setjmp to store the information used by longjmp
- * to perform it's evil goto-like work. The size of this buffer was
- * determined through experimentation; it's contents are a mystery.
- * NOTE: This was determined on an i386 (actually a Pentium). The
- *       contents could be different on an Alpha or something else.
- */
-#define _JBLEN 16
-#define _JBTYPE int
-typedef _JBTYPE jmp_buf[_JBLEN];
-
-/*
- * The function provided by CRTDLL which appears to do the actual work
- * of setjmp.
- */
-int	_setjmp (jmp_buf);
-
-#define	setjmp(x)	_setjmp(x)
-
-/*
- * Return to the last setjmp call and act as if setjmp had returned
- * nVal (which had better be non-zero!).
- */
-void	longjmp (jmp_buf, int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _SETJMP_H_ */
-

+ 0 - 44
web/NotepadA/utils/gcci/tcc/include/share.h

@@ -1,44 +0,0 @@
-/*
- * share.h
- *
- * Constants for file sharing functions.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	__STRICT_ANSI__
-
-#ifndef	_SHARE_H_
-#define	_SHARE_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#define SH_COMPAT	0x00	/* Compatibility */
-#define	SH_DENYRW	0x10	/* Deny read/write */
-#define	SH_DENYWR	0x20	/* Deny write */
-#define	SH_DENYRD	0x30	/* Deny read */
-#define	SH_DENYNO	0x40	/* Deny nothing */
-
-#endif	/* Not _SHARE_H_ */
-
-#endif	/* Not __STRICT_ANSI__ */
-

+ 0 - 111
web/NotepadA/utils/gcci/tcc/include/signal.h

@@ -1,111 +0,0 @@
-/* 
- * signal.h
- *
- * A way to set handlers for exceptional conditions (also known as signals).
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	_SIGNAL_H_
-#define	_SIGNAL_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-/*
- * The actual signal values. Using other values with signal
- * produces a SIG_ERR return value.
- *
- * NOTE: SIGINT is produced when the user presses Ctrl-C.
- *       SIGILL has not been tested.
- *       SIGFPE doesn't seem to work?
- *       SIGSEGV does not catch writing to a NULL pointer (that shuts down
- *               your app; can you say "segmentation violation core dump"?).
- *       SIGTERM comes from what kind of termination request exactly?
- *       SIGBREAK is indeed produced by pressing Ctrl-Break.
- *       SIGABRT is produced by calling abort.
- * TODO: The above results may be related to not installing an appropriate
- *       structured exception handling frame. Results may be better if I ever
- *       manage to get the SEH stuff down.
- */
-#define	SIGINT		2	/* Interactive attention */
-#define	SIGILL		4	/* Illegal instruction */
-#define	SIGFPE		8	/* Floating point error */
-#define	SIGSEGV		11	/* Segmentation violation */
-#define	SIGTERM		15	/* Termination request */
-#define SIGBREAK	21	/* Control-break */
-#define	SIGABRT		22	/* Abnormal termination (abort) */
-
-#define NSIG 23     /* maximum signal number + 1 */
-
-#ifndef	RC_INVOKED
-
-#ifndef _SIG_ATOMIC_T_DEFINED
-typedef int sig_atomic_t;
-#define _SIG_ATOMIC_T_DEFINED
-#endif
-
-/*
- * The prototypes (below) are the easy part. The hard part is figuring
- * out what signals are available and what numbers they are assigned
- * along with appropriate values of SIG_DFL and SIG_IGN.
- */
-
-/*
- * A pointer to a signal handler function. A signal handler takes a
- * single int, which is the signal it handles.
- */
-typedef	void (*__p_sig_fn_t)(int);
-
-/*
- * These are special values of signal handler pointers which are
- * used to send a signal to the default handler (SIG_DFL), ignore
- * the signal (SIG_IGN), or indicate an error return (SIG_ERR).
- */
-#define	SIG_DFL	((__p_sig_fn_t) 0)
-#define	SIG_IGN	((__p_sig_fn_t) 1)
-#define	SIG_ERR ((__p_sig_fn_t) -1)
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-/*
- * Call signal to set the signal handler for signal sig to the
- * function pointed to by handler. Returns a pointer to the
- * previous handler, or SIG_ERR if an error occurs. Initially
- * unhandled signals defined above will return SIG_DFL.
- */
-__p_sig_fn_t	signal(int, __p_sig_fn_t);
-
-/*
- * Raise the signal indicated by sig. Returns non-zero on success.
- */
-int	raise (int);
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _SIGNAL_H_ */
-

+ 0 - 16
web/NotepadA/utils/gcci/tcc/include/stdarg.h

@@ -1,16 +0,0 @@
-#ifndef _STDARG_H
-#define _STDARG_H
-
-typedef char *va_list;
-
-/* only correct for i386 */
-#define va_start(ap,last) ap = ((char *)&(last)) + ((sizeof(last)+3)&~3)
-#define va_arg(ap,type) (ap += (sizeof(type)+3)&~3, *(type *)(ap - ((sizeof(type)+3)&~3)))
-#define va_copy(dest, src) (dest) = (src)
-#define va_end(ap)
-
-/* fix a buggy dependency on GCC in libio.h */
-typedef va_list __gnuc_va_list;
-#define _VA_LIST_DEFINED
-
-#endif

+ 0 - 10
web/NotepadA/utils/gcci/tcc/include/stdbool.h

@@ -1,10 +0,0 @@
-#ifndef _STDBOOL_H
-#define _STDBOOL_H
-
-/* ISOC99 boolean */
-
-#define bool	_Bool
-#define true	1
-#define false	0
-
-#endif /* _STDBOOL_H */

+ 0 - 26
web/NotepadA/utils/gcci/tcc/include/stddef.h

@@ -1,26 +0,0 @@
-#ifndef _STDDEF_H
-#define _STDDEF_H
-
-#define NULL ((void *)0)
-typedef __SIZE_TYPE__ size_t;
-typedef __WCHAR_TYPE__ wchar_t;
-typedef __PTRDIFF_TYPE__ ptrdiff_t;
-#define offsetof(type, field) ((size_t) &((type *)0)->field)
-
-/* need to do that because of glibc 2.1 bug (should have a way to test
-   presence of 'long long' without __GNUC__, or TCC should define
-   __GNUC__ ? */
-#if !defined(__int8_t_defined) && !defined(__dietlibc__)
-#define __int8_t_defined
-typedef char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-typedef long long int int64_t;
-#endif
-
-#ifdef __i386__
-void *_alloca(size_t);
-#define alloca _alloca
-#endif
-
-#endif

+ 0 - 184
web/NotepadA/utils/gcci/tcc/include/stdint.h

@@ -1,184 +0,0 @@
-/* ISO C9x  7.18  Integer types <stdint.h>
- * Based on ISO/IEC SC22/WG14 9899 Committee draft (SC22 N2794)
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  Contributor: Danny Smith <[email protected]>
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- *  Date: 2000-12-02
- */
-
-
-#ifndef _STDINT_H
-#define _STDINT_H
-
-/* 7.18.1.1  Exact-width integer types */
-typedef signed char int8_t;
-typedef unsigned char   uint8_t;
-typedef short  int16_t;
-typedef unsigned short  uint16_t;
-typedef int  int32_t;
-typedef unsigned   uint32_t;
-typedef long long  int64_t;
-typedef unsigned long long   uint64_t;
-
-/* 7.18.1.2  Minimum-width integer types */
-typedef signed char int_least8_t;
-typedef unsigned char   uint_least8_t;
-typedef short  int_least16_t;
-typedef unsigned short  uint_least16_t;
-typedef int  int_least32_t;
-typedef unsigned   uint_least32_t;
-typedef long long  int_least64_t;
-typedef unsigned long long   uint_least64_t;
-
-/*  7.18.1.3  Fastest minimum-width integer types 
- *  Not actually guaranteed to be fastest for all purposes
- *  Here we use the exact-width types for 8 and 16-bit ints. 
- */
-typedef char int_fast8_t;
-typedef unsigned char uint_fast8_t;
-typedef short  int_fast16_t;
-typedef unsigned short  uint_fast16_t;
-typedef int  int_fast32_t;
-typedef unsigned  int  uint_fast32_t;
-typedef long long  int_fast64_t;
-typedef unsigned long long   uint_fast64_t;
-
-/* 7.18.1.4  Integer types capable of holding object pointers */
-typedef int intptr_t;
-typedef unsigned uintptr_t;
-
-/* 7.18.1.5  Greatest-width integer types */
-typedef long long  intmax_t;
-typedef unsigned long long   uintmax_t;
-
-/* 7.18.2  Limits of specified-width integer types */
-#if !defined ( __cplusplus) || defined (__STDC_LIMIT_MACROS)
-
-/* 7.18.2.1  Limits of exact-width integer types */
-#define INT8_MIN (-128) 
-#define INT16_MIN (-32768)
-#define INT32_MIN (-2147483647 - 1)
-#define INT64_MIN  (-9223372036854775807LL - 1)
-
-#define INT8_MAX 127
-#define INT16_MAX 32767
-#define INT32_MAX 2147483647
-#define INT64_MAX 9223372036854775807LL
-
-#define UINT8_MAX 0xff /* 255U */
-#define UINT16_MAX 0xffff /* 65535U */
-#define UINT32_MAX 0xffffffff  /* 4294967295U */
-#define UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */
-
-/* 7.18.2.2  Limits of minimum-width integer types */
-#define INT_LEAST8_MIN INT8_MIN
-#define INT_LEAST16_MIN INT16_MIN
-#define INT_LEAST32_MIN INT32_MIN
-#define INT_LEAST64_MIN INT64_MIN
-
-#define INT_LEAST8_MAX INT8_MAX
-#define INT_LEAST16_MAX INT16_MAX
-#define INT_LEAST32_MAX INT32_MAX
-#define INT_LEAST64_MAX INT64_MAX
-
-#define UINT_LEAST8_MAX UINT8_MAX
-#define UINT_LEAST16_MAX UINT16_MAX
-#define UINT_LEAST32_MAX UINT32_MAX
-#define UINT_LEAST64_MAX UINT64_MAX
-
-/* 7.18.2.3  Limits of fastest minimum-width integer types */
-#define INT_FAST8_MIN INT8_MIN
-#define INT_FAST16_MIN INT16_MIN
-#define INT_FAST32_MIN INT32_MIN
-#define INT_FAST64_MIN INT64_MIN
-
-#define INT_FAST8_MAX INT8_MAX
-#define INT_FAST16_MAX INT16_MAX
-#define INT_FAST32_MAX INT32_MAX
-#define INT_FAST64_MAX INT64_MAX
-
-#define UINT_FAST8_MAX UINT8_MAX
-#define UINT_FAST16_MAX UINT16_MAX
-#define UINT_FAST32_MAX UINT32_MAX
-#define UINT_FAST64_MAX UINT64_MAX
-
-/* 7.18.2.4  Limits of integer types capable of holding
-    object pointers */ 
-#define INTPTR_MIN INT32_MIN
-#define INTPTR_MAX INT32_MAX
-#define UINTPTR_MAX UINT32_MAX
-
-/* 7.18.2.5  Limits of greatest-width integer types */
-#define INTMAX_MIN INT64_MIN
-#define INTMAX_MAX INT64_MAX
-#define UINTMAX_MAX UINT64_MAX
-
-/* 7.18.3  Limits of other integer types */
-#define PTRDIFF_MIN INT32_MIN
-#define PTRDIFF_MAX INT32_MAX
-
-#define SIG_ATOMIC_MIN INT32_MIN
-#define SIG_ATOMIC_MAX INT32_MAX
-
-#define SIZE_MAX UINT32_MAX
-
-#ifndef WCHAR_MIN  /* also in wchar.h */ 
-#define WCHAR_MIN 0
-#define WCHAR_MAX ((wchar_t)-1) /* UINT16_MAX */
-#endif
-
-/*
- * wint_t is unsigned int in __MINGW32__,
- * but unsigned short in MS runtime
- */
-#define WINT_MIN 0
-#define WINT_MAX UINT32_MAX
-
-#endif /* !defined ( __cplusplus) || defined __STDC_LIMIT_MACROS */
-
-
-/* 7.18.4  Macros for integer constants */
-#if !defined ( __cplusplus) || defined (__STDC_CONSTANT_MACROS)
-
-/* 7.18.4.1  Macros for minimum-width integer constants
-
-    Accoding to Douglas Gwyn <[email protected]>:
-	"This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC
-	9899:1999 as initially published, the expansion was required
-	to be an integer constant of precisely matching type, which
-	is impossible to accomplish for the shorter types on most
-	platforms, because C99 provides no standard way to designate
-	an integer constant with width less than that of type int.
-	TC1 changed this to require just an integer constant
-	*expression* with *promoted* type."
-
-	The trick used here is from Clive D W Feather.
-*/
-
-#define INT8_C(val) (INT_LEAST8_MAX-INT_LEAST8_MAX+(val))
-#define INT16_C(val) (INT_LEAST16_MAX-INT_LEAST16_MAX+(val))
-#define INT32_C(val) (INT_LEAST32_MAX-INT_LEAST32_MAX+(val))
-#define INT64_C(val) (INT_LEAST64_MAX-INT_LEAST64_MAX+(val))
-
-#define UINT8_C(val) (UINT_LEAST8_MAX-UINT_LEAST8_MAX+(val))
-#define UINT16_C(val) (UINT_LEAST16_MAX-UINT_LEAST16_MAX+(val))
-#define UINT32_C(val) (UINT_LEAST32_MAX-UINT_LEAST32_MAX+(val))
-#define UINT64_C(val) (UINT_LEAST64_MAX-UINT_LEAST64_MAX+(val))
-
-/* 7.18.4.2  Macros for greatest-width integer constants */
-#define INTMAX_C(val) (INTMAX_MAX-INTMAX_MAX+(val))
-#define UINTMAX_C(val) (UINTMAX_MAX-UINTMAX_MAX+(val))
-
-#endif  /* !defined ( __cplusplus) || defined __STDC_CONSTANT_MACROS */
-
-#endif

+ 0 - 413
web/NotepadA/utils/gcci/tcc/include/stdio.h

@@ -1,413 +0,0 @@
-/*
- * stdio.h
- *
- * Definitions of types and prototypes of functions for standard input and
- * output.
- *
- * NOTE: The file manipulation functions provided by Microsoft seem to
- * work with either slash (/) or backslash (\) as the path separator.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef _STDIO_H_
-#define	_STDIO_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#define __need_size_t
-#define __need_NULL
-#define __need_wchar_t
-#define	__need_wint_t
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif	/* Not RC_INVOKED */
-
-
-/* Flags for the iobuf structure  */
-#define	_IOREAD	1
-#define	_IOWRT	2
-#define	_IORW	0x0080 /* opened as "r+w" */
-
-
-/*
- * The three standard file pointers provided by the run time library.
- * NOTE: These will go to the bit-bucket silently in GUI applications!
- */
-#define	STDIN_FILENO	0
-#define	STDOUT_FILENO	1
-#define	STDERR_FILENO	2
-
-/* Returned by various functions on end of file condition or error. */
-#define	EOF	(-1)
-
-/*
- * The maximum length of a file name. You should use GetVolumeInformation
- * instead of this constant. But hey, this works.
- *
- * NOTE: This is used in the structure _finddata_t (see io.h) so changing it
- *       is probably not a good idea.
- */
-#define	FILENAME_MAX	(260)
-
-/*
- * The maximum number of files that may be open at once. I have set this to
- * a conservative number. The actual value may be higher.
- */
-#define FOPEN_MAX	(20)
-
-/* After creating this many names, tmpnam and tmpfile return NULL */
-#define TMP_MAX	32767
-/*
- * Tmpnam, tmpfile and, sometimes, _tempnam try to create
- * temp files in the root directory of the current drive
- * (not in pwd, as suggested by some older MS doc's).
- * Redefining these macros does not effect the CRT functions.
- */
-#define _P_tmpdir   "\\"
-#define _wP_tmpdir  L"\\"
-
-/*
- * The maximum size of name (including NUL) that will be put in the user
- * supplied buffer caName for tmpnam.
- * Inferred from the size of the static buffer returned by tmpnam
- * when passed a NULL argument. May actually be smaller.
- */
-#define L_tmpnam (16)
-
-#define _IOFBF		0x0000
-#define _IOLBF		0x0040
-#define _IONBF		0x0004
-
-/*
- * The buffer size as used by setbuf such that it is equivalent to
- * (void) setvbuf(fileSetBuffer, caBuffer, _IOFBF, BUFSIZ).
- */
-#define	BUFSIZ	512
-
-/* Constants for nOrigin indicating the position relative to which fseek
- * sets the file position. Enclosed in ifdefs because io.h could also
- * define them. (Though not anymore since io.h includes this file now.) */
-#ifndef	SEEK_SET
-#define SEEK_SET	(0)
-#endif
-
-#ifndef	SEEK_CUR
-#define	SEEK_CUR	(1)
-#endif
-
-#ifndef	SEEK_END
-#define SEEK_END	(2)
-#endif
-
-
-#ifndef	RC_INVOKED
-
-/*
- * I used to include stdarg.h at this point, in order to allow for the
- * functions later on in the file which use va_list. That conflicts with
- * using stdio.h and varargs.h in the same file, so I do the typedef myself.
- */
-#ifndef	_VA_LIST
-#define _VA_LIST
-#if defined __GNUC__ && __GNUC__ >= 3
-typedef __builtin_va_list va_list;
-#else
-typedef char* va_list;
-#endif
-#endif
-/*
- * The structure underlying the FILE type.
- *
- * I still believe that nobody in their right mind should make use of the
- * internals of this structure. Provided by Pedro A. Aranda Gutiirrez
- * <[email protected]>.
- */
-#ifndef _FILE_DEFINED
-#define	_FILE_DEFINED
-typedef struct _iobuf
-{
-	char*	_ptr;
-	int	_cnt;
-	char*	_base;
-	int	_flag;
-	int	_file;
-	int	_charbuf;
-	int	_bufsiz;
-	char*	_tmpfname;
-} FILE;
-#endif	/* Not _FILE_DEFINED */
-
-
-/*
- * The standard file handles
- */
-#ifndef __DECLSPEC_SUPPORTED
-
-extern FILE (*__imp__iob)[];	/* A pointer to an array of FILE */
-
-#define _iob	(*__imp__iob)	/* An array of FILE */
-
-#else /* __DECLSPEC_SUPPORTED */
-
-__MINGW_IMPORT FILE _iob[];	/* An array of FILE imported from DLL. */
-
-#endif /* __DECLSPEC_SUPPORTED */
-
-#define stdin	(&_iob[STDIN_FILENO])
-#define stdout	(&_iob[STDOUT_FILENO])
-#define stderr	(&_iob[STDERR_FILENO])
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * File Operations
- */
-FILE*	fopen (const char*, const char*);
-FILE*	freopen (const char*, const char*, FILE*);
-int	fflush (FILE*);
-int	fclose (FILE*);
-/* MS puts remove & rename (but not wide versions) in io.h  also */
-int	remove (const char*);
-int	rename (const char*, const char*);
-FILE*	tmpfile (void);
-char*	tmpnam (char*);
-char*	_tempnam (const char*, const char*);
-
-#ifndef	NO_OLDNAMES
-char*	tempnam (const char*, const char*);
-#endif
-
-int	setvbuf (FILE*, char*, int, size_t);
-
-void	setbuf (FILE*, char*);
-
-/*
- * Formatted Output
- */
-
-int	fprintf (FILE*, const char*, ...);
-int	printf (const char*, ...);
-int	sprintf (char*, const char*, ...);
-int	_snprintf (char*, size_t, const char*, ...);
-int	vfprintf (FILE*, const char*, va_list);
-int	vprintf (const char*, va_list);
-int	vsprintf (char*, const char*, va_list);
-int	_vsnprintf (char*, size_t, const char*, va_list);
-
-#ifndef __NO_ISOCEXT  /* externs in libmingwex.a */
-int snprintf(char* s, size_t n, const char*  format, ...);
-extern inline int vsnprintf (char* s, size_t n, const char* format,
-			   va_list arg)
-  { return _vsnprintf ( s, n, format, arg); }
-#endif
-
-/*
- * Formatted Input
- */
-
-int	fscanf (FILE*, const char*, ...);
-int	scanf (const char*, ...);
-int	sscanf (const char*, const char*, ...);
-/*
- * Character Input and Output Functions
- */
-
-int	fgetc (FILE*);
-char*	fgets (char*, int, FILE*);
-int	fputc (int, FILE*);
-int	fputs (const char*, FILE*);
-int	getc (FILE*);
-int	getchar (void);
-char*	gets (char*);
-int	putc (int, FILE*);
-int	putchar (int);
-int	puts (const char*);
-int	ungetc (int, FILE*);
-
-/*
- * Direct Input and Output Functions
- */
-
-size_t	fread (void*, size_t, size_t, FILE*);
-size_t	fwrite (const void*, size_t, size_t, FILE*);
-
-/*
- * File Positioning Functions
- */
-
-int	fseek (FILE*, long, int);
-long	ftell (FILE*);
-void	rewind (FILE*);
-
-#ifdef __USE_MINGW_FSEEK  /* These are in libmingwex.a */
-/*
- * Workaround for limitations on win9x where a file contents are
- * not zero'd out if you seek past the end and then write.
- */
-
-int __mingw_fseek (FILE *, long, int);
-int __mingw_fwrite (const void*, size_t, size_t, FILE*);
-#define fseek(fp, offset, whence)  __mingw_fseek(fp, offset, whence)
-#define fwrite(buffer, size, count, fp)  __mingw_fwrite(buffer, size, count, fp)
-#endif /* __USE_MINGW_FSEEK */
-
-
-/*
- * An opaque data type used for storing file positions... The contents of
- * this type are unknown, but we (the compiler) need to know the size
- * because the programmer using fgetpos and fsetpos will be setting aside
- * storage for fpos_t structres. Actually I tested using a byte array and
- * it is fairly evident that the fpos_t type is a long (in CRTDLL.DLL).
- * Perhaps an unsigned long? TODO? It's definitely a 64-bit number in
- * MSVCRT however, and for now `long long' will do.
- */
-#ifdef __MSVCRT__
-typedef long long fpos_t;
-#else
-typedef long	fpos_t;
-#endif
-
-int	fgetpos	(FILE*, fpos_t*);
-int	fsetpos (FILE*, const fpos_t*);
-
-/*
- * Error Functions
- */
-
-void	clearerr (FILE*);
-int	feof (FILE*);
-int	ferror (FILE*);
-void	perror (const char*);
-
-
-#ifndef __STRICT_ANSI__
-/*
- * Pipes
- */
-FILE*	_popen (const char*, const char*);
-int	_pclose (FILE*);
-
-#ifndef NO_OLDNAMES
-FILE*	popen (const char*, const char*);
-int	pclose (FILE*);
-#endif
-
-/*
- * Other Non ANSI functions
- */
-int	_flushall (void);
-int	_fgetchar (void);
-int	_fputchar (int);
-FILE*	_fdopen (int, const char*);
-int	_fileno (FILE*);
-
-#ifndef _NO_OLDNAMES
-int	fgetchar (void);
-int	fputchar (int);
-FILE*	fdopen (int, const char*);
-int	fileno (FILE*);
-#endif	/* Not _NO_OLDNAMES */
-
-#endif	/* Not __STRICT_ANSI__ */
-
-/* Wide  versions */
-
-#ifndef _WSTDIO_DEFINED
-/*  also in wchar.h - keep in sync */
-int	fwprintf (FILE*, const wchar_t*, ...);
-int	wprintf (const wchar_t*, ...);
-int	swprintf (wchar_t*, const wchar_t*, ...);
-int	_snwprintf (wchar_t*, size_t, const wchar_t*, ...);
-int	vfwprintf (FILE*, const wchar_t*, va_list);
-int	vwprintf (const wchar_t*, va_list);
-int	vswprintf (wchar_t*, const wchar_t*, va_list);
-int	_vsnwprintf (wchar_t*, size_t, const wchar_t*, va_list);
-int	fwscanf (FILE*, const wchar_t*, ...);
-int	wscanf (const wchar_t*, ...);
-int	swscanf (const wchar_t*, const wchar_t*, ...);
-wint_t	fgetwc (FILE*);
-wint_t	fputwc (wchar_t, FILE*);
-wint_t	ungetwc (wchar_t, FILE*);
-#ifdef __MSVCRT__ 
-wchar_t* fgetws (wchar_t*, int, FILE*);
-int	fputws (const wchar_t*, FILE*);
-wint_t	getwc (FILE*);
-wint_t	getwchar (void);
-wchar_t* _getws (wchar_t*);
-wint_t	putwc (wint_t, FILE*);
-int	_putws (const wchar_t*);
-wint_t	putwchar (wint_t);
-FILE*	_wfopen (const wchar_t*, const wchar_t*);
-FILE*	_wfreopen (const wchar_t*, const wchar_t*, FILE*);
-FILE*	_wfsopen (const wchar_t*, const wchar_t*, int);
-wchar_t* _wtmpnam (wchar_t*);
-wchar_t* _wtempnam (const wchar_t*, const wchar_t*);
-int	_wrename (const wchar_t*, const wchar_t*);
-int	_wremove (const wchar_t*);
-void	_wperror (const wchar_t*);
-FILE*	_wpopen (const wchar_t*, const wchar_t*);
-#endif	/* __MSVCRT__ */
-
-#ifndef __NO_ISOCEXT  /* externs in libmingwex.a */
-int snwprintf(wchar_t* s, size_t n, const wchar_t*  format, ...);
-extern inline int vsnwprintf (wchar_t* s, size_t n, const wchar_t* format,
-			   va_list arg)
-  { return _vsnwprintf ( s, n, format, arg); }
-#endif
-
-#define _WSTDIO_DEFINED
-#endif /* _WSTDIO_DEFINED */
-
-#ifndef __STRICT_ANSI__
-#ifdef __MSVCRT__
-#ifndef NO_OLDNAMES
-FILE*	wpopen (const wchar_t*, const wchar_t*);
-#endif /* not NO_OLDNAMES */
-#endif /* MSVCRT runtime */
-
-/*
- * Other Non ANSI wide functions
- */
-wint_t	_fgetwchar (void);
-wint_t	_fputwchar (wint_t);
-int	_getw (FILE*);
-int	_putw (int, FILE*);
-
-#ifndef _NO_OLDNAMES
-wint_t	fgetwchar (void);
-wint_t	fputwchar (wint_t);
-int	getw (FILE*);
-int	putw (int, FILE*);
-#endif	/* Not _NO_OLDNAMES */
-
-#endif /* __STRICT_ANSI */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif /* _STDIO_H_ */

+ 0 - 482
web/NotepadA/utils/gcci/tcc/include/stdlib.h

@@ -1,482 +0,0 @@
-/*
- * stdlib.h
- *
- * Definitions for common types, variables, and functions.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef _STDLIB_H_
-#define _STDLIB_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-
-#define __need_size_t
-#define __need_wchar_t
-#define __need_NULL
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif /* RC_INVOKED */
-
-/*
- * RAND_MAX is the maximum value that may be returned by rand.
- * The minimum is zero.
- */
-#define	RAND_MAX	0x7FFF
-
-/*
- * These values may be used as exit status codes.
- */
-#define	EXIT_SUCCESS	0
-#define	EXIT_FAILURE	1
-
-/*
- * Definitions for path name functions.
- * NOTE: All of these values have simply been chosen to be conservatively high.
- *       Remember that with long file names we can no longer depend on
- *       extensions being short.
- */
-#ifndef __STRICT_ANSI__
-
-#ifndef MAX_PATH
-#define	MAX_PATH	(260)
-#endif
-
-#define	_MAX_PATH	MAX_PATH
-#define	_MAX_DRIVE	(3)
-#define	_MAX_DIR	256
-#define	_MAX_FNAME	256
-#define	_MAX_EXT	256
-
-#endif	/* Not __STRICT_ANSI__ */
-
-
-#ifndef RC_INVOKED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * This seems like a convenient place to declare these variables, which
- * give programs using WinMain (or main for that matter) access to main-ish
- * argc and argv. environ is a pointer to a table of environment variables.
- * NOTE: Strings in _argv and environ are ANSI strings.
- */
-extern int	_argc;
-extern char**	_argv;
-
-/* imports from runtime dll of the above variables */
-#ifdef __MSVCRT__
-
-extern int*     __p___argc(void);
-extern char***   __p___argv(void);
-extern wchar_t***   __p___wargv(void);
-
-#define __argc (*__p___argc())
-#define __argv (*__p___argv())
-#define __wargv (*__p___wargv())
-
-#else /* !MSVCRT */
-
-#ifndef __DECLSPEC_SUPPORTED
-
-extern int*    __imp___argc_dll;
-extern char***  __imp___argv_dll;
-#define __argc (*__imp___argc_dll)
-#define __argv (*__imp___argv_dll)
-
-#else /* __DECLSPEC_SUPPORTED */
-
-__MINGW_IMPORT int    __argc_dll;
-__MINGW_IMPORT char**  __argv_dll;
-#define __argc __argc_dll
-#define __argv __argv_dll
-
-#endif /* __DECLSPEC_SUPPORTED */
-
-#endif /* __MSVCRT */
-
-/*
- * Also defined in ctype.h.
- */
-
-#ifndef MB_CUR_MAX
-# ifdef __MSVCRT__
-#  define MB_CUR_MAX __mb_cur_max
-   __MINGW_IMPORT int __mb_cur_max;
-# else /* not __MSVCRT */
-#  define MB_CUR_MAX __mb_cur_max_dll
-   __MINGW_IMPORT int __mb_cur_max_dll;
-# endif /* not __MSVCRT */
-#endif  /* MB_CUR_MAX */
-
-/* 
- * MS likes to declare errno in stdlib.h as well. 
- */
-
-#ifdef _UWIN
-#undef errno
-extern int errno;
-#else
-int*	_errno(void);
-#define	errno		(*_errno())
-#endif
-int*	__doserrno(void);
-#define	_doserrno	(*__doserrno())
-
-/*
- * Use environ from the DLL, not as a global. 
- */
-
-#ifdef __MSVCRT__
-  extern char *** __p__environ(void);
-  extern wchar_t *** __p__wenviron(void);
-# define _environ (*__p__environ())
-# define _wenviron (*__p__wenviron())
-#else /* ! __MSVCRT__ */
-# ifndef __DECLSPEC_SUPPORTED
-    extern char *** __imp__environ_dll;
-#   define _environ (*__imp__environ_dll)
-# else /* __DECLSPEC_SUPPORTED */
-    __MINGW_IMPORT char ** _environ_dll;
-#   define _environ _environ_dll
-# endif /* __DECLSPEC_SUPPORTED */
-#endif /* ! __MSVCRT__ */
-
-#define environ _environ
-
-#ifdef	__MSVCRT__
-/* One of the MSVCRTxx libraries */
-
-#ifndef __DECLSPEC_SUPPORTED
-  extern int*	__imp__sys_nerr;
-# define	sys_nerr	(*__imp__sys_nerr)
-#else /* __DECLSPEC_SUPPORTED */
-  __MINGW_IMPORT int	_sys_nerr;
-# ifndef _UWIN
-#   define	sys_nerr	_sys_nerr
-# endif /* _UWIN */
-#endif /* __DECLSPEC_SUPPORTED */
-
-#else /* ! __MSVCRT__ */
-
-/* CRTDLL run time library */
-
-#ifndef __DECLSPEC_SUPPORTED
-  extern int*	__imp__sys_nerr_dll;
-# define sys_nerr	(*__imp__sys_nerr_dll)
-#else /* __DECLSPEC_SUPPORTED */
-  __MINGW_IMPORT int	_sys_nerr_dll;
-# define sys_nerr	_sys_nerr_dll
-#endif /* __DECLSPEC_SUPPORTED */
-
-#endif /* ! __MSVCRT__ */
-
-#ifndef __DECLSPEC_SUPPORTED
-extern char***	__imp__sys_errlist;
-#define	sys_errlist	(*__imp__sys_errlist)
-#else /* __DECLSPEC_SUPPORTED */
-__MINGW_IMPORT char*	_sys_errlist[];
-#ifndef _UWIN
-#define	sys_errlist	_sys_errlist
-#endif /* _UWIN */
-#endif /* __DECLSPEC_SUPPORTED */
-
-/*
- * OS version and such constants.
- */
-#ifndef __STRICT_ANSI__
-
-#ifdef	__MSVCRT__
-/* msvcrtxx.dll */
-
-extern unsigned int*	__p__osver(void);
-extern unsigned int*	__p__winver(void);
-extern unsigned int*	__p__winmajor(void);
-extern unsigned int*	__p__winminor(void);
-
-#define _osver		(*__p__osver())
-#define _winver		(*__p__winver())
-#define _winmajor	(*__p__winmajor())
-#define _winminor	(*__p__winminor())
-
-#else
-/* Not msvcrtxx.dll, thus crtdll.dll */
-
-#ifndef __DECLSPEC_SUPPORTED
-
-extern unsigned int*	_imp___osver_dll;
-extern unsigned int*	_imp___winver_dll;
-extern unsigned int*	_imp___winmajor_dll;
-extern unsigned int*	_imp___winminor_dll;
-
-#define _osver		(*_imp___osver_dll)
-#define _winver		(*_imp___winver_dll)
-#define _winmajor	(*_imp___winmajor_dll)
-#define _winminor	(*_imp___winminor_dll)
-
-#else /* __DECLSPEC_SUPPORTED */
-
-__MINGW_IMPORT unsigned int	_osver_dll;
-__MINGW_IMPORT unsigned int	_winver_dll;
-__MINGW_IMPORT unsigned int	_winmajor_dll;
-__MINGW_IMPORT unsigned int	_winminor_dll;
-
-#define _osver		_osver_dll
-#define _winver		_winver_dll
-#define _winmajor	_winmajor_dll
-#define _winminor	_winminor_dll
-
-#endif /* __DECLSPEC_SUPPORTED */
-
-#endif
-
-#if defined  __MSVCRT__
-/* although the _pgmptr is exported as DATA,
- * be safe and use the access function __p__pgmptr() to get it. */
-char**  __p__pgmptr(void);
-#define _pgmptr     (*__p__pgmptr())
-wchar_t**  __p__wpgmptr(void);
-#define _wpgmptr    (*__p__wpgmptr())
-#else /* ! __MSVCRT__ */
-# ifndef __DECLSPEC_SUPPORTED
-  extern char** __imp__pgmptr_dll;
-# define _pgmptr (*__imp__pgmptr_dll)
-# else /* __DECLSPEC_SUPPORTED */
- __MINGW_IMPORT char* _pgmptr_dll;
-# define _pgmptr _pgmptr_dll
-# endif /* __DECLSPEC_SUPPORTED */
-/* no wide version in CRTDLL */
-#endif /* __MSVCRT__ */
-
-#endif /* Not __STRICT_ANSI__ */
-
-#ifdef	__GNUC__
-#define	_ATTRIB_NORETURN	__attribute__ ((noreturn))
-#else	/* Not __GNUC__ */
-#define	_ATTRIB_NORETURN
-#endif	/* __GNUC__ */
-
-double	atof	(const char*);
-int	atoi	(const char*);
-long	atol	(const char*);
-int	_wtoi (const wchar_t *);
-long _wtol (const wchar_t *);
-
-double	strtod	(const char*, char**);
-#if !defined __NO_ISOCEXT  /* extern stubs in static libmingwex.a */
-extern __inline__ float strtof (const char *nptr, char **endptr)
-  { return (strtod (nptr, endptr));}
-#endif /* __NO_ISOCEXT */
-
-long	strtol	(const char*, char**, int);
-unsigned long	strtoul	(const char*, char**, int);
-
-#ifndef _WSTDLIB_DEFINED
-/*  also declared in wchar.h */
-double	wcstod	(const wchar_t*, wchar_t**);
-#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
-extern __inline__ float wcstof( const wchar_t *nptr, wchar_t **endptr)
-{  return (wcstod(nptr, endptr)); }
-#endif /* __NO_ISOCEXT */
-
-long	wcstol	(const wchar_t*, wchar_t**, int);
-unsigned long	wcstoul (const wchar_t*, wchar_t**, int);
-#define _WSTDLIB_DEFINED
-#endif
-
-size_t	wcstombs	(char*, const wchar_t*, size_t);
-int	wctomb		(char*, wchar_t);
-
-int	mblen		(const char*, size_t);
-size_t	mbstowcs	(wchar_t*, const char*, size_t);
-int	mbtowc		(wchar_t*, const char*, size_t);
-
-int	rand	(void);
-void	srand	(unsigned int);
-
-void*	calloc	(size_t, size_t);
-void*	malloc	(size_t);
-void*	realloc	(void*, size_t);
-void	free	(void*);
-
-void	abort	(void) _ATTRIB_NORETURN;
-void	exit	(int) _ATTRIB_NORETURN;
-int	atexit	(void (*)(void));
-
-int	system	(const char*);
-char*	getenv	(const char*);
-
-void*	bsearch	(const void*, const void*, size_t, size_t, 
-                 int (*)(const void*, const void*));
-void	qsort	(const void*, size_t, size_t,
-                 int (*)(const void*, const void*));
-
-int	abs	(int);
-long	labs	(long);
-
-/*
- * div_t and ldiv_t are structures used to return the results of div and
- * ldiv.
- *
- * NOTE: div and ldiv appear not to work correctly unless
- *       -fno-pcc-struct-return is specified. This is included in the
- *       mingw32 specs file.
- */
-typedef struct { int quot, rem; } div_t;
-typedef struct { long quot, rem; } ldiv_t;
-
-div_t	div	(int, int);
-ldiv_t	ldiv	(long, long);
-
-#ifndef	__STRICT_ANSI__
-
-/*
- * NOTE: Officially the three following functions are obsolete. The Win32 API
- *       functions SetErrorMode, Beep and Sleep are their replacements.
- */
-void	_beep (unsigned int, unsigned int);
-void	_seterrormode (int);
-void	_sleep (unsigned long);
-
-void	_exit	(int) _ATTRIB_NORETURN;
-#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
-/* C99 function name */
-void _Exit(int) _ATTRIB_NORETURN; /* Declare to get noreturn attribute.  */
-extern __inline__ void _Exit(int status)
-	{  _exit(status); }
-#endif
-/* _onexit is MS extension. Use atexit for portability.  */
-typedef  int (* _onexit_t)(void); 
-_onexit_t _onexit( _onexit_t );
-
-int	_putenv	(const char*);
-void	_searchenv (const char*, const char*, char*);
-
-
-char*	_ecvt (double, int, int*, int*);
-char*	_fcvt (double, int, int*, int*);
-char*	_gcvt (double, int, char*);
-
-void	_makepath (char*, const char*, const char*, const char*, const char*);
-void	_splitpath (const char*, char*, char*, char*, char*);
-char*	_fullpath (char*, const char*, size_t);
-
-
-char*	_itoa (int, char*, int);
-char*	_ltoa (long, char*, int);
-char*   _ultoa(unsigned long, char*, int);
-wchar_t*  _itow (int, wchar_t*, int);
-wchar_t*  _ltow (long, wchar_t*, int);
-wchar_t*  _ultow (unsigned long, wchar_t*, int);
-
-#ifdef __MSVCRT__
-__int64	_atoi64(const char *);
-char*	_i64toa(__int64, char *, int);
-char*	_ui64toa(unsigned __int64, char *, int);
-__int64	_wtoi64(const wchar_t *);
-wchar_t* _i64tow(__int64, wchar_t *, int);
-wchar_t* _ui64tow(unsigned __int64, wchar_t *, int);
-
-wchar_t* _wgetenv(const wchar_t*);
-int	 _wputenv(const wchar_t*);
-void	_wsearchenv(const wchar_t*, const wchar_t*, wchar_t*);
-void    _wmakepath(wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*);
-void	_wsplitpath (const wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*);
-wchar_t*    _wfullpath (wchar_t*, const wchar_t*, size_t);
-#endif
-
-#ifndef	_NO_OLDNAMES
-
-int	putenv (const char*);
-void	searchenv (const char*, const char*, char*);
-
-char*	itoa (int, char*, int);
-char*	ltoa (long, char*, int);
-
-#ifndef _UWIN
-char*	ecvt (double, int, int*, int*);
-char*	fcvt (double, int, int*, int*);
-char*	gcvt (double, int, char*);
-#endif /* _UWIN */
-#endif	/* Not _NO_OLDNAMES */
-
-#endif	/* Not __STRICT_ANSI__ */
-
-/* C99 names */
-
-#if !defined __NO_ISOCEXT /* externs in static libmingwex.a */
-
-typedef struct { long long quot, rem; } lldiv_t;
-
-lldiv_t	lldiv (long long, long long);
-
-extern __inline__ long long llabs(long long _j)
-  {return (_j >= 0 ? _j : -_j);}
-
-long long strtoll (const char* __restrict__, char** __restrict, int);
-unsigned long long strtoull (const char* __restrict__, char** __restrict__, int);
-
-#if defined (__MSVCRT__) /* these are stubs for MS _i64 versions */ 
-long long atoll (const char *);
-
-#if !defined (__STRICT_ANSI__)
-long long wtoll(const wchar_t *);
-char* lltoa(long long, char *, int);
-char* ulltoa(unsigned long long , char *, int);
-wchar_t* lltow(long long, wchar_t *, int);
-wchar_t* ulltow(unsigned long long, wchar_t *, int);
-
-  /* inline using non-ansi functions */
-extern __inline__ long long atoll (const char * _c)
-	{ return _atoi64 (_c); }
-extern __inline__ char* lltoa(long long _n, char * _c, int _i)
-	{ return _i64toa (_n, _c, _i); }
-extern __inline__ char* ulltoa(unsigned long long _n, char * _c, int _i)
-	{ return _ui64toa (_n, _c, _i); }
-extern __inline__ long long wtoll(const wchar_t * _w)
- 	{ return _wtoi64 (_w); }
-extern __inline__ wchar_t* lltow(long long _n, wchar_t * _w, int _i)
-	{ return _i64tow (_n, _w, _i); } 
-extern __inline__ wchar_t* ulltow(unsigned long long _n, wchar_t * _w, int _i)
-	{ return _ui64tow (_n, _w, _i); } 
-#endif /* (__STRICT_ANSI__)  */
-
-#endif /* __MSVCRT__ */
-
-#endif /* !__NO_ISOCEXT */
-
-/*
- * Undefine the no return attribute used in some function definitions
- */
-#undef	_ATTRIB_NORETURN
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _STDLIB_H_ */
-

+ 0 - 206
web/NotepadA/utils/gcci/tcc/include/string.h

@@ -1,206 +0,0 @@
-/*
- * string.h
- *
- * Definitions for memory and string functions.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef _STRING_H_
-#define	_STRING_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-/*
- * Define size_t, wchar_t and NULL
- */
-#define __need_size_t
-#define __need_wchar_t
-#define	__need_NULL
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif	/* Not RC_INVOKED */
-
-#ifndef RC_INVOKED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Prototypes of the ANSI Standard C library string functions.
- */
-void*	memchr (const void*, int, size_t);
-int 	memcmp (const void*, const void*, size_t);
-void* 	memcpy (void*, const void*, size_t);
-void*	memmove (void*, const void*, size_t);
-void*	memset (void*, int, size_t);
-char*	strcat (char*, const char*);
-char*	strchr (const char*, int);
-int	strcmp (const char*, const char*);
-int	strcoll (const char*, const char*);	/* Compare using locale */
-char*	strcpy (char*, const char*);
-size_t	strcspn (const char*, const char*);
-char*	strerror (int); /* NOTE: NOT an old name wrapper. */
-char*	_strerror (const char *);
-size_t	strlen (const char*);
-char*	strncat (char*, const char*, size_t);
-int	strncmp (const char*, const char*, size_t);
-char*	strncpy (char*, const char*, size_t);
-char*	strpbrk (const char*, const char*);
-char*	strrchr (const char*, int);
-size_t	strspn (const char*, const char*);
-char*	strstr (const char*, const char*);
-char*	strtok (char*, const char*);
-size_t	strxfrm (char*, const char*, size_t);
-
-#ifndef __STRICT_ANSI__
-/*
- * Extra non-ANSI functions provided by the CRTDLL library
- */
-void*	_memccpy (void*, const void*, int, size_t);
-int 	_memicmp (const void*, const void*, size_t);
-char* 	_strdup (const char*);
-int	_strcmpi (const char*, const char*);
-int	_stricmp (const char*, const char*);
-int	_stricoll (const char*, const char*);
-char*	_strlwr (char*);
-int	_strnicmp (const char*, const char*, size_t);
-char*	_strnset (char*, int, size_t);
-char*	_strrev (char*);
-char*	_strset (char*, int);
-char*	_strupr (char*);
-void	_swab (const char*, char*, size_t);
-
-/*
- * Multi-byte character functions
- */
-unsigned char*	_mbschr (unsigned char*, unsigned char*);
-unsigned char*	_mbsncat (unsigned char*, const unsigned char*, size_t);
-unsigned char*	_mbstok (unsigned char*, unsigned char*);
-
-#ifdef __MSVCRT__
-int  _strncoll(const char*, const char*, size_t);
-int  _strnicoll(const char*, const char*, size_t);
-#endif
-
-#endif	/* Not __STRICT_ANSI__ */
-
-/*
- * Unicode versions of the standard calls.
- */
-wchar_t* wcscat (wchar_t*, const wchar_t*);
-wchar_t* wcschr (const wchar_t*, wchar_t);
-int	wcscmp (const wchar_t*, const wchar_t*);
-int	wcscoll (const wchar_t*, const wchar_t*);
-wchar_t* wcscpy (wchar_t*, const wchar_t*);
-size_t	wcscspn (const wchar_t*, const wchar_t*);
-/* Note: No wcserror in CRTDLL. */
-size_t	wcslen (const wchar_t*);
-wchar_t* wcsncat (wchar_t*, const wchar_t*, size_t);
-int	wcsncmp(const wchar_t*, const wchar_t*, size_t);
-wchar_t* wcsncpy(wchar_t*, const wchar_t*, size_t);
-wchar_t* wcspbrk(const wchar_t*, const wchar_t*);
-wchar_t* wcsrchr(const wchar_t*, wchar_t);
-size_t	wcsspn(const wchar_t*, const wchar_t*);
-wchar_t* wcsstr(const wchar_t*, const wchar_t*);
-wchar_t* wcstok(wchar_t*, const wchar_t*);
-size_t	wcsxfrm(wchar_t*, const wchar_t*, size_t);
-
-#ifndef	__STRICT_ANSI__
-/*
- * Unicode versions of non-ANSI functions provided by CRTDLL.
- */
-
-/* NOTE: _wcscmpi not provided by CRTDLL, this define is for portability */
-#define		_wcscmpi	_wcsicmp
-
-wchar_t* _wcsdup (wchar_t*);
-int	_wcsicmp (const wchar_t*, const wchar_t*);
-int	_wcsicoll (const wchar_t*, const wchar_t*);
-wchar_t* _wcslwr (wchar_t*);
-int	_wcsnicmp (const wchar_t*, const wchar_t*, size_t);
-wchar_t* _wcsnset (wchar_t*, wchar_t, size_t);
-wchar_t* _wcsrev (wchar_t*);
-wchar_t* _wcsset (wchar_t*, wchar_t);
-wchar_t* _wcsupr (wchar_t*);
-
-#ifdef __MSVCRT__
-int  _wcsncoll(const wchar_t*, const wchar_t*, size_t);
-int  _wcsnicoll(const wchar_t*, const wchar_t*, size_t);
-#endif
-
-
-#endif	/* Not __STRICT_ANSI__ */
-
-
-#ifndef	__STRICT_ANSI__
-#ifndef	_NO_OLDNAMES
-
-/*
- * Non-underscored versions of non-ANSI functions. They live in liboldnames.a
- * and provide a little extra portability. Also a few extra UNIX-isms like
- * strcasecmp.
- */
-
-void*	memccpy (void*, const void*, int, size_t);
-int	memicmp (const void*, const void*, size_t);
-char*	strdup (const char*);
-int	strcmpi (const char*, const char*);
-int	stricmp (const char*, const char*);
-int	strcasecmp (const char*, const char*);
-int	stricoll (const char*, const char*);
-char*	strlwr (char*);
-int	strnicmp (const char*, const char*, size_t);
-int	strncasecmp (const char*, const char*, size_t);
-char*	strnset (char*, int, size_t);
-char*	strrev (char*);
-char*	strset (char*, int);
-char*	strupr (char*);
-#ifndef _UWIN
-void	swab (const char*, char*, size_t);
-#endif /* _UWIN */
-
-/* NOTE: There is no _wcscmpi, but this is for compatibility. */
-int	wcscmpi	(const wchar_t*, const wchar_t*);
-wchar_t* wcsdup (wchar_t*);
-int	wcsicmp (const wchar_t*, const wchar_t*);
-int	wcsicoll (const wchar_t*, const wchar_t*);
-wchar_t* wcslwr (wchar_t*);
-int	wcsnicmp (const wchar_t*, const wchar_t*, size_t);
-wchar_t* wcsnset (wchar_t*, wchar_t, size_t);
-wchar_t* wcsrev (wchar_t*);
-wchar_t* wcsset (wchar_t*, wchar_t);
-wchar_t* wcsupr (wchar_t*);
-
-#endif	/* Not _NO_OLDNAMES */
-#endif	/* Not strict ANSI */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _STRING_H_ */
-

+ 0 - 8
web/NotepadA/utils/gcci/tcc/include/sys/fcntl.h

@@ -1,8 +0,0 @@
-/*
- * This file is part of the Mingw32 package.
- *
- * This fcntl.h maps to the root fcntl.h
- */
-#ifndef __STRICT_ANSI__
-#include <fcntl.h>
-#endif

+ 0 - 9
web/NotepadA/utils/gcci/tcc/include/sys/file.h

@@ -1,9 +0,0 @@
-/*
- * This file is part of the Mingw32 package.
- *
- * This file.h maps to the root fcntl.h
- * TODO?
- */
-#ifndef __STRICT_ANSI__
-#include <fcntl.h>
-#endif

+ 0 - 52
web/NotepadA/utils/gcci/tcc/include/sys/locking.h

@@ -1,52 +0,0 @@
-/*
- * locking.h
- *
- * Constants for the mode parameter of the locking function.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	__STRICT_ANSI__
-
-#ifndef	_LOCKING_H_
-#define	_LOCKING_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#define	_LK_UNLCK	0	/* Unlock */
-#define	_LK_LOCK	1	/* Lock */
-#define	_LK_NBLCK	2	/* Non-blocking lock */
-#define	_LK_RLCK	3	/* Lock for read only */
-#define	_LK_NBRLCK	4	/* Non-blocking lock for read only */
-
-#ifndef	NO_OLDNAMES
-#define	LK_UNLCK	_LK_UNLCK
-#define	LK_LOCK		_LK_LOCK
-#define	LK_NBLCK	_LK_NBLCK
-#define	LK_RLCK		_LK_RLCK
-#define	LK_NBRLCK	_LK_NBRLCK
-#endif	/* Not NO_OLDNAMES */
-
-#endif	/* Not _LOCKING_H_ */
-
-#endif	/* Not __STRICT_ANSI__ */
-

+ 0 - 190
web/NotepadA/utils/gcci/tcc/include/sys/stat.h

@@ -1,190 +0,0 @@
-/*
- * stat.h
- *
- * Symbolic constants for opening and creating files, also stat, fstat and
- * chmod functions.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef __STRICT_ANSI__
-
-#ifndef _STAT_H_
-#define _STAT_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#define __need_size_t
-#define __need_wchar_t
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif /* Not RC_INVOKED */
-
-#include <sys/types.h>
-
-/*
- * Constants for the stat st_mode member.
- */
-#define	_S_IFIFO	0x1000	/* FIFO */
-#define	_S_IFCHR	0x2000	/* Character */
-#define	_S_IFBLK	0x3000	/* Block: Is this ever set under w32? */
-#define	_S_IFDIR	0x4000	/* Directory */
-#define	_S_IFREG	0x8000	/* Regular */
-
-#define	_S_IFMT		0xF000	/* File type mask */
-
-#define	_S_IEXEC	0x0040
-#define	_S_IWRITE	0x0080
-#define	_S_IREAD	0x0100
-
-#define	_S_IRWXU	(_S_IREAD | _S_IWRITE | _S_IEXEC)
-#define	_S_IXUSR	_S_IEXEC
-#define	_S_IWUSR	_S_IWRITE
-#define	_S_IRUSR	_S_IREAD
-
-#define	_S_ISDIR(m)	(((m) & _S_IFMT) == _S_IFDIR)
-#define	_S_ISFIFO(m)	(((m) & _S_IFMT) == _S_IFIFO)
-#define	_S_ISCHR(m)	(((m) & _S_IFMT) == _S_IFCHR)
-#define	_S_ISBLK(m)	(((m) & _S_IFMT) == _S_IFBLK)
-#define	_S_ISREG(m)	(((m) & _S_IFMT) == _S_IFREG)
-
-#ifndef _NO_OLDNAMES
-
-#define	S_IFIFO		_S_IFIFO
-#define	S_IFCHR		_S_IFCHR
-#define	S_IFBLK		_S_IFBLK
-#define	S_IFDIR		_S_IFDIR
-#define	S_IFREG		_S_IFREG
-#define	S_IFMT		_S_IFMT
-#define	S_IEXEC		_S_IEXEC
-#define	S_IWRITE	_S_IWRITE
-#define	S_IREAD		_S_IREAD
-#define	S_IRWXU		_S_IRWXU
-#define	S_IXUSR		_S_IXUSR
-#define	S_IWUSR		_S_IWUSR
-#define	S_IRUSR		_S_IRUSR
-
-#define	S_ISDIR(m)	(((m) & S_IFMT) == S_IFDIR)
-#define	S_ISFIFO(m)	(((m) & S_IFMT) == S_IFIFO)
-#define	S_ISCHR(m)	(((m) & S_IFMT) == S_IFCHR)
-#define	S_ISBLK(m)	(((m) & S_IFMT) == S_IFBLK)
-#define	S_ISREG(m)	(((m) & S_IFMT) == S_IFREG)
-
-#endif	/* Not _NO_OLDNAMES */
-
-#ifndef RC_INVOKED
-
-#ifndef _STAT_DEFINED
-/*
- * The structure manipulated and returned by stat and fstat.
- *
- * NOTE: If called on a directory the values in the time fields are not only
- * invalid, they will cause localtime et. al. to return NULL. And calling
- * asctime with a NULL pointer causes an Invalid Page Fault. So watch it!
- */
-struct _stat
-{
-	_dev_t	st_dev;		/* Equivalent to drive number 0=A 1=B ... */
-	_ino_t	st_ino;		/* Always zero ? */
-	_mode_t	st_mode;	/* See above constants */
-	short	st_nlink;	/* Number of links. */
-	short	st_uid;		/* User: Maybe significant on NT ? */
-	short	st_gid;		/* Group: Ditto */
-	_dev_t	st_rdev;	/* Seems useless (not even filled in) */
-	_off_t	st_size;	/* File size in bytes */
-	time_t	st_atime;	/* Accessed date (always 00:00 hrs local
-				 * on FAT) */
-	time_t	st_mtime;	/* Modified time */
-	time_t	st_ctime;	/* Creation time */
-};
-
-struct stat
-{
-	_dev_t	st_dev;		/* Equivalent to drive number 0=A 1=B ... */
-	_ino_t	st_ino;		/* Always zero ? */
-	_mode_t	st_mode;	/* See above constants */
-	short	st_nlink;	/* Number of links. */
-	short	st_uid;		/* User: Maybe significant on NT ? */
-	short	st_gid;		/* Group: Ditto */
-	_dev_t	st_rdev;	/* Seems useless (not even filled in) */
-	_off_t	st_size;	/* File size in bytes */
-	time_t	st_atime;	/* Accessed date (always 00:00 hrs local
-				 * on FAT) */
-	time_t	st_mtime;	/* Modified time */
-	time_t	st_ctime;	/* Creation time */
-};
-#if defined (__MSVCRT__)
-struct _stati64 {
-    _dev_t st_dev;
-    _ino_t st_ino;
-    unsigned short st_mode;
-    short st_nlink;
-    short st_uid;
-    short st_gid;
-    _dev_t st_rdev;
-    __int64 st_size;
-    time_t st_atime;
-    time_t st_mtime;
-    time_t st_ctime;
-};
-#endif /* __MSVCRT__ */
-#define _STAT_DEFINED
-#endif /* _STAT_DEFINED */
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-int	_fstat (int, struct _stat*);
-int	_chmod (const char*, int);
-int	_stat (const char*, struct _stat*);
-
-#if defined (__MSVCRT__)
-int  _fstati64(int, struct _stati64 *);
-int  _stati64(const char *, struct _stati64 *);
-#if !defined ( _WSTAT_DEFINED) /* also declared in wchar.h */
-int	_wstat(const wchar_t*, struct _stat*);
-int	_wstati64 (const wchar_t*, struct _stati64*);
-#define _WSTAT_DEFINED
-#endif /* _WSTAT_DEFIND */
-#endif /* __MSVCRT__ */
-
-#ifndef	_NO_OLDNAMES
-
-/* These functions live in liboldnames.a. */
-int	fstat (int, struct stat*);
-int	chmod (const char*, int);
-int	stat (const char*, struct stat*);
-
-#endif	/* Not _NO_OLDNAMES */
-
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _STAT_H_ */
-
-#endif	/* Not __STRICT_ANSI__ */
-

+ 0 - 3
web/NotepadA/utils/gcci/tcc/include/sys/time.h

@@ -1,3 +0,0 @@
-
-#include <time.h>
-

+ 0 - 82
web/NotepadA/utils/gcci/tcc/include/sys/timeb.h

@@ -1,82 +0,0 @@
-/*
- * timeb.h
- *
- * Support for the UNIX System V ftime system call.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	__STRICT_ANSI__
-
-#ifndef	_TIMEB_H_
-#define	_TIMEB_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#ifndef	RC_INVOKED
-
-/*
- * TODO: Structure not tested.
- */
-struct _timeb
-{
-	long	time;
-	short	millitm;
-	short	timezone;
-	short	dstflag;
-};
-
-#ifndef	_NO_OLDNAMES
-/*
- * TODO: Structure not tested.
- */
-struct timeb
-{
-	long	time;
-	short	millitm;
-	short	timezone;
-	short	dstflag;
-};
-#endif
-
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-/* TODO: Not tested. */
-void	_ftime (struct _timeb*);
-
-#ifndef	_NO_OLDNAMES
-void	ftime (struct timeb*);
-#endif	/* Not _NO_OLDNAMES */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _TIMEB_H_ */
-
-#endif	/* Not __STRICT_ANSI__ */
-

+ 0 - 118
web/NotepadA/utils/gcci/tcc/include/sys/types.h

@@ -1,118 +0,0 @@
-/*
- * types.h
- *
- * The definition of constants, data types and global variables.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *  Lots of types supplied by Pedro A. Aranda <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warrenties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	_TYPES_H_
-#define	_TYPES_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#define __need_wchar_t
-#define __need_size_t
-#define __need_ptrdiff_t
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif	/* Not RC_INVOKED */
-
-#ifndef RC_INVOKED
-
-#ifndef _TIME_T_DEFINED
-typedef	long	time_t;
-#define	_TIME_T_DEFINED
-#endif
-
-
-#ifndef	__STRICT_ANSI__
-
-#ifndef	_OFF_T_
-#define	_OFF_T_
-typedef long _off_t;
-
-#ifndef	_NO_OLDNAMES
-typedef _off_t	off_t;
-#endif
-#endif	/* Not _OFF_T_ */
-
-
-#ifndef _DEV_T_
-#define	_DEV_T_
-#ifdef __MSVCRT__
-typedef unsigned int _dev_t;
-#else
-typedef short _dev_t;
-#endif
-
-#ifndef	_NO_OLDNAMES
-typedef _dev_t	dev_t;
-#endif
-#endif	/* Not _DEV_T_ */
-
-
-#ifndef _INO_T_
-#define	_INO_T_
-typedef short _ino_t;
-
-#ifndef	_NO_OLDNAMES
-typedef _ino_t	ino_t;
-#endif
-#endif	/* Not _INO_T_ */
-
-
-#ifndef _PID_T_
-#define	_PID_T_
-typedef int	_pid_t;
-
-#ifndef	_NO_OLDNAMES
-typedef _pid_t	pid_t;
-#endif
-#endif	/* Not _PID_T_ */
-
-
-#ifndef _MODE_T_
-#define	_MODE_T_
-typedef unsigned short _mode_t;
-
-#ifndef	_NO_OLDNAMES
-typedef _mode_t	mode_t;
-#endif
-#endif	/* Not _MODE_T_ */
-
-
-#ifndef _SIGSET_T_
-#define	_SIGSET_T_
-typedef int	_sigset_t;
-
-#ifndef	_NO_OLDNAMES
-typedef _sigset_t	sigset_t;
-#endif
-#endif	/* Not _SIGSET_T_ */
-
-#endif	/* Not __STRICT_ANSI__ */
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _TYPES_H_ */

+ 0 - 9
web/NotepadA/utils/gcci/tcc/include/sys/unistd.h

@@ -1,9 +0,0 @@
-/*
- * This file is part of the Mingw32 package.
- *
- * unistd.h maps (roughly) to io.h
- */
-#ifndef __STRICT_ANSI__
-#include <io.h>
-#endif
-

+ 0 - 89
web/NotepadA/utils/gcci/tcc/include/sys/utime.h

@@ -1,89 +0,0 @@
-/*
- * utime.h
- *
- * Support for the utime function.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	__STRICT_ANSI__
-
-#ifndef	_UTIME_H_
-#define	_UTIME_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#define __need_wchar_t
-#define __need_size_t
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif	/* Not RC_INVOKED */
-#include <sys/types.h>
-
-#ifndef	RC_INVOKED
-
-/*
- * Structure used by _utime function.
- */
-struct _utimbuf
-{
-	time_t	actime;		/* Access time */
-	time_t	modtime;	/* Modification time */
-};
-
-
-#ifndef	_NO_OLDNAMES
-/* NOTE: Must be the same as _utimbuf above. */
-struct utimbuf
-{
-	time_t	actime;
-	time_t	modtime;
-};
-#endif	/* Not _NO_OLDNAMES */
-
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-int	_utime (const char*, struct _utimbuf*);
-int	_futime (int, struct _utimbuf*);
-
-/* The wide character version, only available for MSVCRT versions of the
- * C runtime library. */
-#ifdef __MSVCRT__
-int	_wutime (const wchar_t*, struct _utimbuf*);
-#endif /* MSVCRT runtime */
-#ifndef	_NO_OLDNAMES
-int	utime (const char*, struct utimbuf*);
-#endif	/* Not _NO_OLDNAMES */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _UTIME_H_ */
-
-#endif	/* Not __STRICT_ANSI__ */
-

+ 0 - 367
web/NotepadA/utils/gcci/tcc/include/tchar.h

@@ -1,367 +0,0 @@
-/* 
- * tchar.h
- *
- * Unicode mapping layer for the standard C library. By including this
- * file and using the 't' names for string functions
- * (eg. _tprintf) you can make code which can be easily adapted to both
- * Unicode and non-unicode environments. In a unicode enabled compile define
- * _UNICODE before including tchar.h, otherwise the standard non-unicode
- * library functions will be used.
- *
- * Note that you still need to include string.h or stdlib.h etc. to define
- * the appropriate functions. Also note that there are several defines
- * included for non-ANSI functions which are commonly available (but using
- * the convention of prepending an underscore to non-ANSI library function
- * names).
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	_TCHAR_H_
-#define _TCHAR_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-/*
- * NOTE: This tests _UNICODE, which is different from the UNICODE define
- *       used to differentiate Win32 API calls.
- */
-#ifdef	_UNICODE
-
-
-/*
- * Use TCHAR instead of char or wchar_t. It will be appropriately translated
- * if _UNICODE is correctly defined (or not).
- */
-#ifndef _TCHAR_DEFINED
-#ifndef RC_INVOKED
-typedef	wchar_t	TCHAR;
-typedef wchar_t _TCHAR;
-#endif	/* Not RC_INVOKED */
-#define _TCHAR_DEFINED
-#endif
-
-
-/*
- * __TEXT is a private macro whose specific use is to force the expansion of a
- * macro passed as an argument to the macros _T or _TEXT.  DO NOT use this
- * macro within your programs.  It's name and function could change without
- * notice.
- */
-#define	__TEXT(x)	L##x
-
-/*  for porting from other Windows compilers */
-#if 0  // no  wide startup module
-#define _tmain      wmain
-#define _tWinMain   wWinMain
-#define _tenviron   _wenviron
-#define __targv     __wargv
-#endif
-
-/*
- * Unicode functions
- */
-#define	_tprintf	wprintf
-#define	_ftprintf	fwprintf
-#define	_stprintf	swprintf
-#define	_sntprintf	_snwprintf
-#define	_vtprintf	vwprintf
-#define	_vftprintf	vfwprintf
-#define _vstprintf	vswprintf
-#define	_vsntprintf	_vsnwprintf
-#define	_tscanf		wscanf
-#define	_ftscanf	fwscanf
-#define	_stscanf	swscanf
-#define	_fgettc		fgetwc
-#define	_fgettchar	_fgetwchar
-#define	_fgetts		fgetws
-#define	_fputtc		fputwc
-#define	_fputtchar	_fputwchar
-#define	_fputts		fputws
-#define	_gettc		getwc
-#define	_getts		getws
-#define	_puttc		putwc
-#define	_putts		putws
-#define	_ungettc	ungetwc
-#define	_tcstod		wcstod
-#define	_tcstol		wcstol
-#define _tcstoul	wcstoul
-#define	_itot		_itow
-#define	_ltot		_ltow
-#define	_ultot		_ultow
-#define	_ttoi		_wtoi
-#define	_ttol		_wtol
-#define	_tcscat		wcscat
-#define _tcschr		wcschr
-#define _tcscmp		wcscmp
-#define _tcscpy		wcscpy
-#define _tcscspn	wcscspn
-#define	_tcslen		wcslen
-#define	_tcsncat	wcsncat
-#define	_tcsncmp	wcsncmp
-#define	_tcsncpy	wcsncpy
-#define	_tcspbrk	wcspbrk
-#define	_tcsrchr	wcsrchr
-#define _tcsspn		wcsspn
-#define	_tcsstr		wcsstr
-#define _tcstok		wcstok
-#define	_tcsdup		_wcsdup
-#define	_tcsicmp	_wcsicmp
-#define	_tcsnicmp	_wcsnicmp
-#define	_tcsnset	_wcsnset
-#define	_tcsrev		_wcsrev
-#define _tcsset		_wcsset
-#define	_tcslwr		_wcslwr
-#define	_tcsupr		_wcsupr
-#define	_tcsxfrm	wcsxfrm
-#define	_tcscoll	wcscoll
-#define	_tcsicoll	_wcsicoll
-#define	_istalpha	iswalpha
-#define	_istupper	iswupper
-#define	_istlower	iswlower
-#define	_istdigit	iswdigit
-#define	_istxdigit	iswxdigit
-#define	_istspace	iswspace
-#define	_istpunct	iswpunct
-#define	_istalnum	iswalnum
-#define	_istprint	iswprint
-#define	_istgraph	iswgraph
-#define	_istcntrl	iswcntrl
-#define	_istascii	iswascii
-#define _totupper	towupper
-#define	_totlower	towlower
-#define _tcsftime	wcsftime
-/* Macro functions */ 
-#define _tcsdec     _wcsdec
-#define _tcsinc     _wcsinc
-#define _tcsnbcnt   _wcsncnt
-#define _tcsnccnt   _wcsncnt
-#define _tcsnextc   _wcsnextc
-#define _tcsninc    _wcsninc
-#define _tcsspnp    _wcsspnp
-#define _wcsdec(_wcs1, _wcs2) ((_wcs1)>=(_wcs2) ? NULL : (_wcs2)-1)
-#define _wcsinc(_wcs)  ((_wcs)+1)
-#define _wcsnextc(_wcs) ((unsigned int) *(_wcs))
-#define _wcsninc(_wcs, _inc) (((_wcs)+(_inc)))
-#define _wcsncnt(_wcs, _cnt) ((wcslen(_wcs)>_cnt) ? _count : wcslen(_wcs))
-#define _wcsspnp(_wcs1, _wcs2) ((*((_wcs1)+wcsspn(_wcs1,_wcs2))) ? ((_wcs1)+wcsspn(_wcs1,_wcs2)) : NULL)
-
-#if 1  // defined __MSVCRT__
-/*
- *   These wide functions not in crtdll.dll.
- *   Define macros anyway so that _wfoo rather than _tfoo is undefined
- */
-#define _ttoi64     _wtoi64
-#define _i64tot     _i64tow
-#define _ui64tot    _ui64tow
-#define	_tasctime	_wasctime
-#define	_tctime		_wctime
-#define	_tstrdate	_wstrdate
-#define	_tstrtime	_wstrtime
-#define	_tutime		_wutime
-#define _tcsnccoll  _wcsncoll
-#define _tcsncoll   _wcsncoll
-#define _tcsncicoll _wcsnicoll
-#define _tcsnicoll  _wcsnicoll
-#define _taccess    _waccess
-#define _tchmod     _wchmod
-#define _tcreat     _wcreat
-#define _tfindfirst _wfindfirst
-#define _tfindnext  _wfindnext
-#define _tfopen     _wfopen
-#define _tgetenv    _wgetenv
-#define _tmktemp    _wmktemp
-#define _topen      _wopen
-#define _tremove    _wremove
-#define _trename    _wrename
-#define _tsopen     _wsopen
-#define _tsetlocale _wsetlocale
-#define _tunlink    _wunlink
-#define _tfinddata_t    _wfinddata_t
-#define _tfindfirsti64  _wfindfirsti64
-#define _tfindnexti64   _wfindnexti64
-#define _tfinddatai64_t _wfinddatai64_t
-#endif  /* __MSVCRT__ */
-
-#else	/* Not _UNICODE */
-
-/*
- * TCHAR, the type you should use instead of char.
- */
-#ifndef _TCHAR_DEFINED
-#ifndef RC_INVOKED
-typedef char	TCHAR;
-typedef char	_TCHAR;
-#endif
-#define _TCHAR_DEFINED
-#endif
-
-/*
- * __TEXT is a private macro whose specific use is to force the expansion of a
- * macro passed as an argument to the macros _T or _TEXT.  DO NOT use this
- * macro within your programs.  It's name and function could change without
- * notice.
- */
-#define	__TEXT(x)	x
-
-/*  for porting from other Windows compilers */
-#define _tmain      main
-#define _tWinMain   WinMain
-#define _tenviron  _environ
-#define __targv     __argv
-
-/*
- * Non-unicode (standard) functions
- */
-
-#define	_tprintf	printf
-#define _ftprintf	fprintf
-#define	_stprintf	sprintf
-#define	_sntprintf	_snprintf
-#define	_vtprintf	vprintf
-#define	_vftprintf	vfprintf
-#define _vstprintf	vsprintf
-#define	_vsntprintf	_vsnprintf
-#define	_tscanf		scanf
-#define	_ftscanf	fscanf
-#define	_stscanf	sscanf
-#define	_fgettc		fgetc
-#define	_fgettchar	_fgetchar
-#define	_fgetts		fgets
-#define	_fputtc		fputc
-#define	_fputtchar	_fputchar
-#define	_fputts		fputs
-#define	_tfopen		fopen
-#define	_tgetenv	getenv
-#define	_gettc		getc
-#define	_getts		gets
-#define	_puttc		putc
-#define	_putts		puts
-#define	_ungettc	ungetc
-#define	_tcstod		strtod
-#define	_tcstol		strtol
-#define _tcstoul	strtoul
-#define	_itot		_itoa
-#define	_ltot		_ltoa
-#define	_ultot		_ultoa
-#define	_ttoi		atoi
-#define	_ttol		atol
-#define	_tcscat		strcat
-#define _tcschr		strchr
-#define _tcscmp		strcmp
-#define _tcscpy		strcpy
-#define _tcscspn	strcspn
-#define	_tcslen		strlen
-#define	_tcsncat	strncat
-#define	_tcsncmp	strncmp
-#define	_tcsncpy	strncpy
-#define	_tcspbrk	strpbrk
-#define	_tcsrchr	strrchr
-#define _tcsspn		strspn
-#define	_tcsstr		strstr
-#define _tcstok		strtok
-#define	_tcsdup		_strdup
-#define	_tcsicmp	_stricmp
-#define	_tcsnicmp	_strnicmp
-#define	_tcsnset	_strnset
-#define	_tcsrev		_strrev
-#define _tcsset		_strset
-#define	_tcslwr		_strlwr
-#define	_tcsupr		_strupr
-#define	_tcsxfrm	strxfrm
-#define	_tcscoll	strcoll
-#define	_tcsicoll	_stricoll
-#define	_istalpha	isalpha
-#define	_istupper	isupper
-#define	_istlower	islower
-#define	_istdigit	isdigit
-#define	_istxdigit	isxdigit
-#define	_istspace	isspace
-#define	_istpunct	ispunct
-#define	_istalnum	isalnum
-#define	_istprint	isprint
-#define	_istgraph	isgraph
-#define	_istcntrl	iscntrl
-#define	_istascii	isascii
-#define _totupper	toupper
-#define	_totlower	tolower
-#define	_tasctime	asctime
-#define	_tctime		ctime
-#define	_tstrdate	_strdate
-#define	_tstrtime	_strtime
-#define	_tutime		_utime
-#define _tcsftime	strftime
-/* Macro functions */ 
-#define _tcsdec     _strdec
-#define _tcsinc     _strinc
-#define _tcsnbcnt   _strncnt
-#define _tcsnccnt   _strncnt
-#define _tcsnextc   _strnextc
-#define _tcsninc    _strninc
-#define _tcsspnp    _strspnp
-#define _strdec(_str1, _str2) ((_str1)>=(_str2) ? NULL : (_str2)-1)
-#define _strinc(_str)  ((_str)+1)
-#define _strnextc(_str) ((unsigned int) *(_str))
-#define _strninc(_str, _inc) (((_str)+(_inc)))
-#define _strncnt(_str, _cnt) ((strlen(_str)>_cnt) ? _count : strlen(_str))
-#define _strspnp(_str1, _str2) ((*((_str1)+strspn(_str1,_str2))) ? ((_str1)+strspn(_str1,_str2)) : NULL)
-
-#define _tchmod     _chmod
-#define _tcreat     _creat
-#define _tfindfirst _findfirst
-#define _tfindnext  _findnext
-#define _tmktemp    _mktemp
-#define _topen      _open
-#define _taccess    _access
-#define _tremove    remove
-#define _trename    rename
-#define _tsopen     _sopen
-#define _tsetlocale setlocale
-#define _tunlink    _unlink
-#define _tfinddata_t    _finddata_t
-
-
-#if 1  // defined __MSVCRT__
-/* Not in crtdll.dll. Define macros anyway? */
-#define _ttoi64     _atoi64
-#define _i64tot     _i64toa
-#define _ui64tot    _ui64toa
-#define _tcsnccoll  _strncoll
-#define _tcsncoll   _strncoll
-#define _tcsncicoll _strnicoll
-#define _tcsnicoll  _strnicoll
-#define _tfindfirsti64  _findfirsti64
-#define _tfindnexti64   _findnexti64
-#define _tfinddatai64_t _finddatai64_t
-#endif  /* __MSVCRT__ */
-
-#endif	/* Not _UNICODE */
-
-/*
- * UNICODE a constant string when _UNICODE is defined else returns the string
- * unmodified.  Also defined in w32api/winnt.h.
- */
-#define _TEXT(x)	__TEXT(x)
-#define	_T(x)		__TEXT(x)
-
-#endif	/* Not _TCHAR_H_ */
-

+ 0 - 219
web/NotepadA/utils/gcci/tcc/include/time.h

@@ -1,219 +0,0 @@
-/* 
- * time.h
- *
- * Date and time functions and types.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <[email protected]>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
- */
-
-#ifndef	_TIME_H_
-#define	_TIME_H_
-
-/* All the headers include this file. */
-#include <_mingw.h>
-
-#define __need_wchar_t
-#define __need_size_t
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif	/* Not RC_INVOKED */
-
-/*
- * Need a definition of time_t.
- */
-#include <sys/types.h>
-
-/*
- * Number of clock ticks per second. A clock tick is the unit by which
- * processor time is measured and is returned by 'clock'.
- */
-#define	CLOCKS_PER_SEC	((clock_t)1000)
-#define	CLK_TCK		CLOCKS_PER_SEC
-
-
-#ifndef RC_INVOKED
-
-/*
- * A type for storing the current time and date. This is the number of
- * seconds since midnight Jan 1, 1970.
- * NOTE: Normally this is defined by the above include of sys/types.h
- */
-#ifndef _TIME_T_DEFINED
-typedef	long	time_t;
-#define _TIME_T_DEFINED
-#endif
-
-/*
- * A type for measuring processor time (in clock ticks).
- */
-#ifndef _CLOCK_T_DEFINED
-typedef	long	clock_t;
-#define _CLOCK_T_DEFINED
-#endif
-
-
-/*
- * A structure for storing all kinds of useful information about the
- * current (or another) time.
- */
-struct tm
-{
-	int	tm_sec;		/* Seconds: 0-59 (K&R says 0-61?) */
-	int	tm_min;		/* Minutes: 0-59 */
-	int	tm_hour;	/* Hours since midnight: 0-23 */
-	int	tm_mday;	/* Day of the month: 1-31 */
-	int	tm_mon;		/* Months *since* january: 0-11 */
-	int	tm_year;	/* Years since 1900 */
-	int	tm_wday;	/* Days since Sunday (0-6) */
-	int	tm_yday;	/* Days since Jan. 1: 0-365 */
-	int	tm_isdst;	/* +1 Daylight Savings Time, 0 No DST,
-				 * -1 don't know */
-};
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-clock_t	clock (void);
-time_t	time (time_t*);
-double	difftime (time_t, time_t);
-time_t	mktime (struct tm*);
-
-/*
- * These functions write to and return pointers to static buffers that may
- * be overwritten by other function calls. Yikes!
- *
- * NOTE: localtime, and perhaps the others of the four functions grouped
- * below may return NULL if their argument is not 'acceptable'. Also note
- * that calling asctime with a NULL pointer will produce an Invalid Page
- * Fault and crap out your program. Guess how I know. Hint: stat called on
- * a directory gives 'invalid' times in st_atime etc...
- */
-char*		asctime (const struct tm*);
-char*		ctime (const time_t*);
-struct tm*	gmtime (const time_t*);
-struct tm*	localtime (const time_t*);
-
-
-size_t	strftime (char*, size_t, const char*, const struct tm*);
-
-size_t	wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*);
-
-#ifndef __STRICT_ANSI__
-extern void	_tzset (void);
-
-#ifndef _NO_OLDNAMES
-extern void	tzset (void);
-#endif
-
-size_t	strftime(char*, size_t, const char*, const struct tm*);
-char*	_strdate(char*);
-char*	_strtime(char*);
-
-#endif	/* Not __STRICT_ANSI__ */
-
-/*
- * _daylight: non zero if daylight savings time is used.
- * _timezone: difference in seconds between GMT and local time.
- * _tzname: standard/daylight savings time zone names (an array with two
- *          elements).
- */
-#ifdef __MSVCRT__
-
-/* These are for compatibility with pre-VC 5.0 suppied MSVCRT. */
-extern int*	__p__daylight (void);
-extern long*	__p__timezone (void);
-extern char**	__p__tzname (void);
-
-__MINGW_IMPORT int	_daylight;
-__MINGW_IMPORT long	_timezone;
-__MINGW_IMPORT char 	*_tzname[2];
-
-#else /* not __MSVCRT (ie. crtdll) */
-
-#ifndef __DECLSPEC_SUPPORTED
-
-extern int*	__imp__daylight_dll;
-extern long*	__imp__timezone_dll;
-extern char**	__imp__tzname;
-
-#define _daylight	(*__imp__daylight_dll)
-#define _timezone	(*__imp__timezone_dll)
-#define _tzname		(__imp__tzname)
-
-#else /* __DECLSPEC_SUPPORTED */
-
-__MINGW_IMPORT int	_daylight_dll;
-__MINGW_IMPORT long	_timezone_dll;
-__MINGW_IMPORT char*	_tzname[2];
-
-#define _daylight	_daylight_dll
-#define _timezone	_timezone_dll
-
-#endif /* __DECLSPEC_SUPPORTED */
-
-#endif /* not __MSVCRT__ */
-
-#ifndef _NO_OLDNAMES
-
-#ifdef __MSVCRT__
-
-/* These go in the oldnames import library for MSVCRT. */
-__MINGW_IMPORT int	daylight;
-__MINGW_IMPORT long	timezone;
-__MINGW_IMPORT char 	*tzname[2];
-
-#ifndef _WTIME_DEFINED
-
-/* wide function prototypes, also declared in wchar.h */
-
-wchar_t *	_wasctime(const struct tm*);
-wchar_t *	_wctime(const time_t*);
-wchar_t*	_wstrdate(wchar_t*);
-wchar_t*	_wstrtime(wchar_t*);
-
-#define _WTIME_DEFINED
-#endif /* _WTIME_DEFINED */ 
-
-
-#else /* not __MSVCRT__ */
-
-/* CRTDLL is royally messed up when it comes to these macros.
-   TODO: import and alias these via oldnames import library instead 
-   of macros.  */
-
-#define daylight        _daylight
-/* NOTE: timezone not defined because it would conflict with sys/timeb.h.
-   Also, tzname used to a be macro, but now it's in moldname. */
-__MINGW_IMPORT char 	*tzname[2];
-
-#endif /* not __MSVCRT__ */
-
-#endif	/* Not _NO_OLDNAMES */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif	/* Not RC_INVOKED */
-
-#endif	/* Not _TIME_H_ */
-

+ 0 - 10
web/NotepadA/utils/gcci/tcc/include/unistd.h

@@ -1,10 +0,0 @@
-/*
- * This file is part of the Mingw32 package.
- *
- * unistd.h maps (roughly) to io.h
- */
-
-#ifndef __STRICT_ANSI__
-#include <io.h>
-#endif
-

+ 0 - 4
web/NotepadA/utils/gcci/tcc/include/values.h

@@ -1,4 +0,0 @@
-/*
- * TODO: Nothing here yet. Should provide UNIX compatibility constants
- * comparible to those in limits.h and float.h.
- */

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно