mirror of
				https://github.com/DreamMaoMao/maomaowm.git
				synced 2025-11-03 09:01:47 -05:00 
			
		
		
		
	fix: crashed when the tagrule was not fully configured with all tags
This commit is contained in:
		
							parent
							
								
									5836d6b89f
								
							
						
					
					
						commit
						db7e8d54b8
					
				
					 2 changed files with 18 additions and 18 deletions
				
			
		| 
						 | 
					@ -1097,11 +1097,11 @@ void parse_config_line(Config *config, const char *line) {
 | 
				
			||||||
				trim_whitespace(val);
 | 
									trim_whitespace(val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if (strcmp(key, "id") == 0) {
 | 
									if (strcmp(key, "id") == 0) {
 | 
				
			||||||
					rule->id = atoi(val);
 | 
										rule->id = CLAMP_INT(atoi(val), 1, LENGTH(tags));
 | 
				
			||||||
				} else if (strcmp(key, "layout_name") == 0) {
 | 
									} else if (strcmp(key, "layout_name") == 0) {
 | 
				
			||||||
					rule->layout_name = strdup(val);
 | 
										rule->layout_name = strdup(val);
 | 
				
			||||||
				} else if (strcmp(key, "no_render_border") == 0) {
 | 
									} else if (strcmp(key, "no_render_border") == 0) {
 | 
				
			||||||
					rule->no_render_border = atoi(val);
 | 
										rule->no_render_border = CLAMP_INT(atoi(val), 0, 1);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			token = strtok(NULL, ",");
 | 
								token = strtok(NULL, ",");
 | 
				
			||||||
| 
						 | 
					@ -2187,15 +2187,14 @@ void reload_config(const Arg *arg) {
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for (i = 0; i <= LENGTH(tags); i++) {
 | 
							// apply tag rule
 | 
				
			||||||
 | 
							for (i = 1; i <= config.tag_rules_count; i++) {
 | 
				
			||||||
			if (i > 0 && config.tag_rules &&
 | 
								for (jk = 0; jk < LENGTH(layouts); jk++) {
 | 
				
			||||||
				strlen(config.tag_rules[i - 1].layout_name) > 0) {
 | 
									if (config.tag_rules_count > 0 &&
 | 
				
			||||||
				for (jk = 0; jk < LENGTH(layouts); jk++) {
 | 
										strcmp(layouts[jk].name,
 | 
				
			||||||
					if (strcmp(layouts[jk].name,
 | 
											   config.tag_rules[i - 1].layout_name) == 0) {
 | 
				
			||||||
							   config.tag_rules[i - 1].layout_name) == 0) {
 | 
										m->pertag->ltidxs[config.tag_rules[i - 1].id] =
 | 
				
			||||||
						m->pertag->ltidxs[i] = &layouts[jk];
 | 
											&layouts[jk];
 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										15
									
								
								src/maomao.c
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								src/maomao.c
									
										
									
									
									
								
							| 
						 | 
					@ -3397,14 +3397,15 @@ void createmon(struct wl_listener *listener, void *data) {
 | 
				
			||||||
		m->pertag->mfacts[i] = m->mfact;
 | 
							m->pertag->mfacts[i] = m->mfact;
 | 
				
			||||||
		m->pertag->smfacts[i] = default_smfact;
 | 
							m->pertag->smfacts[i] = default_smfact;
 | 
				
			||||||
		m->pertag->ltidxs[i] = m->lt;
 | 
							m->pertag->ltidxs[i] = m->lt;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (i > 0 && config.tag_rules &&
 | 
						// apply tag rule
 | 
				
			||||||
			strlen(config.tag_rules[i - 1].layout_name) > 0) {
 | 
						for (i = 1; i <= config.tag_rules_count; i++) {
 | 
				
			||||||
			for (jk = 0; jk < LENGTH(layouts); jk++) {
 | 
							for (jk = 0; jk < LENGTH(layouts); jk++) {
 | 
				
			||||||
				if (strcmp(layouts[jk].name,
 | 
								if (config.tag_rules_count > 0 &&
 | 
				
			||||||
						   config.tag_rules[i - 1].layout_name) == 0) {
 | 
									strcmp(layouts[jk].name, config.tag_rules[i - 1].layout_name) ==
 | 
				
			||||||
					m->pertag->ltidxs[i] = &layouts[jk];
 | 
										0) {
 | 
				
			||||||
				}
 | 
									m->pertag->ltidxs[config.tag_rules[i - 1].id] = &layouts[jk];
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue