about summary refs log tree commit diff stats
path: root/main.c
Commit message (Expand)AuthorAgeFilesLines
* applied Jukka's patch preventing some cornercases and making the EOF error me...arg@mig292006-11-271-1/+2
* applied yet another proposal of Manuelarg@mig292006-11-261-2/+2
* applied Jukka's sizeof K&R compliance patch, applied Manuels' last-line print...arg@mig292006-11-261-6/+8
* applied Jukka's stdinread patcharg@mig292006-11-261-2/+3
* applied Manuels patch (thanks to Manuel!)arg@mig292006-11-251-14/+21
* applied Gottox patchesarg@mig292006-11-211-2/+3
* applied Gottox' windowarea patcharg@mig292006-11-161-1/+6
* code polishing, removed unnecessary newlinesAnselm R. Garbe2006-10-061-21/+9
* removed the stack position stuffAnselm R. Garbe2006-10-051-4/+1
* keep master ratio on resizecol -> arrangeAnselm R. Garbe2006-10-051-3/+3
* added symbols for different modesAnselm R. Garbe2006-09-291-2/+5
* removed useless updatemasterAnselm R. Garbe2006-09-291-1/+1
* added the new dotile as described on mlAnselm R. Garbe2006-09-291-1/+1
* first step to a more flexible dotile() algorithmAnselm R. Garbe2006-09-291-2/+2
* applied Jukkas patcharg@mmvi2006-09-251-3/+3
* implemented the maximization as I described on the mailinglist, this feels be...arg@mmvi2006-09-221-1/+0
* removed a bunch of lines through making function signatures more consistent w...Anselm R. Garbe2006-09-121-19/+11
* applied Christof Musik's multihead patch for a pathologic cornercaseAnselm R. Garbe2006-09-121-1/+2
* fixed some other comments, now also the code side seems to be at a level to b...Anselm R. Garbe2006-09-111-2/+2
* using a global stack for focus recovery on arrange() - seems to work greatAnselm R. Garbe2006-09-071-0/+1
* small fixAnselm R. Garbe2006-09-061-0/+1
* applied Sanders max_and_focus.patchAnselm R. Garbe2006-09-041-0/+1
* trying a different configurationAnselm R. Garbe2006-08-251-3/+3
* fixed typoAnselm R. Garbe2006-08-251-1/+1
* removed a bunch of lines, made mode symbols configurableAnselm R. Garbe2006-08-251-1/+1
* new color stuff/new rendering stuffAnselm R. Garbe2006-08-251-5/+9
* back to 3 colorsAnselm R. Garbe2006-08-251-4/+3
* 3->4 colorsAnselm R. Garbe2006-08-241-3/+4
* changing tag indicator through underlineAnselm R. Garbe2006-08-241-0/+1
* removed a blank lineAnselm R. Garbe2006-08-231-1/+0
* separated setup stuff into main.c:setup() - this makes main() more readableAnselm R. Garbe2006-08-231-86/+95
* rearranged getprotoAnselm R. Garbe2006-08-221-6/+5
* removed winprop (merged into getproto)Anselm R. Garbe2006-08-221-27/+7
* removed DEFTAGAnselm R. Garbe2006-08-221-1/+1
* small renamings of two static functionsAnselm R.Garbe2006-08-211-2/+2
* small changes to dwm.1, rearranged order within main event loopAnselm R.Garbe2006-08-211-4/+4
* corrected order of cleanup code Anselm R.Garbe2006-08-161-1/+1
* we close stdin as wellAnselm R.Garbe2006-08-161-3/+4
* extended cleanupAnselm R.Garbe2006-08-151-0/+7
* applied jk_to_tab patchAnselm R.Garbe2006-08-151-2/+1
* changed main event loopAnselm R.Garbe2006-08-151-10/+7
* removed NUMLOCKMASK, added dynamically calculated numlockmask insteadAnselm R.Garbe2006-08-141-7/+19
* changed order of selecting input at root windowAnselm R.Garbe2006-08-141-4/+4
* removed unneecessary crapAnselm R.Garbe2006-08-141-1/+0
* some other small fixesAnselm R.Garbe2006-08-141-8/+8
* removed ungrabkeys again (because of sander's mail)Anselm R.Garbe2006-08-141-1/+0
* implemented ungrabkeys() which is called in cleanup()Anselm R.Garbe2006-08-141-0/+1
* supplying NULL args in selectAnselm R.Garbe2006-08-141-1/+1
* reducing ConnectionNumber calls to a bare minimumAnselm R.Garbe2006-08-141-4/+5
* implemented viewextend and added M-S-C-n shortcuts for extending the current ...Anselm R.Garbe2006-08-111-3/+3
return; if (known.find(x) == known.end()) return; x.type = new type_tree(*known.find(x)->type); trace(9992, "transform") << x.name << " <= " << names_to_string(x.type) << end(); } void check_type(set<reagent>& known, const reagent& x, const recipe& caller) { if (is_literal(x)) return; if (is_integer(x.name)) return; // if you use raw locations you're probably doing something unsafe if (!x.type) return; // might get filled in by other logic later if (known.find(x) == known.end()) { trace(9992, "transform") << x.name << " => " << names_to_string(x.type) << end(); known.insert(x); } if (!types_strictly_match(known.find(x)->type, x.type)) { raise << maybe(caller.name) << "'" << x.name << "' used with multiple types\n" << end(); return; } if (x.type->name == "array") { if (!x.type->right) { raise << maybe(caller.name) << "'" << x.name << ": can't be just an array. What is it an array of?\n" << end(); return; } if (!x.type->right->right) { raise << caller.name << " can't determine the size of array variable '" << x.name << "'. Either allocate it separately and make the type of '" << x.name << "' an address, or specify the length of the array in the type of '" << x.name << "'.\n" << end(); return; } } } :(scenario transform_fills_in_missing_types) def main [ x:number <- copy 1 y:number <- add x, 1 ] # x is in location 1, y in location 2 +mem: storing 2 in location 2 :(scenario transform_fills_in_missing_types_in_product) def main [ x:number <- copy 1 x <- copy 2 ] # x is in location 1 +mem: storing 2 in location 1 :(scenario transform_fills_in_missing_types_in_product_and_ingredient) def main [ x:number <- copy 1 x <- add x, 1 ] # x is in location 1 +mem: storing 2 in location 1 :(scenario transform_fails_on_missing_types_in_first_mention) % Hide_errors = true; def main [ x <- copy 1 x:number <- copy 2 ] +error: main: missing type for 'x' in 'x <- copy 1' :(scenario typo_in_address_type_fails) % Hide_errors = true; def main [ y:address:charcter <- new character:type *y <- copy 67 ] +error: main: unknown type charcter in 'y:address:charcter <- new character:type' :(scenario array_type_without_size_fails) % Hide_errors = true; def main [ x:array:number <- merge 2, 12, 13 ] +error: main can't determine the size of array variable 'x'. Either allocate it separately and make the type of 'x' an address, or specify the length of the array in the type of 'x'. :(scenarios transform) :(scenario transform_checks_types_of_identical_reagents_in_multiple_spaces) def foo [ # dummy ] def main [ local-scope 0:address:array:location/names:foo <- copy 0 # specify surrounding space x:boolean <- copy 1/true x:number/space:1 <- copy 34 x/space:1 <- copy 35 ] $error: 0